Re: Binary search in ScalarArrayOpExpr for OR'd constant arrays
James Coleman <jtc331@gmail.com>
From: James Coleman <jtc331@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Tomas Vondra <tomas.vondra@enterprisedb.com>, Michael Paquier <michael@paquier.xyz>, Andrew Dunstan <andrew@dunslane.net>,
Peter Geoghegan <pg@bowt.ie>, Heikki Linnakangas <hlinnaka@iki.fi>,
Tomas Vondra <tomas.vondra@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2021-04-13T17:40:01Z
Lists: pgsql-hackers
Attachments
- v1-0001-Add-HashedScalarArrayOp-support-for-NOT-IN.patch (text/x-patch) patch v1-0001
On Mon, Apr 12, 2021 at 10:07 PM James Coleman <jtc331@gmail.com> wrote: > > On Mon, Apr 12, 2021 at 7:49 PM David Rowley <dgrowleyml@gmail.com> wrote: > > > > On Tue, 13 Apr 2021 at 11:42, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > > > > > David Rowley <dgrowleyml@gmail.com> writes: > > > > I realised when working on something unrelated last night that we can > > > > also do hash lookups for NOT IN too. > > > > > > ... and still get the behavior right for nulls? > > > > Yeah, it will. There are already some special cases for NULLs in the > > IN version. Those would need to be adapted for NOT IN. > > I hadn't thought about using the negator operator directly that way > when I initially wrote the patch. > > But also I didn't think a whole lot about the NOT IN case at all -- > and there's no mention of such that I see in this thread or the > precursor thread. It's pretty obvious that it wasn't part of my > immediate need, but obviously it'd be nice to have the consistency. > > All that to say this: my vote would be to put it into PG15 also. ...and here's a draft patch. I can take this to a new thread if you'd prefer; the one here already got committed, on the other hand this is pretty strongly linked to this discussion, so I figured it made sense to post it here. James
Commits
-
Use a hash table to speed up NOT IN(values)
- 29f45e299e7f 15.0 landed
-
Speedup ScalarArrayOpExpr evaluation
- 50e17ad281b8 14.0 landed