Ran into this and I'm trying to decide if this is functioning as designed or if this is a bug that should be fixed: (PG 8.4.2)

create table gintest
(
        idList int[],
        foo text
);

create index gintest_gin_idx on gintest using gin(idList gin__int_ops);

insert into gintest(idlist, foo) values (array[1,2,3], 'bar');

select * from gintest where idList && array[]::int[];

CREATE TABLE
CREATE INDEX
INSERT 0 1
psql:ginproblem.sql:11: ERROR: GIN indexes do not support whole-index scans

I came across this in a production setting and widdled it down to this. In a nutshell using overlap with an empty (not null) array causes this error. Should there be a short circuit to bail on zero- length input to overlap since you can't overlap with nothing. (if you pass in a plain null it works fine).

In the production setting it is tickled by the array being produced by a subselect that uses array_accum to gather a list of ids to pull up.

If this is the proper behavior I'll deal with it (in the end the result is the same - no rows). Just a bit surprised by it.

--
Jeff Trout <j...@jefftrout.com>
http://www.stuarthamm.net/
http://www.dellsmartexitin.com/




--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to