Remove old quel labels.
authorBruce Momjian
Fri, 9 Jan 1998 20:06:08 +0000 (20:06 +0000)
committerBruce Momjian
Fri, 9 Jan 1998 20:06:08 +0000 (20:06 +0000)
src/backend/parser/analyze.c
src/backend/parser/gram.y
src/include/nodes/parsenodes.h

index 659cd255db37541f5869c2feee7cdca49ac106a9..8aea35692777dfabc5448f0dca37ac253ea7afc1 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.61 1998/01/05 03:32:12 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.62 1998/01/09 20:05:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 static Query *transformStmt(ParseState *pstate, Node *stmt);
 static Query *transformDeleteStmt(ParseState *pstate, DeleteStmt *stmt);
-static Query *transformInsertStmt(ParseState *pstate, AppendStmt *stmt);
+static Query *transformInsertStmt(ParseState *pstate, InsertStmt *stmt);
 static Query *transformIndexStmt(ParseState *pstate, IndexStmt *stmt);
 static Query *transformExtendStmt(ParseState *pstate, ExtendStmt *stmt);
 static Query *transformRuleStmt(ParseState *query, RuleStmt *stmt);
-static Query *transformSelectStmt(ParseState *pstate, RetrieveStmt *stmt);
-static Query *transformUpdateStmt(ParseState *pstate, ReplaceStmt *stmt);
+static Query *transformSelectStmt(ParseState *pstate, SelectStmt *stmt);
+static Query *transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt);
 static Query *transformCursorStmt(ParseState *pstate, CursorStmt *stmt);
 static Query *transformCreateStmt(ParseState *pstate, CreateStmt *stmt);
 
@@ -163,24 +163,24 @@ transformStmt(ParseState *pstate, Node *parseTree)
             *  Optimizable statements
             *------------------------
             */
-       case T_AppendStmt:
-           result = transformInsertStmt(pstate, (AppendStmt *) parseTree);
+       case T_InsertStmt:
+           result = transformInsertStmt(pstate, (InsertStmt *) parseTree);
            break;
 
        case T_DeleteStmt:
            result = transformDeleteStmt(pstate, (DeleteStmt *) parseTree);
            break;
 
-       case T_ReplaceStmt:
-           result = transformUpdateStmt(pstate, (ReplaceStmt *) parseTree);
+       case T_UpdateStmt:
+           result = transformUpdateStmt(pstate, (UpdateStmt *) parseTree);
            break;
 
        case T_CursorStmt:
            result = transformCursorStmt(pstate, (CursorStmt *) parseTree);
            break;
 
-       case T_RetrieveStmt:
-           result = transformSelectStmt(pstate, (RetrieveStmt *) parseTree);
+       case T_SelectStmt:
+           result = transformSelectStmt(pstate, (SelectStmt *) parseTree);
            break;
 
        default:
@@ -231,7 +231,7 @@ transformDeleteStmt(ParseState *pstate, DeleteStmt *stmt)
  *   transform an Insert Statement
  */
 static Query *
-transformInsertStmt(ParseState *pstate, AppendStmt *stmt)
+transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
 {
    Query      *qry = makeNode(Query);  /* make a new query tree */
    List       *icolumns;
@@ -800,7 +800,7 @@ transformRuleStmt(ParseState *pstate, RuleStmt *stmt)
  *
  */
 static Query *
-transformSelectStmt(ParseState *pstate, RetrieveStmt *stmt)
+transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
 {
    Query      *qry = makeNode(Query);
 
@@ -851,7 +851,7 @@ transformSelectStmt(ParseState *pstate, RetrieveStmt *stmt)
  *
  */
 static Query *
-transformUpdateStmt(ParseState *pstate, ReplaceStmt *stmt)
+transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
 {
    Query      *qry = makeNode(Query);
 
index 2262fbc067d982a9ce4f889a191e4cfde0da8b9d..c4b6c94c6fef4025d5a7bca75bfb70f277a9d0ce 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.85 1998/01/05 16:39:16 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.86 1998/01/09 20:05:52 momjian Exp $
  *
  * HISTORY
  *   AUTHOR            DATE            MAJOR EVENT
@@ -108,7 +108,7 @@ Oid param_type(int t); /* used in parse_expr.c */
    VersionStmt         *vstmt;
    DefineStmt          *dstmt;
    RuleStmt            *rstmt;
-   AppendStmt          *astmt;
+   InsertStmt          *astmt;
 }
 
 %type    stmt,
@@ -121,7 +121,7 @@ Oid param_type(int t); /* used in parse_expr.c */
        RemoveFuncStmt, RemoveStmt,
        RenameStmt, RevokeStmt, RuleStmt, TransactionStmt, ViewStmt, LoadStmt,
        CreatedbStmt, DestroydbStmt, VacuumStmt, CursorStmt, SubSelect,
-       ReplaceStmt, AppendStmt, RetrieveStmt, NotifyStmt, DeleteStmt, ClusterStmt,
+       UpdateStmt, InsertStmt, SelectStmt, NotifyStmt, DeleteStmt, ClusterStmt,
        ExplainStmt, VariableSetStmt, VariableShowStmt, VariableResetStmt,
        CreateUserStmt, AlterUserStmt, DropUserStmt
 
@@ -590,17 +590,17 @@ alter_clause:  ADD opt_column columnDef
                    Node *lp = lfirst($3);
 
                    if (length($3) != 1)
-                       elog(ERROR,"ALTER TABLE/ADD() allows one column only",NULL);
+                       elog(ERROR,"ALTER TABLE/ADD() allows one column only");
                    $$ = lp;
                }
            | DROP opt_column ColId
-               {   elog(ERROR,"ALTER TABLE/DROP COLUMN not yet implemented",NULL); }
+               {   elog(ERROR,"ALTER TABLE/DROP COLUMN not yet implemented"); }
            | ALTER opt_column ColId SET DEFAULT default_expr
-               {   elog(ERROR,"ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented",NULL); }
+               {   elog(ERROR,"ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented"); }
            | ALTER opt_column ColId DROP DEFAULT
-               {   elog(ERROR,"ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented",NULL); }
+               {   elog(ERROR,"ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented"); }
            | ADD ConstraintElem
-               {   elog(ERROR,"ALTER TABLE/ADD CONSTRAINT not yet implemented",NULL); }
+               {   elog(ERROR,"ALTER TABLE/ADD CONSTRAINT not yet implemented"); }
        ;
 
 
@@ -780,7 +780,7 @@ ColConstraintElem:  CHECK '(' constraint_expr ')'
                }
            | REFERENCES ColId opt_column_list key_match key_actions
                {
-                   elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented",NULL);
+                   elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented");
                    $$ = NULL;
                }
        ;
@@ -811,11 +811,11 @@ default_expr:  AexprConst
            | default_expr '*' default_expr
                {   $$ = nconc( $1, lcons( makeString( "*"), $3)); }
            | default_expr '=' default_expr
-               {   elog(ERROR,"boolean expressions not supported in DEFAULT",NULL); }
+               {   elog(ERROR,"boolean expressions not supported in DEFAULT"); }
            | default_expr '<' default_expr
-               {   elog(ERROR,"boolean expressions not supported in DEFAULT",NULL); }
+               {   elog(ERROR,"boolean expressions not supported in DEFAULT"); }
            | default_expr '>' default_expr
-               {   elog(ERROR,"boolean expressions not supported in DEFAULT",NULL); }
+               {   elog(ERROR,"boolean expressions not supported in DEFAULT"); }
            | ':' default_expr
                {   $$ = lcons( makeString( ":"), $2); }
            | ';' default_expr
@@ -848,7 +848,7 @@ default_expr:  AexprConst
            | default_expr Op default_expr
                {
                    if (!strcmp("<=", $2) || !strcmp(">=", $2))
-                       elog(ERROR,"boolean expressions not supported in DEFAULT",NULL);
+                       elog(ERROR,"boolean expressions not supported in DEFAULT");
                    $$ = nconc( $1, lcons( makeString( $2), $3));
                }
            | Op default_expr
@@ -919,7 +919,7 @@ ConstraintElem:  CHECK '(' constraint_expr ')'
                    $$ = (Node *)n;
                }
        | FOREIGN KEY '(' columnList ')' REFERENCES ColId opt_column_list key_match key_actions
-               {   elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented",NULL); }
+               {   elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented"); }
        ;
 
 constraint_list:  constraint_list ',' constraint_expr
@@ -1050,7 +1050,7 @@ OptArchiveType:  ARCHIVE '=' NONE                     { }
 
 CreateAsStmt:  CREATE TABLE relation_name OptCreateAs AS SubSelect
                {
-                   RetrieveStmt *n = (RetrieveStmt *)$6;
+                   SelectStmt *n = (SelectStmt *)$6;
                    if ($4 != NIL)
                        mapTargetColumns($4, n->targetList);
                    n->into = $3;
@@ -1379,7 +1379,7 @@ opt_direction:    FORWARD                         { $$ = FORWARD; }
 
 fetch_how_many:  Iconst
               { $$ = $1;
-                if ($1 <= 0) elog(ERROR,"Please specify nonnegative count for fetch",NULL); }
+                if ($1 <= 0) elog(ERROR,"Please specify nonnegative count for fetch"); }
        | ALL                           { $$ = 0; /* 0 means fetch all tuples*/ }
        | /*EMPTY*/                     { $$ = 1; /*default*/ }
        ;
@@ -1597,7 +1597,7 @@ RecipeStmt:  EXECUTE RECIPE recipe_name
                {
                    RecipeStmt *n;
                    if (!IsTransactionBlock())
-                       elog(ERROR,"EXECUTE RECIPE may only be used in begin/end transaction blocks",NULL);
+                       elog(ERROR,"EXECUTE RECIPE may only be used in begin/end transaction blocks");
 
                    n = makeNode(RecipeStmt);
                    n->recipeName = $3;
@@ -1725,7 +1725,7 @@ MathOp:   '+'             { $$ = "+"; }
 
 oper_argtypes: name
                {
-                  elog(ERROR,"parser: argument type missing (use NONE for unary operators)",NULL);
+                  elog(ERROR,"parser: argument type missing (use NONE for unary operators)");
                }
        | name ',' name
                { $$ = makeList(makeString($1), makeString($3), -1); }
@@ -1955,11 +1955,13 @@ TransactionStmt:  ABORT_TRANS TRANSACTION
  *
  *****************************************************************************/
 
-ViewStmt:  CREATE VIEW name AS RetrieveStmt
+ViewStmt:  CREATE VIEW name AS SelectStmt
                {
                    ViewStmt *n = makeNode(ViewStmt);
                    n->viewname = $3;
                    n->query = (Query *)$5;
+                   if (n->query->unionClause != NULL)
+                       elog(ERROR,"Views on unions not implemented.");
                    $$ = (Node *)n;
                }
        ;
@@ -2063,7 +2065,7 @@ VacuumStmt:  VACUUM opt_verbose opt_analyze
                    n->vacrel = $4;
                    n->va_spec = $5;
                    if ( $5 != NIL && !$4 )
-                       elog(ERROR,"parser: syntax error at or near \"(\"",NULL);
+                       elog(ERROR,"parser: syntax error at or near \"(\"");
                    $$ = (Node *)n;
                }
        ;
@@ -2117,10 +2119,10 @@ ExplainStmt:  EXPLAIN opt_verbose OptimizableStmt
  *                                                                          *
  *****************************************************************************/
 
-OptimizableStmt:  RetrieveStmt
+OptimizableStmt:  SelectStmt
        | CursorStmt
-       | ReplaceStmt
-       | AppendStmt
+       | UpdateStmt
+       | InsertStmt
        | NotifyStmt
        | DeleteStmt                    /* by default all are $$=$1 */
        ;
@@ -2133,7 +2135,7 @@ OptimizableStmt:  RetrieveStmt
  *
  *****************************************************************************/
 
-AppendStmt:  INSERT INTO relation_name opt_column_list insert_rest
+InsertStmt:  INSERT INTO relation_name opt_column_list insert_rest
                {
                    $5->relname = $3;
                    $5->cols = $4;
@@ -2143,14 +2145,14 @@ AppendStmt:  INSERT INTO relation_name opt_column_list insert_rest
 
 insert_rest:  VALUES '(' res_target_list2 ')'
                {
-                   $$ = makeNode(AppendStmt);
+                   $$ = makeNode(InsertStmt);
                    $$->targetList = $3;
                    $$->fromClause = NIL;
                    $$->whereClause = NULL;
                }
        | SELECT res_target_list2 from_clause where_clause
                {
-                   $$ = makeNode(AppendStmt);
+                   $$ = makeNode(InsertStmt);
                    $$->targetList = $2;
                    $$->fromClause = $3;
                    $$->whereClause = $4;
@@ -2199,16 +2201,16 @@ DeleteStmt:  DELETE FROM relation_name
 /*****************************************************************************
  *
  *     QUERY:
- *             ReplaceStmt (UPDATE)
+ *             UpdateStmt (UPDATE)
  *
  *****************************************************************************/
 
-ReplaceStmt:  UPDATE relation_name
+UpdateStmt:  UPDATE relation_name
              SET res_target_list
              from_clause
              where_clause
                {
-                   ReplaceStmt *n = makeNode(ReplaceStmt);
+                   UpdateStmt *n = makeNode(UpdateStmt);
                    n->relname = $2;
                    n->targetList = $4;
                    n->fromClause = $5;
@@ -2240,7 +2242,7 @@ CursorStmt:  DECLARE name opt_binary CURSOR FOR
                     *                          -- mao
                     */
                    if (!IsTransactionBlock())
-                       elog(ERROR,"Named portals may only be used in begin/end transaction blocks",NULL);
+                       elog(ERROR,"Named portals may only be used in begin/end transaction blocks");
 
                    n->portalname = $2;
                    n->binary = $3;
@@ -2262,12 +2264,12 @@ CursorStmt:  DECLARE name opt_binary CURSOR FOR
  *
  *****************************************************************************/
 
-RetrieveStmt:  SELECT opt_unique res_target_list2
+SelectStmt:  SELECT opt_unique res_target_list2
             result from_clause where_clause
             group_clause having_clause
             union_clause sort_clause
                {
-                   RetrieveStmt *n = makeNode(RetrieveStmt);
+                   SelectStmt *n = makeNode(SelectStmt);
                    n->unique = $2;
                    n->targetList = $3;
                    n->into = $4;
@@ -2283,7 +2285,7 @@ RetrieveStmt:  SELECT opt_unique res_target_list2
 
 union_clause:  UNION opt_union select_list
                {
-                   RetrieveStmt *n = (RetrieveStmt *)lfirst($3);
+                   SelectStmt *n = (SelectStmt *)lfirst($3);
                    n->unionall = $2;
                    $$ = $3;
                }
@@ -2293,7 +2295,7 @@ union_clause:  UNION opt_union select_list
 
 select_list:  select_list UNION opt_union SubSelect
                {
-                   RetrieveStmt *n = (RetrieveStmt *)$4;
+                   SelectStmt *n = (SelectStmt *)$4;
                    n->unionall = $3;
                    $$ = lappend($1, $4);
                }
@@ -2305,7 +2307,7 @@ SubSelect:    SELECT opt_unique res_target_list2
             from_clause where_clause
             group_clause having_clause
                {
-                   RetrieveStmt *n = makeNode(RetrieveStmt);
+                   SelectStmt *n = makeNode(SelectStmt);
                    n->unique = $2;
                    n->unionall = FALSE;
                    n->targetList = $3;
@@ -2444,7 +2446,7 @@ having_clause:  HAVING a_expr                 { $$ = $2; }
 from_clause:  FROM '(' relation_expr join_expr JOIN relation_expr join_spec ')'
                {
                    $$ = NIL;
-                   elog(ERROR,"JOIN not yet implemented",NULL);
+                   elog(ERROR,"JOIN not yet implemented");
                }
        | FROM from_list                        { $$ = $2; }
        | /*EMPTY*/                             { $$ = NIL; }
@@ -2453,7 +2455,7 @@ from_clause:  FROM '(' relation_expr join_expr JOIN relation_expr join_spec ')'
 from_list: from_list ',' from_val
                { $$ = lappend($1, $3); }
        | from_val CROSS JOIN from_val
-               { elog(ERROR,"CROSS JOIN not yet implemented",NULL); }
+               { elog(ERROR,"CROSS JOIN not yet implemented"); }
        | from_val
                { $$ = lcons($1, NIL); }
        ;
@@ -2480,19 +2482,19 @@ from_val:  relation_expr AS ColLabel
 
 join_expr:  NATURAL join_expr                  { $$ = NULL; }
        | FULL join_outer
-               { elog(ERROR,"FULL OUTER JOIN not yet implemented",NULL); }
+               { elog(ERROR,"FULL OUTER JOIN not yet implemented"); }
        | LEFT join_outer
-               { elog(ERROR,"LEFT OUTER JOIN not yet implemented",NULL); }
+               { elog(ERROR,"LEFT OUTER JOIN not yet implemented"); }
        | RIGHT join_outer
-               { elog(ERROR,"RIGHT OUTER JOIN not yet implemented",NULL); }
+               { elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); }
        | OUTER_P
-               { elog(ERROR,"OUTER JOIN not yet implemented",NULL); }
+               { elog(ERROR,"OUTER JOIN not yet implemented"); }
        | INNER_P
-               { elog(ERROR,"INNER JOIN not yet implemented",NULL); }
+               { elog(ERROR,"INNER JOIN not yet implemented"); }
        | UNION
-               { elog(ERROR,"UNION JOIN not yet implemented",NULL); }
+               { elog(ERROR,"UNION JOIN not yet implemented"); }
        | /*EMPTY*/
-               { elog(ERROR,"INNER JOIN not yet implemented",NULL); }
+               { elog(ERROR,"INNER JOIN not yet implemented"); }
        ;
 
 join_outer:  OUTER_P                           { $$ = NULL; }
@@ -2653,13 +2655,13 @@ Numeric:  FLOAT opt_float
 opt_float:  '(' Iconst ')'
                {
                    if ($2 < 1)
-                       elog(ERROR,"precision for FLOAT must be at least 1",NULL);
+                       elog(ERROR,"precision for FLOAT must be at least 1");
                    else if ($2 < 7)
                        $$ = xlateSqlType("float4");
                    else if ($2 < 16)
                        $$ = xlateSqlType("float8");
                    else
-                       elog(ERROR,"precision for FLOAT must be less than 16",NULL);
+                       elog(ERROR,"precision for FLOAT must be less than 16");
                }
        | /*EMPTY*/
                {
@@ -3098,7 +3100,7 @@ a_expr:  attr opt_indirection
         */
        | EXISTS '(' SubSelect ')'
                {
-                   elog(ERROR,"EXISTS not yet implemented",NULL);
+                   elog(ERROR,"EXISTS not yet implemented");
                    $$ = $3;
                }
        | EXTRACT '(' extract_list ')'
@@ -3428,7 +3430,7 @@ trim_list:  a_expr FROM expr_list
 
 in_expr:  SubSelect
                {
-                   elog(ERROR,"IN (SUBSELECT) not yet implemented",NULL);
+                   elog(ERROR,"IN (SUBSELECT) not yet implemented");
                    $$ = $1;
                }
        | in_expr_nodes
@@ -3445,7 +3447,7 @@ in_expr_nodes:  AexprConst
 
 not_in_expr:  SubSelect
                {
-                   elog(ERROR,"NOT IN (SUBSELECT) not yet implemented",NULL);
+                   elog(ERROR,"NOT IN (SUBSELECT) not yet implemented");
                    $$ = $1;
                }
        | not_in_expr_nodes
@@ -3765,14 +3767,14 @@ SpecialRuleRelation:  CURRENT
                    if (QueryIsRule)
                        $$ = "*CURRENT*";
                    else
-                       elog(ERROR,"CURRENT used in non-rule query",NULL);
+                       elog(ERROR,"CURRENT used in non-rule query");
                }
        | NEW
                {
                    if (QueryIsRule)
                        $$ = "*NEW*";
                    else
-                       elog(ERROR,"NEW used in non-rule query",NULL);
+                       elog(ERROR,"NEW used in non-rule query");
                }
        ;
 
@@ -3800,7 +3802,7 @@ makeRowExpr(char *opr, List *largs, List *rargs)
    Node *larg, *rarg;
 
    if (length(largs) != length(rargs))
-       elog(ERROR,"Unequal number of entries in row expression",NULL);
+       elog(ERROR,"Unequal number of entries in row expression");
 
    if (lnext(largs) != NIL)
        expr = makeRowExpr(opr,lnext(largs),lnext(rargs));
@@ -3858,7 +3860,7 @@ mapTargetColumns(List *src, List *dst)
    ResTarget *d;
 
    if (length(src) != length(dst))
-       elog(ERROR,"CREATE TABLE/AS SELECT has mismatched column count",NULL);
+       elog(ERROR,"CREATE TABLE/AS SELECT has mismatched column count");
 
    while ((src != NIL) && (dst != NIL))
    {
@@ -4069,7 +4071,7 @@ makeConstantList( A_Const *n)
 {
    char *defval = NULL;
    if (nodeTag(n) != T_A_Const) {
-       elog(ERROR,"Cannot handle non-constant parameter",NULL);
+       elog(ERROR,"Cannot handle non-constant parameter");
 
    } else if (n->val.type == T_Float) {
        defval = (char*) palloc(20+1);
@@ -4086,7 +4088,7 @@ makeConstantList( A_Const *n)
        strcat( defval, "'");
 
    } else {
-       elog(ERROR,"Internal error in makeConstantList(): cannot encode node",NULL);
+       elog(ERROR,"Internal error in makeConstantList(): cannot encode node");
    };
 
 #ifdef PARSEDEBUG
index d288d66aa364df26bb86d8491a4188ee2c06a72b..f898880f6de9c5f4a70972033fc7c5add524a230 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parsenodes.h,v 1.40 1997/12/27 06:41:39 momjian Exp $
+ * $Id: parsenodes.h,v 1.41 1998/01/09 20:06:08 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -570,7 +570,7 @@ typedef struct VariableResetStmt
  *     Insert Statement
  * ----------------------
  */
-typedef struct AppendStmt
+typedef struct InsertStmt
 {
    NodeTag     type;
    char       *relname;        /* relation to insert into */
@@ -578,7 +578,7 @@ typedef struct AppendStmt
    List       *targetList;     /* the target list (of ResTarget) */
    List       *fromClause;     /* the from clause */
    Node       *whereClause;    /* qualifications */
-} AppendStmt;
+} InsertStmt;
 
 /* ----------------------
  *     Delete Statement
@@ -595,14 +595,14 @@ typedef struct DeleteStmt
  *     Update Statement
  * ----------------------
  */
-typedef struct ReplaceStmt
+typedef struct UpdateStmt
 {
    NodeTag     type;
    char       *relname;        /* relation to update */
    List       *targetList;     /* the target list (of ResTarget) */
    Node       *whereClause;    /* qualifications */
    List       *fromClause;     /* the from clause */
-} ReplaceStmt;
+} UpdateStmt;
 
 /* ----------------------
  *     Create Cursor Statement
@@ -625,7 +625,7 @@ typedef struct CursorStmt
  *     Select Statement
  * ----------------------
  */
-typedef struct RetrieveStmt
+typedef struct SelectStmt
 {
    NodeTag     type;
    char       *unique;         /* NULL, '*', or unique attribute name */
@@ -638,7 +638,7 @@ typedef struct RetrieveStmt
    List       *unionClause;    /* union subselect parameters */
    List       *sortClause;     /* sort clause (a list of SortGroupBy's) */
    bool        unionall;       /* union without unique sort */
-} RetrieveStmt;
+} SelectStmt;
 
 
 /****************************************************************************