Skip to content
Snippets Groups Projects
Commit b20fd6c4 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

FIx hasSubLinks for Vadim.

parent 33c34920
Branches
Tags
No related merge requests found
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.68 1998/01/20 22:11:51 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.69 1998/02/06 16:46:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -217,6 +217,7 @@ transformDeleteStmt(ParseState *pstate, DeleteStmt *stmt)
/* fix where clause */
qry->qual = transformWhereClause(pstate, stmt->whereClause);
qry->hasSubLinks = pstate->p_hasSubLinks;
qry->rtable = pstate->p_rtable;
qry->resultRelation = refnameRangeTablePosn(pstate, stmt->relname, NULL);
......@@ -317,6 +318,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
/* fix where clause */
qry->qual = transformWhereClause(pstate, stmt->whereClause);
qry->hasSubLinks = pstate->p_hasSubLinks;
/* now the range table will not change */
qry->rtable = pstate->p_rtable;
......@@ -664,18 +666,20 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
static Query *
transformIndexStmt(ParseState *pstate, IndexStmt *stmt)
{
Query *q;
Query *qry;
q = makeNode(Query);
q->commandType = CMD_UTILITY;
qry = makeNode(Query);
qry->commandType = CMD_UTILITY;
/* take care of the where clause */
stmt->whereClause = transformWhereClause(pstate, stmt->whereClause);
qry->hasSubLinks = pstate->p_hasSubLinks;
stmt->rangetable = pstate->p_rtable;
q->utilityStmt = (Node *) stmt;
qry->utilityStmt = (Node *) stmt;
return q;
return qry;
}
/*
......@@ -686,17 +690,19 @@ transformIndexStmt(ParseState *pstate, IndexStmt *stmt)
static Query *
transformExtendStmt(ParseState *pstate, ExtendStmt *stmt)
{
Query *q;
Query *qry;
q = makeNode(Query);
q->commandType = CMD_UTILITY;
qry = makeNode(Query);
qry->commandType = CMD_UTILITY;
/* take care of the where clause */
stmt->whereClause = transformWhereClause(pstate, stmt->whereClause);
qry->hasSubLinks = pstate->p_hasSubLinks;
stmt->rangetable = pstate->p_rtable;
q->utilityStmt = (Node *) stmt;
return q;
qry->utilityStmt = (Node *) stmt;
return qry;
}
/*
......@@ -707,11 +713,11 @@ transformExtendStmt(ParseState *pstate, ExtendStmt *stmt)
static Query *
transformRuleStmt(ParseState *pstate, RuleStmt *stmt)
{
Query *q;
Query *qry;
List *actions;
q = makeNode(Query);
q->commandType = CMD_UTILITY;
qry = makeNode(Query);
qry->commandType = CMD_UTILITY;
actions = stmt->actions;
......@@ -740,9 +746,10 @@ transformRuleStmt(ParseState *pstate, RuleStmt *stmt)
/* take care of the where clause */
stmt->whereClause = transformWhereClause(pstate, stmt->whereClause);
qry->hasSubLinks = pstate->p_hasSubLinks;
q->utilityStmt = (Node *) stmt;
return q;
qry->utilityStmt = (Node *) stmt;
return qry;
}
......@@ -769,6 +776,7 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
qry->targetList = transformTargetList(pstate, stmt->targetList);
qry->qual = transformWhereClause(pstate, stmt->whereClause);
qry->hasSubLinks = pstate->p_hasSubLinks;
qry->sortClause = transformSortClause(pstate,
stmt->sortClause,
......@@ -813,6 +821,7 @@ transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
qry->targetList = transformTargetList(pstate, stmt->targetList);
qry->qual = transformWhereClause(pstate, stmt->whereClause);
qry->hasSubLinks = pstate->p_hasSubLinks;
qry->rtable = pstate->p_rtable;
......
......
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.16 1998/02/05 17:22:29 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.17 1998/02/06 16:46:29 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -244,6 +244,8 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
QueryTreeList *qtree;
List *llist;
pstate->p_hasSubLinks = true;
qtree = parse_analyze(lcons(sublink->subselect,NIL), pstate);
Assert(qtree->len == 1);
sublink->subselect = (Node *) qtree->qtrees[0];
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment