Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit b20fd6c

Browse files
committed
FIx hasSubLinks for Vadim.
1 parent 33c3492 commit b20fd6c

File tree

2 files changed

+33
-22
lines changed

2 files changed

+33
-22
lines changed

src/backend/parser/analyze.c

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.68 1998/01/20 22:11:51 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.69 1998/02/06 16:46:28 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -217,7 +217,8 @@ transformDeleteStmt(ParseState *pstate, DeleteStmt *stmt)
217217

218218
/* fix where clause */
219219
qry->qual = transformWhereClause(pstate, stmt->whereClause);
220-
220+
qry->hasSubLinks = pstate->p_hasSubLinks;
221+
221222
qry->rtable = pstate->p_rtable;
222223
qry->resultRelation = refnameRangeTablePosn(pstate, stmt->relname, NULL);
223224

@@ -317,7 +318,8 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
317318

318319
/* fix where clause */
319320
qry->qual = transformWhereClause(pstate, stmt->whereClause);
320-
321+
qry->hasSubLinks = pstate->p_hasSubLinks;
322+
321323
/* now the range table will not change */
322324
qry->rtable = pstate->p_rtable;
323325
qry->resultRelation = refnameRangeTablePosn(pstate, stmt->relname, NULL);
@@ -664,18 +666,20 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
664666
static Query *
665667
transformIndexStmt(ParseState *pstate, IndexStmt *stmt)
666668
{
667-
Query *q;
669+
Query *qry;
668670

669-
q = makeNode(Query);
670-
q->commandType = CMD_UTILITY;
671+
qry = makeNode(Query);
672+
qry->commandType = CMD_UTILITY;
671673

672674
/* take care of the where clause */
673675
stmt->whereClause = transformWhereClause(pstate, stmt->whereClause);
676+
qry->hasSubLinks = pstate->p_hasSubLinks;
677+
674678
stmt->rangetable = pstate->p_rtable;
675679

676-
q->utilityStmt = (Node *) stmt;
680+
qry->utilityStmt = (Node *) stmt;
677681

678-
return q;
682+
return qry;
679683
}
680684

681685
/*
@@ -686,17 +690,19 @@ transformIndexStmt(ParseState *pstate, IndexStmt *stmt)
686690
static Query *
687691
transformExtendStmt(ParseState *pstate, ExtendStmt *stmt)
688692
{
689-
Query *q;
693+
Query *qry;
690694

691-
q = makeNode(Query);
692-
q->commandType = CMD_UTILITY;
695+
qry = makeNode(Query);
696+
qry->commandType = CMD_UTILITY;
693697

694698
/* take care of the where clause */
695699
stmt->whereClause = transformWhereClause(pstate, stmt->whereClause);
700+
qry->hasSubLinks = pstate->p_hasSubLinks;
701+
696702
stmt->rangetable = pstate->p_rtable;
697703

698-
q->utilityStmt = (Node *) stmt;
699-
return q;
704+
qry->utilityStmt = (Node *) stmt;
705+
return qry;
700706
}
701707

702708
/*
@@ -707,11 +713,11 @@ transformExtendStmt(ParseState *pstate, ExtendStmt *stmt)
707713
static Query *
708714
transformRuleStmt(ParseState *pstate, RuleStmt *stmt)
709715
{
710-
Query *q;
716+
Query *qry;
711717
List *actions;
712718

713-
q = makeNode(Query);
714-
q->commandType = CMD_UTILITY;
719+
qry = makeNode(Query);
720+
qry->commandType = CMD_UTILITY;
715721

716722
actions = stmt->actions;
717723

@@ -740,9 +746,10 @@ transformRuleStmt(ParseState *pstate, RuleStmt *stmt)
740746

741747
/* take care of the where clause */
742748
stmt->whereClause = transformWhereClause(pstate, stmt->whereClause);
749+
qry->hasSubLinks = pstate->p_hasSubLinks;
743750

744-
q->utilityStmt = (Node *) stmt;
745-
return q;
751+
qry->utilityStmt = (Node *) stmt;
752+
return qry;
746753
}
747754

748755

@@ -769,6 +776,7 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
769776
qry->targetList = transformTargetList(pstate, stmt->targetList);
770777

771778
qry->qual = transformWhereClause(pstate, stmt->whereClause);
779+
qry->hasSubLinks = pstate->p_hasSubLinks;
772780

773781
qry->sortClause = transformSortClause(pstate,
774782
stmt->sortClause,
@@ -813,6 +821,7 @@ transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
813821
qry->targetList = transformTargetList(pstate, stmt->targetList);
814822

815823
qry->qual = transformWhereClause(pstate, stmt->whereClause);
824+
qry->hasSubLinks = pstate->p_hasSubLinks;
816825

817826
qry->rtable = pstate->p_rtable;
818827

src/backend/parser/parse_expr.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.16 1998/02/05 17:22:29 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.17 1998/02/06 16:46:29 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -243,11 +243,13 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
243243
SubLink *sublink = (SubLink *) expr;
244244
QueryTreeList *qtree;
245245
List *llist;
246-
246+
247+
pstate->p_hasSubLinks = true;
248+
247249
qtree = parse_analyze(lcons(sublink->subselect,NIL), pstate);
248250
Assert(qtree->len == 1);
249251
sublink->subselect = (Node *) qtree->qtrees[0];
250-
252+
251253
foreach(llist, sublink->lefthand)
252254
lfirst(llist) = transformExpr(pstate, lfirst(llist), precedence);
253255

@@ -267,7 +269,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
267269
{
268270
Node *lexpr = lfirst(elist);
269271
Node *rexpr = lfirst(right_expr);
270-
TargetEntry *tent = (TargetEntry *)rexpr;
272+
TargetEntry *tent = (TargetEntry *)rexpr;
271273
Expr *op_expr;
272274

273275
op_expr = make_op(op, lexpr, tent->expr);

0 commit comments

Comments
 (0)