aboutsummaryrefslogtreecommitdiff
path: root/src/include/nodes/parsenodes.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-11-28 04:35:32 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-11-28 04:35:32 +0000
commit3d376fce8dd45d43fb6dbeb5a08c08400a589ff8 (patch)
tree0423df93c1a0b741442acc5120ab73291fab9610 /src/include/nodes/parsenodes.h
parent8a9acd3c410c1365f9f16e32910b8c942aeceef2 (diff)
downloadpostgresql-3d376fce8dd45d43fb6dbeb5a08c08400a589ff8.tar.gz
postgresql-3d376fce8dd45d43fb6dbeb5a08c08400a589ff8.zip
Change the parser to translate "foo [NOT] IN (expression-list)" to
ScalarArrayOpExpr when possible, that is, whenever there is an array type for the values of the expression list. This completes the project I've been working on to improve the speed of index searches with long IN lists, as per discussion back in mid-October. I did not force initdb, but until you do one you will see failures in the "rules" regression test, because some of the standard system views use IN and their compiled formats have changed.
Diffstat (limited to 'src/include/nodes/parsenodes.h')
-rw-r--r--src/include/nodes/parsenodes.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 478279c54be..1ae6824954c 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.296 2005/11/22 18:17:31 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.297 2005/11/28 04:35:32 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -194,7 +194,8 @@ typedef enum A_Expr_Kind
AEXPR_OP_ALL, /* scalar op ALL (array) */
AEXPR_DISTINCT, /* IS DISTINCT FROM - name must be "=" */
AEXPR_NULLIF, /* NULLIF - name must be "=" */
- AEXPR_OF /* IS (not) OF - name must be "=" or "!=" */
+ AEXPR_OF, /* IS [NOT] OF - name must be "=" or "<>" */
+ AEXPR_IN /* [NOT] IN - name must be "=" or "<>" */
} A_Expr_Kind;
typedef struct A_Expr