On Wed, Jan 18, 2017 at 3:24 PM, Ashutosh Sharma <ashu.coe...@gmail.com> wrote: > >> 4. >> +Datum >> +hash_page_items(PG_FUNCTION_ARGS) >> +{ >> + bytea *raw_page = PG_GETARG_BYTEA_P(0); >> >> >> +Datum >> +hash_bitmap_info(PG_FUNCTION_ARGS) >> +{ >> + Oid indexRelid = PG_GETARG_OID(0); >> + uint32 ovflblkno = PG_GETARG_UINT32(1); >> >> Is there a reason for keeping the input arguments for >> hash_bitmap_info() different from hash_page_items()? >> > > Yes, there are two reasons behind it. > > Firstly, we need metapage to identify the bitmap page that holds the > information about the overflow page passed as an input to this > function. >
Okay, for that probably index oid is sufficient. > Secondly, we will have to input overflow block number as an input to > this function so as to determine the overflow bit number which can be > used further to identify the bitmap page. > I think you can get that from bucket number by using BUCKET_TO_BLKNO. You can get bucket number from page's opaque data. So, if we follow that then you can have a prototype of a function as hash_bitmap_info(index_oid, page bytea) which will be quite similar to other API's exposed by this module. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers