Re: contrib/intarray (was Re: Fixing GIN for empty/null/full-scan cases)

David Wheeler <david@kineticode.com>

From: "David E. Wheeler" <david@kineticode.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org
Date: 2011-01-08T22:04:03Z
Lists: pgsql-hackers
On Jan 8, 2011, at 1:59 PM, Tom Lane wrote:

>> Hrm, the queries I wrote for this sort of thing use intarray:
> 
> I'm going to work on contrib/intarray first (before tsearch etc)
> so that you can do whatever testing you want sooner.

No, of course not.

> One of the things that first got me annoyed about the whole GIN
> situation is that intarray's definitions of the <@ and @> operators were
> inconsistent with the core operators of the same names.  I believe that
> the inconsistency has to go away.  Really the only reason that intarray
> has its own versions of these operators at all is that it can be faster
> than the generic anyarray versions in core.  There seem to be three ways
> in which intarray is simpler/faster than the generic operators:
> 
> 	* restricted to integer arrays
> 	* restricted to 1-D arrays
> 	* doesn't allow nulls in the arrays

My understanding is that they also perform much better if the values in an integer array are ordered. Does that matter?

Best,

David