summaryrefslogtreecommitdiff
path: root/src/backend/nodes
diff options
context:
space:
mode:
authorTom Lane2003-11-12 21:15:59 +0000
committerTom Lane2003-11-12 21:15:59 +0000
commitfa5c8a055a02e44f446e4593e397c33a572c4d67 (patch)
tree9c0a7ded5a88c082c28dbe2b431660813abd72b8 /src/backend/nodes
parent49f98fa833407b4e4252e42522e640ec8a0d08b2 (diff)
Cross-data-type comparisons are now indexable by btrees, pursuant to my
pghackers proposal of 8-Nov. All the existing cross-type comparison operators (int2/int4/int8 and float4/float8) have appropriate support. The original proposal of storing the right-hand-side datatype as part of the primary key for pg_amop and pg_amproc got modified a bit in the event; it is easier to store zero as the 'default' case and only store a nonzero when the operator is actually cross-type. Along the way, remove the long-since-defunct bigbox_ops operator class.
Diffstat (limited to 'src/backend/nodes')
-rw-r--r--src/backend/nodes/copyfuncs.c13
-rw-r--r--src/backend/nodes/outfuncs.c12
2 files changed, 23 insertions, 2 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index c02270fa2e..6cf8450567 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -15,7 +15,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.266 2003/11/09 21:30:36 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.267 2003/11/12 21:15:52 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -273,6 +273,17 @@ _copyIndexScan(IndexScan *from)
}
newnode->indxstrategy = newstrat;
}
+ /* this can become COPY_NODE_FIELD when OID lists are normal objects: */
+ {
+ List *newsubtype = NIL;
+ List *tmp;
+
+ foreach(tmp, from->indxsubtype)
+ {
+ newsubtype = lappend(newsubtype, listCopy(lfirst(tmp)));
+ }
+ newnode->indxsubtype = newsubtype;
+ }
COPY_SCALAR_FIELD(indxorderdir);
return newnode;
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index b2fa96bd5d..cb875bd676 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.219 2003/11/09 21:30:36 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.220 2003/11/12 21:15:52 tgl Exp $
*
* NOTES
* Every node type that can appear in stored rules' parsetrees *must*
@@ -346,6 +346,16 @@ _outIndexScan(StringInfo str, IndexScan *node)
_outIntList(str, lfirst(tmp));
}
}
+ /* this can become WRITE_NODE_FIELD when OID lists are normal objects: */
+ {
+ List *tmp;
+
+ appendStringInfo(str, " :indxsubtype ");
+ foreach(tmp, node->indxsubtype)
+ {
+ _outOidList(str, lfirst(tmp));
+ }
+ }
WRITE_ENUM_FIELD(indxorderdir, ScanDirection);
}