On Wed, Feb 8, 2017 at 4:20 AM, Dilip Kumar <dilipbal...@gmail.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 -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers