diff options
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r-- | src/backend/parser/parse_expr.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 24b1e1b91d2..91bba7fc277 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.44 1999/05/12 07:14:24 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.45 1999/05/13 07:28:38 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -274,16 +274,19 @@ transformExpr(ParseState *pstate, Node *expr, int precedence) case T_SubLink: { SubLink *sublink = (SubLink *) expr; - QueryTreeList *qtree; + List *qtrees; + Query *qtree; List *llist; pstate->p_hasSubLinks = true; - qtree = parse_analyze(lcons(sublink->subselect, NIL), pstate); - if (qtree->len != 1 || - qtree->qtrees[0]->commandType != CMD_SELECT || - qtree->qtrees[0]->resultRelation != 0) + qtrees = parse_analyze(lcons(sublink->subselect, NIL), pstate); + if (length(qtrees) != 1) elog(ERROR, "parser: bad query in subselect"); - sublink->subselect = (Node *) qtree->qtrees[0]; + qtree = (Query *) lfirst(qtrees); + if (qtree->commandType != CMD_SELECT || + qtree->resultRelation != 0) + elog(ERROR, "parser: bad query in subselect"); + sublink->subselect = (Node *) qtree; if (sublink->subLinkType != EXISTS_SUBLINK) { |