Re: COPY FROM ... WHERE fails for negated operators - Mailing list pgsql-hackers

From Tom Lane
Subject Re: COPY FROM ... WHERE fails for negated operators
Date
Msg-id 1087919.1791222524@sss.pgh.pa.us
Whole thread
In response to COPY FROM ... WHERE fails for negated operators  (Nathan Bossart <nathandbossart@gmail.com>)
Responses Re: COPY FROM ... WHERE fails for negated operators
List pgsql-hackers
Nathan Bossart <nathandbossart@gmail.com> writes:
> The following steps produce a "cache lookup failed for function" error:
>     CREATE TABLE t (a int);
>     COPY t FROM stdin WHERE NOT (a > 0);
>     1
>     0
>     \.
> I think what's happening is that negate_clause() is calling get_negator()
> with a 0 argument because DoCopy() neglects to call fix_opfuncids() (like
> RelationGetIndexPredicate() does).  The attached patch fixes this.

Ugh.  We really ought to get rid of fix_opfuncids() in favor of
insisting that operator clauses be filled in fully from the start.
But that's not happening right now, so I concur with this fix
for the moment.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Nathan Bossart
Date:
Subject: COPY FROM ... WHERE fails for negated operators
Next
From: Alexander Lakhin
Date:
Subject: Re: [PATCH v1] Fix races in Windows pthread emulation