aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_clause.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-05-17 18:22:19 +0000
committerBruce Momjian <bruce@momjian.us>1999-05-17 18:22:19 +0000
commit19c4e862d41f9d520652d0b0e7ae595a85b5f90b (patch)
tree24ddaf88b16f4a42903a5344cffb1953676054b7 /src/backend/parser/parse_clause.c
parent585c9677201a87a595a1cad145852f2beb094348 (diff)
downloadpostgresql-19c4e862d41f9d520652d0b0e7ae595a85b5f90b.tar.gz
postgresql-19c4e862d41f9d520652d0b0e7ae595a85b5f90b.zip
Skip junk nodes when comparing UNION target list lengths.
Diffstat (limited to 'src/backend/parser/parse_clause.c')
-rw-r--r--src/backend/parser/parse_clause.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index 507ebc2e719..a3eafab36cb 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.33 1999/05/17 17:03:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.34 1999/05/17 18:22:18 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -767,8 +767,17 @@ transformUnionClause(List *unionClause, List *targetlist)
Query *query = (Query *) lfirst(qlist_item);
List *prev_target = targetlist;
List *next_target;
+ int prev_len = 0, next_len = 0;
- if (length(targetlist) != length(query->targetList))
+ foreach(prev_target, targetlist)
+ if (!((TargetEntry *) lfirst(prev_target))->resdom->resjunk)
+ prev_len++;
+
+ foreach(next_target, query->targetList)
+ if (!((TargetEntry *) lfirst(next_target))->resdom->resjunk)
+ next_len++;
+
+ if (prev_len != next_len)
elog(ERROR, "Each UNION clause must have the same number of columns");
foreach(next_target, query->targetList)