diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-10-07 19:27:04 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-10-07 19:27:04 +0000 |
commit | 0d115dde82bf368ae0f9755113bd8fd53ac0b64b (patch) | |
tree | a6a1b7b4cfcf1b8ecd49ec280898fc678efdd67d /src/include/nodes/plannodes.h | |
parent | 059349be0c7fb2bfc1076d70c8307f5e31d8ff59 (diff) | |
download | postgresql-0d115dde82bf368ae0f9755113bd8fd53ac0b64b.tar.gz postgresql-0d115dde82bf368ae0f9755113bd8fd53ac0b64b.zip |
Extend CTE patch to support recursive UNION (ie, without ALL). The
implementation uses an in-memory hash table, so it will poop out for very
large recursive results ... but the performance characteristics of a
sort-based implementation would be pretty unpleasant too.
Diffstat (limited to 'src/include/nodes/plannodes.h')
-rw-r--r-- | src/include/nodes/plannodes.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h index cdf06b00207..16c25fd6d0e 100644 --- a/src/include/nodes/plannodes.h +++ b/src/include/nodes/plannodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/plannodes.h,v 1.104 2008/10/04 21:56:55 tgl Exp $ + * $PostgreSQL: pgsql/src/include/nodes/plannodes.h,v 1.105 2008/10/07 19:27:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -194,6 +194,12 @@ typedef struct RecursiveUnion { Plan plan; int wtParam; /* ID of Param representing work table */ + /* Remaining fields are zero/null in UNION ALL case */ + int numCols; /* number of columns to check for + * duplicate-ness */ + AttrNumber *dupColIdx; /* their indexes in the target list */ + Oid *dupOperators; /* equality operators to compare with */ + long numGroups; /* estimated number of groups in input */ } RecursiveUnion; /* ---------------- |