Synced parser.
authorMichael Meskes
Fri, 15 Nov 2002 15:47:44 +0000 (15:47 +0000)
committerMichael Meskes
Fri, 15 Nov 2002 15:47:44 +0000 (15:47 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/preproc/preproc.y

index aac097cbce1509ff03c2966fea01f22ee910db5d..d0fd0508eed307a9e20cdc9ba9ef6ecf606a6363 100644 (file)
@@ -1311,3 +1311,6 @@ Thu Nov  7 10:34:07 CET 2002
    - Set ecpg version to 2.10.0.
    - Set library version to 3.4.0.
 
+Fri Nov 15 16:46:08 CET 2002
+
+   - Synced preproc.y with gram.y.
index 2a00c42cfeed833d26c992ced8053fb5f5bb3566..df961a7b55472b6fdcb48d4eee33e4e1baa8b87a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.201 2002/11/07 09:48:09 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.202 2002/11/15 15:47:44 meskes Exp $ */
 
 /* Copyright comment */
 %{
@@ -211,7 +211,7 @@ make_name(void)
    
         KEY
 
-   LANCOMPILER LANGUAGE LEADING LEFT LEVEL LIKE LIMIT LISTEN
+   LANCOMPILER LANGUAGE LAST LEADING LEFT LEVEL LIKE LIMIT LISTEN
         LOAD LOCAL LOCATION LOCK_P
 
    MATCH MAXVALUE MINUTE_P MINVALUE MODE MONTH_P MOVE
@@ -224,10 +224,10 @@ make_name(void)
         OUT_P OUTER_P OVERLAPS OVERLAY OWNER
 
    PARTIAL PASSWORD PATH_P PENDANT PLACING POSITION
-   PRECISION PREPARE PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE
+   PRECISION PRESERVE PREPARE PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE
 
    READ REAL RECHECK REFERENCES REINDEX RELATIVE RENAME REPLACE
-   RESET RESTRICT RETURNS REVOKE RIGHT ROLLBACK ROW RULE
+   RESET RESTRICT RETURNS REVOKE RIGHT ROLLBACK ROW ROWS RULE
 
    SCHEMA SCROLL SECOND_P SECURITY SELECT SEQUENCE SERIALIZABLE
         SESSION SESSION_USER SET SETOF SHARE SHOW SIMILAR SIMPLE SMALLINT SOME
@@ -239,7 +239,7 @@ make_name(void)
         UNENCRYPTED UNION UNIQUE UNKNOWN UNLISTEN UNTIL UPDATE USAGE
         USER USING
 
-        VACUUM VALID VALUES VARCHAR VARYING VERBOSE VERSION VIEW VOLATILE
+        VACUUM VALID VALUE VALUES VARCHAR VARYING VERBOSE VERSION VIEW VOLATILE
    WHEN WHERE WITH WITHOUT WORK WRITE
         YEAR_P
         ZONE
@@ -296,7 +296,7 @@ make_name(void)
 %type     update_target_el opt_id qualified_name database_name
 %type     access_method attr_name index_name name func_name
 %type     file_name AexprConst c_expr ConstTypename var_list
-%type     a_expr b_expr TruncateStmt CommentStmt
+%type     a_expr b_expr TruncateStmt CommentStmt OnCommitOption opt_by
 %type     opt_indirection expr_list extract_list extract_arg
 %type     position_list substr_list substr_from alter_column_default
 %type     trim_list in_expr substr_for attrs TableFuncElement
@@ -1094,11 +1094,11 @@ opt_using:  USING       { $$ = make_str("using"); }
  *****************************************************************************/
 
 CreateStmt:  CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')'
-               OptInherit OptWithOids
-           { $$ = cat_str(9, make_str("create"), $2, make_str("table"), $4, make_str("("), $6, make_str(")"), $8, $9); }
+               OptInherit OptWithOids OnCommitOption
+           { $$ = cat_str(10, make_str("create"), $2, make_str("table"), $4, make_str("("), $6, make_str(")"), $8, $9, $10); }
        | CREATE OptTemp TABLE qualified_name OF qualified_name 
-           '(' OptTableElementList ')' OptWithOids
-           { $$ = cat_str(10, make_str("create"), $2, make_str("table"), $4, make_str("of"), $6, make_str("("), $8, make_str(")"), $10); }
+           '(' OptTableElementList ')' OptWithOids OnCommitOption
+           { $$ = cat_str(11, make_str("create"), $2, make_str("table"), $4, make_str("of"), $6, make_str("("), $8, make_str(")"), $10, $11); }
        ;
 
 /*
@@ -1290,6 +1290,12 @@ OptWithOids:  WITH OIDS              { $$ = make_str("with oids"); }
        | /*EMPTY*/                 { $$ = EMPTY; }
        ;
 
+OnCommitOption:   ON COMMIT DROP       { $$ = make_str("on commit drop"); }
+       | ON COMMIT DELETE_P ROWS   { $$ = make_str("on commit delete rows"); }
+       | ON COMMIT PRESERVE ROWS   { $$ = make_str("on commit preserve rows"); }
+       | /*EMPTY*/         { $$ = EMPTY; }
+       ;
+       
 
 /*
  * Note: CREATE TABLE ... AS SELECT ... is just another spelling for
@@ -1341,16 +1347,22 @@ OptSeqElem:  CACHE NumConst
            { $$ = cat2_str(make_str("cache"), $2); }
        | CYCLE
            { $$ = make_str("cycle"); }
-       | INCREMENT NumConst
-           { $$ = cat2_str(make_str("increment"), $2); }
+       | NO CYCLE
+           { $$ = make_str("no cycle"); }
+       | INCREMENT opt_by NumConst
+           { $$ = cat_str(3, make_str("increment"), $2, $3); }
        | MAXVALUE NumConst
            { $$ = cat2_str(make_str("maxvalue"), $2); }
        | MINVALUE NumConst
            { $$ = cat2_str(make_str("minvalue"), $2); }
-       | START NumConst
-           { $$ = cat2_str(make_str("start"), $2); }
+       | START opt_by NumConst
+           { $$ = cat_str(3, make_str("start"), $2, $3); }
        ;
 
+opt_by:        BY  { $$ = make_str("by"); }
+       | /*EMPTY*/ { $$ = EMPTY; }
+       ;
+       
 /*****************************************************************************
  *
  *     QUERIES :
@@ -1679,9 +1691,10 @@ direction:   FORWARD     { $$ = make_str("forward"); }
        ;
 
 fetch_how_many: IntConst   { $$ = $1; }
-       | ALL               { $$ = make_str("all"); }
-       | NEXT              { $$ = make_str("next"); }
-       | PRIOR             { $$ = make_str("prior"); }
+       | ALL       { $$ = make_str("all"); }
+       | LAST      { $$ = make_str("last"); }
+       | NEXT      { $$ = make_str("next"); }
+       | PRIOR     { $$ = make_str("prior"); }
        ;
 
 from_in: IN_P              { $$ = make_str("in"); }
@@ -2295,12 +2308,18 @@ CreateConversionStmt:
  *
  *     QUERY:
  *             cluster  on 
+ *                             cluster 
+ *                             cluster ALL
  *
  *****************************************************************************/
 
 ClusterStmt:  CLUSTER index_name ON qualified_name
            { $$ = cat_str(4, make_str("cluster"), $2, make_str("on"), $4); }
-       ;
+   | CLUSTER qualified_name
+           { $$ = cat2_str(make_str("cluster"), $2); }
+   | CLUSTER ALL
+           { $$ = make_str("cluster all"); }
+   ;
 
 
 /*****************************************************************************
@@ -3454,6 +3473,8 @@ c_expr: columnref
            { $$ = $1; }
        | EXISTS select_with_parens
            { $$ = cat2_str(make_str("exists"), $2); }
+       | VALUE
+           { $$ = make_str("value"); }
        ;
 /*
  * This used to use ecpg_expr, but since there is no shift/reduce conflict
@@ -5145,7 +5166,8 @@ unreserved_keyword:
        | ISOLATION                     { $$ = make_str("isolation"); }
        | KEY                           { $$ = make_str("key"); }
        | LANGUAGE                      { $$ = make_str("language"); }
-       | LANCOMPILER                   { $$ = make_str("lancompiler"); }
+       | LANCOMPILER                       { $$ = make_str("lancompiler"); }
+       | LAST                          { $$ = make_str("last"); }
        | LEVEL                         { $$ = make_str("level"); }
        | LISTEN                        { $$ = make_str("listen"); }
        | LOAD                          { $$ = make_str("load"); }
@@ -5179,6 +5201,7 @@ unreserved_keyword:
        | PENDANT                       { $$ = make_str("pendant"); }
        | PRECISION                     { $$ = make_str("precision"); }
        | PREPARE                       { $$ = make_str("prepare"); }
+       | PRESERVE                      { $$ = make_str("preserver"); }
        | PRIOR                         { $$ = make_str("prior"); }
        | PRIVILEGES                    { $$ = make_str("privileges"); }
        | PROCEDURAL                    { $$ = make_str("procedural"); }
@@ -5194,6 +5217,7 @@ unreserved_keyword:
        | RETURNS                       { $$ = make_str("returns"); }
        | REVOKE                        { $$ = make_str("revoke"); }
        | ROLLBACK                      { $$ = make_str("rollback"); }
+       | ROWS                          { $$ = make_str("rows"); }
        | RULE                          { $$ = make_str("rule"); }
        | SCHEMA                        { $$ = make_str("schema"); }
        | SCROLL                        { $$ = make_str("scroll"); }
@@ -5394,6 +5418,7 @@ reserved_keyword:
        | UNIQUE                        { $$ = make_str("unique"); }
        | USER                          { $$ = make_str("user"); }
        | USING                         { $$ = make_str("using"); }
+       | VALUE                         { $$ = make_str("value"); }
        | WHEN                          { $$ = make_str("when"); }
        | WHERE                         { $$ = make_str("where"); }
        ;