]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Adjust parser so that 'x NOT IN (subselect)' is converted to
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 9 Jan 2003 20:50:53 +0000 (20:50 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 9 Jan 2003 20:50:53 +0000 (20:50 +0000)
commit6bc61fc046961cfc2b3901ab38ac74b45f8c6cd3
treea29a0825d52ba55e9971b8df6c4a530cc90a5bff
parent59779c81ba9e6ea29cec1a59d0cfdbe76fa016ff
Adjust parser so that 'x NOT IN (subselect)' is converted to
'NOT (x IN (subselect))', that is 'NOT (x = ANY (subselect))',
rather than 'x <> ALL (subselect)' as we formerly did.  This
opens the door to optimizing NOT IN the same way as IN, whereas
there's no hope of optimizing the expression using <>.  Also,
convert 'x <> ALL (subselect)' to the NOT(IN) style, so that
the optimization will be available when processing rules dumped
by older Postgres versions.
initdb forced due to small change in SubLink node representation.
src/backend/executor/nodeSubplan.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/plan/subselect.c
src/backend/parser/gram.y
src/backend/parser/parse_expr.c
src/backend/utils/adt/ruleutils.c
src/include/catalog/catversion.h
src/include/nodes/primnodes.h