Skip site navigation (1) Skip section navigation (2)

Re: BUG #5784: CREATE INDEX USING GIN complains about array containing null values yet none exist

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-bugs(at)postgresql(dot)org, Martin Atukunda <matlads(at)gmail(dot)com>
Subject: Re: BUG #5784: CREATE INDEX USING GIN complains about array containing null values yet none exist
Date: 2010-12-05 17:26:45
Message-ID: 26741.1291570005@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-bugs
Andres Freund <andres(at)anarazel(dot)de> writes:
> On Sunday 05 December 2010 17:42:59 Tom Lane wrote:
>> I think the reason the given example fails is just that it's all being
>> done in one transaction.  If the null-containing row were known dead
>> it wouldn't get indexed.  So: commit.

> Um I doubt it.

[ gets out gdb... ]  Oh: the reason GIN is complaining is that it's just
looking at ARR_HASNULL(), and the array's has-nulls flag is still set
because we don't bother to try to clear it after replacing one element
of the array.  (Which in general would be an expensive thing to try to
do...)

If we were intending to leave GIN in its current nulls-hating state,
the thing to do would be to replace the stupid ARR_HASNULL check with
something more intelligent.  But really it needs to be fixed to handle
nulls properly, so I'm thinking that might be a dead-end patch.

			regards, tom lane

In response to

Responses

pgsql-bugs by date

Next:From: Martin AtukundaDate: 2010-12-05 19:06:21
Subject: Re: BUG #5784: CREATE INDEX USING GIN complains about array containing null values yet none exist
Previous:From: Peter EisentrautDate: 2010-12-05 17:10:06
Subject: Re: BUG #5783: plpythonu bool behavior change

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group