mirror of
https://github.com/postgres/postgres.git
synced 2025-07-12 21:01:52 +03:00
Remove S*I comments from Stephan.
This commit is contained in:
@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: execAmi.c,v 1.35 1999/05/25 16:08:34 momjian Exp $
|
* $Id: execAmi.c,v 1.36 1999/07/13 21:17:31 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -38,7 +38,6 @@
|
|||||||
#include "executor/nodeNestloop.h"
|
#include "executor/nodeNestloop.h"
|
||||||
#include "executor/nodeHashjoin.h"
|
#include "executor/nodeHashjoin.h"
|
||||||
#include "executor/nodeHash.h"
|
#include "executor/nodeHash.h"
|
||||||
/***S*I***/
|
|
||||||
#include "executor/nodeGroup.h"
|
#include "executor/nodeGroup.h"
|
||||||
|
|
||||||
#include "executor/nodeAgg.h"
|
#include "executor/nodeAgg.h"
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.64 1999/05/25 16:09:11 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.65 1999/07/13 21:17:31 momjian Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* Most of the read functions for plan nodes are tested. (In fact, they
|
* Most of the read functions for plan nodes are tested. (In fact, they
|
||||||
@ -168,7 +168,6 @@ _readQuery()
|
|||||||
token = lsptok(NULL, &length); /* skip :unionClause */
|
token = lsptok(NULL, &length); /* skip :unionClause */
|
||||||
local_node->unionClause = nodeRead(true);
|
local_node->unionClause = nodeRead(true);
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
token = lsptok(NULL, &length); /* skip :intersectClause */
|
token = lsptok(NULL, &length); /* skip :intersectClause */
|
||||||
local_node->intersectClause = nodeRead(true);
|
local_node->intersectClause = nodeRead(true);
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: analyze.c,v 1.110 1999/06/05 20:22:30 tgl Exp $
|
* $Id: analyze.c,v 1.111 1999/07/13 21:17:32 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -26,7 +26,6 @@
|
|||||||
#include "parser/parse_node.h"
|
#include "parser/parse_node.h"
|
||||||
#include "parser/parse_relation.h"
|
#include "parser/parse_relation.h"
|
||||||
#include "parser/parse_target.h"
|
#include "parser/parse_target.h"
|
||||||
/***S*I***/
|
|
||||||
#include "parser/parse_expr.h"
|
#include "parser/parse_expr.h"
|
||||||
#include "catalog/pg_type.h"
|
#include "catalog/pg_type.h"
|
||||||
#include "parse.h"
|
#include "parse.h"
|
||||||
@ -382,8 +381,6 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
|
|||||||
*/
|
*/
|
||||||
qry->unionall = stmt->unionall;
|
qry->unionall = stmt->unionall;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Just hand through the unionClause and intersectClause. We will
|
* Just hand through the unionClause and intersectClause. We will
|
||||||
* handle it in the function Except_Intersect_Rewrite()
|
* handle it in the function Except_Intersect_Rewrite()
|
||||||
@ -1022,8 +1019,6 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
|
|||||||
*/
|
*/
|
||||||
qry->unionall = stmt->unionall;
|
qry->unionall = stmt->unionall;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Just hand through the unionClause and intersectClause. We will
|
* Just hand through the unionClause and intersectClause. We will
|
||||||
* handle it in the function Except_Intersect_Rewrite()
|
* handle it in the function Except_Intersect_Rewrite()
|
||||||
@ -1104,7 +1099,6 @@ transformCursorStmt(ParseState *pstate, SelectStmt *stmt)
|
|||||||
return qry;
|
return qry;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* This function steps through the tree
|
/* This function steps through the tree
|
||||||
* built up by the select_w_o_sort rule
|
* built up by the select_w_o_sort rule
|
||||||
* and builds a list of all SelectStmt Nodes found
|
* and builds a list of all SelectStmt Nodes found
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.88 1999/07/09 21:59:59 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.89 1999/07/13 21:17:33 momjian Exp $
|
||||||
*
|
*
|
||||||
* HISTORY
|
* HISTORY
|
||||||
* AUTHOR DATE MAJOR EVENT
|
* AUTHOR DATE MAJOR EVENT
|
||||||
@ -2465,7 +2465,6 @@ OptimizableStmt: SelectStmt
|
|||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* This rule used 'opt_column_list' between 'relation_name' and 'insert_rest'
|
/* This rule used 'opt_column_list' between 'relation_name' and 'insert_rest'
|
||||||
* originally. When the second rule of 'insert_rest' was changed to use
|
* originally. When the second rule of 'insert_rest' was changed to use
|
||||||
* the new 'SelectStmt' rule (for INTERSECT and EXCEPT) it produced a shift/reduce
|
* the new 'SelectStmt' rule (for INTERSECT and EXCEPT) it produced a shift/reduce
|
||||||
@ -2500,10 +2499,8 @@ insert_rest: VALUES '(' res_target_list2 ')'
|
|||||||
$$->groupClause = NIL;
|
$$->groupClause = NIL;
|
||||||
$$->havingClause = NULL;
|
$$->havingClause = NULL;
|
||||||
$$->unionClause = NIL;
|
$$->unionClause = NIL;
|
||||||
/***S*I***/
|
|
||||||
$$->intersectClause = NIL;
|
$$->intersectClause = NIL;
|
||||||
}
|
}
|
||||||
/***S*I***/
|
|
||||||
/* We want the full power of SelectStatements including INTERSECT and EXCEPT
|
/* We want the full power of SelectStatements including INTERSECT and EXCEPT
|
||||||
* for insertion */
|
* for insertion */
|
||||||
| SelectStmt
|
| SelectStmt
|
||||||
@ -2534,7 +2531,6 @@ insert_rest: VALUES '(' res_target_list2 ')'
|
|||||||
$$->groupClause = NIL;
|
$$->groupClause = NIL;
|
||||||
$$->havingClause = NULL;
|
$$->havingClause = NULL;
|
||||||
$$->unionClause = NIL;
|
$$->unionClause = NIL;
|
||||||
/***S*I***/
|
|
||||||
$$->intersectClause = NIL;
|
$$->intersectClause = NIL;
|
||||||
}
|
}
|
||||||
| '(' columnList ')' SelectStmt
|
| '(' columnList ')' SelectStmt
|
||||||
@ -2646,7 +2642,6 @@ UpdateStmt: UPDATE relation_name
|
|||||||
* CURSOR STATEMENTS
|
* CURSOR STATEMENTS
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
/***S*I***/
|
|
||||||
CursorStmt: DECLARE name opt_cursor CURSOR FOR SelectStmt
|
CursorStmt: DECLARE name opt_cursor CURSOR FOR SelectStmt
|
||||||
{
|
{
|
||||||
SelectStmt *n;
|
SelectStmt *n;
|
||||||
@ -2685,7 +2680,6 @@ opt_cursor: BINARY { $$ = TRUE; }
|
|||||||
* SELECT STATEMENTS
|
* SELECT STATEMENTS
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
/***S*I***/
|
|
||||||
/* The new 'SelectStmt' rule adapted for the optional use of INTERSECT EXCEPT and UNION
|
/* The new 'SelectStmt' rule adapted for the optional use of INTERSECT EXCEPT and UNION
|
||||||
* accepts the use of '(' and ')' to select an order of set operations.
|
* accepts the use of '(' and ')' to select an order of set operations.
|
||||||
*
|
*
|
||||||
@ -2770,7 +2764,6 @@ SelectStmt: select_clause sort_clause for_update_clause opt_select_limit
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* This rule parses Select statements including UNION INTERSECT and EXCEPT.
|
/* This rule parses Select statements including UNION INTERSECT and EXCEPT.
|
||||||
* '(' and ')' can be used to specify the order of the operations
|
* '(' and ')' can be used to specify the order of the operations
|
||||||
* (UNION EXCEPT INTERSECT). Without the use of '(' and ')' we want the
|
* (UNION EXCEPT INTERSECT). Without the use of '(' and ')' we want the
|
||||||
@ -2812,7 +2805,6 @@ select_clause: '(' select_clause ')'
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
SubSelect: SELECT opt_unique res_target_list2
|
SubSelect: SELECT opt_unique res_target_list2
|
||||||
result from_clause where_clause
|
result from_clause where_clause
|
||||||
group_clause having_clause
|
group_clause having_clause
|
||||||
@ -2821,7 +2813,6 @@ SubSelect: SELECT opt_unique res_target_list2
|
|||||||
n->unique = $2;
|
n->unique = $2;
|
||||||
n->unionall = FALSE;
|
n->unionall = FALSE;
|
||||||
n->targetList = $3;
|
n->targetList = $3;
|
||||||
/***S*I***/
|
|
||||||
/* This is new: Subselects support the INTO clause
|
/* This is new: Subselects support the INTO clause
|
||||||
* which allows queries that are not part of the
|
* which allows queries that are not part of the
|
||||||
* SQL92 standard and should not be formulated!
|
* SQL92 standard and should not be formulated!
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.57 1999/05/12 07:22:52 thomas Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.58 1999/07/13 21:17:34 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -92,7 +92,6 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"else", ELSE},
|
{"else", ELSE},
|
||||||
{"encoding", ENCODING},
|
{"encoding", ENCODING},
|
||||||
{"end", END_TRANS},
|
{"end", END_TRANS},
|
||||||
/***S*I***/
|
|
||||||
{"except", EXCEPT},
|
{"except", EXCEPT},
|
||||||
{"exclusive", EXCLUSIVE},
|
{"exclusive", EXCLUSIVE},
|
||||||
{"execute", EXECUTE},
|
{"execute", EXECUTE},
|
||||||
@ -123,7 +122,6 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"insensitive", INSENSITIVE},
|
{"insensitive", INSENSITIVE},
|
||||||
{"insert", INSERT},
|
{"insert", INSERT},
|
||||||
{"instead", INSTEAD},
|
{"instead", INSTEAD},
|
||||||
/***S*I***/
|
|
||||||
{"intersect", INTERSECT},
|
{"intersect", INTERSECT},
|
||||||
{"interval", INTERVAL},
|
{"interval", INTERVAL},
|
||||||
{"into", INTO},
|
{"into", INTO},
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.48 1999/07/11 17:54:30 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.49 1999/07/13 21:17:35 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -24,7 +24,6 @@
|
|||||||
#include "parser/parse_relation.h"
|
#include "parser/parse_relation.h"
|
||||||
#include "nodes/parsenodes.h"
|
#include "nodes/parsenodes.h"
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
#include "parser/parse_node.h"
|
#include "parser/parse_node.h"
|
||||||
#include "parser/parse_target.h"
|
#include "parser/parse_target.h"
|
||||||
|
|
||||||
@ -1692,7 +1691,6 @@ apply_RIR_view(Node **nodePtr, int rt_index, RangeTblEntry *rte, List *tlist, in
|
|||||||
modified,
|
modified,
|
||||||
sublevels_up + 1);
|
sublevels_up + 1);
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
tmp_lefthand = sub->lefthand;
|
tmp_lefthand = sub->lefthand;
|
||||||
foreach(tmp_oper, sub->oper)
|
foreach(tmp_oper, sub->oper)
|
||||||
{
|
{
|
||||||
@ -2709,8 +2707,6 @@ QueryRewrite(Query *parsetree)
|
|||||||
List *rewritten,
|
List *rewritten,
|
||||||
*rewritten_item;
|
*rewritten_item;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Rewrite Union, Intersect and Except Queries to normal Union Queries
|
* Rewrite Union, Intersect and Except Queries to normal Union Queries
|
||||||
* using IN and NOT IN subselects
|
* using IN and NOT IN subselects
|
||||||
@ -2741,7 +2737,6 @@ QueryRewrite(Query *parsetree)
|
|||||||
return rewritten;
|
return rewritten;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* This function takes two targetlists as arguments and checks if the
|
/* This function takes two targetlists as arguments and checks if the
|
||||||
* targetlists are compatible (i.e. both select for the same number of
|
* targetlists are compatible (i.e. both select for the same number of
|
||||||
* attributes and the types are compatible */
|
* attributes and the types are compatible */
|
||||||
@ -2817,7 +2812,6 @@ check_targetlists_are_compatible(List *prev_target, List *current_target)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* Rewrites UNION INTERSECT and EXCEPT queries to semantiacally equivalent
|
/* Rewrites UNION INTERSECT and EXCEPT queries to semantiacally equivalent
|
||||||
* queries that use IN and NOT IN subselects.
|
* queries that use IN and NOT IN subselects.
|
||||||
*
|
*
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.32 1999/05/26 12:55:48 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.33 1999/07/13 21:17:36 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -163,8 +163,6 @@ OffsetVarNodes(Node *node, int offset, int sublevels_up)
|
|||||||
offset,
|
offset,
|
||||||
sublevels_up + 1);
|
sublevels_up + 1);
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make sure the first argument of sub->oper points to the
|
* Make sure the first argument of sub->oper points to the
|
||||||
* same var as sub->lefthand does otherwise we will run
|
* same var as sub->lefthand does otherwise we will run
|
||||||
@ -383,8 +381,6 @@ ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up)
|
|||||||
new_index,
|
new_index,
|
||||||
sublevels_up + 1);
|
sublevels_up + 1);
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make sure the first argument of sub->oper points to the
|
* Make sure the first argument of sub->oper points to the
|
||||||
* same var as sub->lefthand does otherwise we will run
|
* same var as sub->lefthand does otherwise we will run
|
||||||
@ -481,7 +477,6 @@ AddQual(Query *parsetree, Node *qual)
|
|||||||
if (qual == NULL)
|
if (qual == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* INTERSECT want's the original, but we need to copy - Jan */
|
/* INTERSECT want's the original, but we need to copy - Jan */
|
||||||
/* copy = qual; */
|
/* copy = qual; */
|
||||||
copy = copyObject(qual);
|
copy = copyObject(qual);
|
||||||
@ -504,7 +499,6 @@ AddHavingQual(Query *parsetree, Node *havingQual)
|
|||||||
if (havingQual == NULL)
|
if (havingQual == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* INTERSECT want's the original, but we need to copy - Jan */
|
/* INTERSECT want's the original, but we need to copy - Jan */
|
||||||
/* copy = havingQual; */
|
/* copy = havingQual; */
|
||||||
copy = copyObject(havingQual);
|
copy = copyObject(havingQual);
|
||||||
@ -525,7 +519,6 @@ AddNotHavingQual(Query *parsetree, Node *havingQual)
|
|||||||
if (havingQual == NULL)
|
if (havingQual == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* INTERSECT want's the original, but we need to copy - Jan */
|
/* INTERSECT want's the original, but we need to copy - Jan */
|
||||||
/* copy = (Node *) make_notclause((Expr *)havingQual); */
|
/* copy = (Node *) make_notclause((Expr *)havingQual); */
|
||||||
copy = (Node *) make_notclause((Expr *) copyObject(havingQual));
|
copy = (Node *) make_notclause((Expr *) copyObject(havingQual));
|
||||||
@ -542,7 +535,6 @@ AddNotQual(Query *parsetree, Node *qual)
|
|||||||
if (qual == NULL)
|
if (qual == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* INTERSECT want's the original, but we need to copy - Jan */
|
/* INTERSECT want's the original, but we need to copy - Jan */
|
||||||
/* copy = (Node *) make_notclause((Expr *)qual); */
|
/* copy = (Node *) make_notclause((Expr *)qual); */
|
||||||
copy = (Node *) make_notclause((Expr *) copyObject(qual));
|
copy = (Node *) make_notclause((Expr *) copyObject(qual));
|
||||||
@ -1098,7 +1090,6 @@ nodeHandleViewRule(Node **nodePtr,
|
|||||||
lfirst(sublink->lefthand);
|
lfirst(sublink->lefthand);
|
||||||
|
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* INTERSECT want's this - Jan */
|
/* INTERSECT want's this - Jan */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: nodeGroup.h,v 1.10 1999/05/25 16:13:55 momjian Exp $
|
* $Id: nodeGroup.h,v 1.11 1999/07/13 21:17:37 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -23,7 +23,6 @@ extern int ExecCountSlotsGroup(Group *node);
|
|||||||
extern void ExecEndGroup(Group *node);
|
extern void ExecEndGroup(Group *node);
|
||||||
extern void ExecReScanGroup(Group *node, ExprContext *exprCtxt, Plan *parent);
|
extern void ExecReScanGroup(Group *node, ExprContext *exprCtxt, Plan *parent);
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
extern void ExecReScanGroup(Group *node, ExprContext *exprCtxt, Plan *parent);
|
extern void ExecReScanGroup(Group *node, ExprContext *exprCtxt, Plan *parent);
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: parsenodes.h,v 1.74 1999/05/25 22:42:57 momjian Exp $
|
* $Id: parsenodes.h,v 1.75 1999/07/13 21:17:38 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -60,7 +60,6 @@ typedef struct Query
|
|||||||
* BY */
|
* BY */
|
||||||
Node *havingQual; /* qualification of each group */
|
Node *havingQual; /* qualification of each group */
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
List *intersectClause;
|
List *intersectClause;
|
||||||
|
|
||||||
List *unionClause; /* unions are linked under the previous
|
List *unionClause; /* unions are linked under the previous
|
||||||
@ -613,7 +612,6 @@ typedef struct InsertStmt
|
|||||||
Node *havingClause; /* having conditional-expression */
|
Node *havingClause; /* having conditional-expression */
|
||||||
List *unionClause; /* union subselect parameters */
|
List *unionClause; /* union subselect parameters */
|
||||||
bool unionall; /* union without unique sort */
|
bool unionall; /* union without unique sort */
|
||||||
/***S*I***/
|
|
||||||
List *intersectClause;
|
List *intersectClause;
|
||||||
List *forUpdate; /* FOR UPDATE clause */
|
List *forUpdate; /* FOR UPDATE clause */
|
||||||
} InsertStmt;
|
} InsertStmt;
|
||||||
@ -656,7 +654,6 @@ typedef struct SelectStmt
|
|||||||
Node *whereClause; /* qualifications */
|
Node *whereClause; /* qualifications */
|
||||||
List *groupClause; /* group by clause */
|
List *groupClause; /* group by clause */
|
||||||
Node *havingClause; /* having conditional-expression */
|
Node *havingClause; /* having conditional-expression */
|
||||||
/***S*I***/
|
|
||||||
List *intersectClause;
|
List *intersectClause;
|
||||||
List *exceptClause;
|
List *exceptClause;
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: analyze.h,v 1.7 1999/05/25 16:14:24 momjian Exp $
|
* $Id: analyze.h,v 1.8 1999/07/13 21:17:40 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
extern List *parse_analyze(List *pl, ParseState *parentParseState);
|
extern List *parse_analyze(List *pl, ParseState *parentParseState);
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
extern void create_select_list(Node *ptr, List **select_list, bool *unionall_present);
|
extern void create_select_list(Node *ptr, List **select_list, bool *unionall_present);
|
||||||
extern Node *A_Expr_to_Expr(Node *ptr, bool *intersect_present);
|
extern Node *A_Expr_to_Expr(Node *ptr, bool *intersect_present);
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: elog.h,v 1.10 1999/02/13 23:22:18 momjian Exp $
|
* $Id: elog.h,v 1.11 1999/07/13 21:17:42 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -29,7 +29,6 @@
|
|||||||
#define ABORTX 0x4000 /* abort process after logging */
|
#define ABORTX 0x4000 /* abort process after logging */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* Increase this to be able to use postmaster -d 3 with complex
|
/* Increase this to be able to use postmaster -d 3 with complex
|
||||||
* view definitions (which are transformed to very, very large INSERT statements
|
* view definitions (which are transformed to very, very large INSERT statements
|
||||||
* and if -d 3 is used the query string of these statements is printed using
|
* and if -d 3 is used the query string of these statements is printed using
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.13 1999/04/26 05:28:47 meskes Exp $
|
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.14 1999/07/13 21:17:44 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -91,7 +91,6 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"else", ELSE},
|
{"else", ELSE},
|
||||||
{"encoding", ENCODING},
|
{"encoding", ENCODING},
|
||||||
{"end", END_TRANS},
|
{"end", END_TRANS},
|
||||||
/***S*I***/
|
|
||||||
{"except", EXCEPT},
|
{"except", EXCEPT},
|
||||||
|
|
||||||
{"execute", EXECUTE},
|
{"execute", EXECUTE},
|
||||||
@ -121,7 +120,6 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"insensitive", INSENSITIVE},
|
{"insensitive", INSENSITIVE},
|
||||||
{"insert", INSERT},
|
{"insert", INSERT},
|
||||||
{"instead", INSTEAD},
|
{"instead", INSTEAD},
|
||||||
/***S*I***/
|
|
||||||
{"intersect", INTERSECT},
|
{"intersect", INTERSECT},
|
||||||
|
|
||||||
{"interval", INTERVAL},
|
{"interval", INTERVAL},
|
||||||
|
@ -2622,7 +2622,6 @@ OptimizableStmt: SelectStmt
|
|||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* This rule used 'opt_column_list' between 'relation_name' and 'insert_rest'
|
/* This rule used 'opt_column_list' between 'relation_name' and 'insert_rest'
|
||||||
* originally. When the second rule of 'insert_rest' was changed to use
|
* originally. When the second rule of 'insert_rest' was changed to use
|
||||||
* the new 'SelectStmt' rule (for INTERSECT and EXCEPT) it produced a shift/red uce
|
* the new 'SelectStmt' rule (for INTERSECT and EXCEPT) it produced a shift/red uce
|
||||||
@ -2778,7 +2777,6 @@ opt_cursor: BINARY { $$ = make1_str("binary"); }
|
|||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* The new 'SelectStmt' rule adapted for the optional use of INTERSECT EXCEPT a nd UNION
|
/* The new 'SelectStmt' rule adapted for the optional use of INTERSECT EXCEPT a nd UNION
|
||||||
* accepts the use of '(' and ')' to select an order of set operations.
|
* accepts the use of '(' and ')' to select an order of set operations.
|
||||||
* The rule returns a SelectStmt Node having the set operations attached to
|
* The rule returns a SelectStmt Node having the set operations attached to
|
||||||
@ -2794,7 +2792,6 @@ SelectStmt: select_clause sort_clause for_update_clause opt_select_limit
|
|||||||
$$ = cat4_str($1, $2, $3, $4);
|
$$ = cat4_str($1, $2, $3, $4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
/* This rule parses Select statements including UNION INTERSECT and EXCEPT.
|
/* This rule parses Select statements including UNION INTERSECT and EXCEPT.
|
||||||
* '(' and ')' can be used to specify the order of the operations
|
* '(' and ')' can be used to specify the order of the operations
|
||||||
* (UNION EXCEPT INTERSECT). Without the use of '(' and ')' we want the
|
* (UNION EXCEPT INTERSECT). Without the use of '(' and ')' we want the
|
||||||
@ -2827,7 +2824,6 @@ select_clause: '(' select_clause ')'
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
/***S*I***/
|
|
||||||
SubSelect: SELECT opt_unique res_target_list2
|
SubSelect: SELECT opt_unique res_target_list2
|
||||||
result from_clause where_clause
|
result from_clause where_clause
|
||||||
group_clause having_clause
|
group_clause having_clause
|
||||||
|
Reference in New Issue
Block a user