Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb20fd6c

Browse files
committed
FIx hasSubLinks for Vadim.
1 parent33c3492 commitb20fd6c

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
staticQuery*
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-
returnq;
682+
returnqry;
679683
}
680684

681685
/*
@@ -686,17 +690,19 @@ transformIndexStmt(ParseState *pstate, IndexStmt *stmt)
686690
staticQuery*
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-
returnq;
704+
qry->utilityStmt= (Node*)stmt;
705+
returnqry;
700706
}
701707

702708
/*
@@ -707,11 +713,11 @@ transformExtendStmt(ParseState *pstate, ExtendStmt *stmt)
707713
staticQuery*
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-
returnq;
751+
qry->utilityStmt= (Node*)stmt;
752+
returnqry;
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)

[8]ページ先頭

©2009-2025 Movatter.jp