Re: pageinspect: Hash index support

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Jesper Pedersen <jesper.pedersen@redhat.com>, Ashutosh Sharma <ashu.coek88@gmail.com>, Mithun Cy <mithun.cy@enterprisedb.com>, Amit Kapila <amit.kapila16@gmail.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Michael Paquier <michael.paquier@gmail.com>, Jeff Janes <jeff.janes@gmail.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2017-02-03T16:36:18Z
Lists: pgsql-hackers
On Fri, Feb 3, 2017 at 10:11 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> BTW, the buildfarm is still crashing on ia64 and sparc64 members.
> I believe this is the same problem addressed in 84ad68d64 for
> pageinspect's GIN functions, to wit, the payload of a "bytea"
> is not maxaligned, so machines that care about alignment won't be
> happy when trying to fetch 64-bit values out of a bytea page image.
>
> Clearly, the fix should be to start using the get_page_from_raw()
> function that Peter introduced in that patch.  But it's static in
> ginfuncs.c, which I thought was a mistake at the time, and it's
> proven so now.
>
> contrib/pageinspect actually seems to lack *any* infrastructure
> for sharing functions across modules.  It's time to remedy that.
> I propose inventing "pageinspect.h" to hold commonly visible
> declarations, and moving get_page_from_raw() into rawpage.c,
> which seems like a reasonably natural home for it.  (Alternatively,
> we could invent a pageinspect.c file to hold utility functions,
> but that might be overkill.)

No objections.

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


Commits

  1. Fix incorrect typecast.

  2. In pageinspect/hashfuncs.c, avoid crashes on alignment-picky machines.

  3. pageinspect: Support hash indexes.

  4. Add uuid to the set of types supported by contrib/btree_gist.

  5. Allow CREATE EXTENSION to follow extension update paths.