Re: Minmax indexes

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Erik Rijkers <er@xs4all.nl>
Cc: Jaime Casanova <jaime@2ndquadrant.com>, Thom Brown <thom@linux.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2013-09-25T20:23:32Z
Lists: pgsql-hackers

Attachments

Erik Rijkers wrote:

> After a  --data-checksums initdb (successful), the following error came up:
> 
> after the statement: create index t_minmax_idx on t using minmax (r);
> 
> WARNING:  page verification failed, calculated checksum 25951 but expected 0
> ERROR:  invalid page in block 1 of relation base/21324/26267_vm
> 
> it happens reliably. every time I run the program.

Thanks for the report.  That's fixed with the attached.

> Below is the whole program that I used.

Hmm, this test program shows that you're trying to use the index to
optimize min() and max() queries, but that's not what these indexes do.
You will need to use operators > >= = <= < (or BETWEEN, which is the
same thing) to see your index in action.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Commits

  1. Refactor per-page logic common to all redo routines to a new function.

  2. Reduce use of heavyweight locking inside hash AM.

  3. Scan the buffer pool just once, not once per fork, during relation drop.

  4. Major patch from Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>