Re: Parallel bitmap heap scan

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Dilip Kumar <dilipbalaut(at)gmail(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>, Rafia Sabih <rafia(dot)sabih(at)enterprisedb(dot)com>, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com>, Amit Khandekar <amitdkhan(dot)pg(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Parallel bitmap heap scan
Date: 2017-02-08 13:31:00
Message-ID: CA+TgmoZUoN4ob2SA8F_7iCvtgjnp6RjyDt2YF2tCOFK+DXwXaQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Feb 8, 2017 at 4:20 AM, Dilip Kumar <dilipbalaut(at)gmail(dot)com> wrote:
> The new SH_CREATE(MemoryContext ctx, uint32 nelements) don't have any
> option to supply arguments to it. Our callback functions need access
> to TBM.
>
> Is it expected that if the user of SH_CREATE who doesn't want to pass
> a "MemoryContext" then we can pass arguments instead of ctx?

You can store whatever you want in SH_TYPE's private_data member.
SH_ALLOCATE and SH_FREE both get a pointer to the SH_TYPE, so they
have access to that. Hmm, but there's no way to get that set in
SH_CREATE before SH_ALLOCATE is called. Maybe we need to add a
private_data argument to SH_CREATE. execGrouping.c could use that
instead of frobbing private_data directly:

- hashtable->hashtab = tuplehash_create(tablecxt, nbuckets);
- hashtable->hashtab->private_data = hashtable;
+ hashtable->hashtab = tuplehash_create(tablecxt, nbuckets, hashtable);

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2017-02-08 13:40:22 Re: Idea on how to simplify comparing two sets
Previous Message Robert Haas 2017-02-08 13:25:34 Re: Parallel bitmap heap scan