*** empty log message ***
authorMichael Meskes <[email protected]>
Thu, 23 Mar 2000 07:53:48 +0000 (07:53 +0000)
committerMichael Meskes <[email protected]>
Thu, 23 Mar 2000 07:53:48 +0000 (07:53 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/preproc/keywords.c
src/interfaces/ecpg/preproc/preproc.y

index 806c6e56e7549b0ba136b52b39b064fe81e935ca..42d14534f898b3f8f953963ac19288eaa3ddb8cf 100644 (file)
@@ -871,5 +871,9 @@ Wed Mar 15 17:36:02 CET 2000
 Sun Mar 19 11:03:13 CET 2000
 
    - Fixed quoting bug in disconnect statement.
+
+Thu Mar 23 08:13:39 CET 2000
+
+   - Synced preproc.y and keyword.c.
    - Set library version to 3.1.0.
    - Set ecpg version to 2.7.0.
index ebfeab61f1f1d7b37cbcf5d4a9316b603dad2f98..891bc5129cb8f6a4582b4d1f28c20cc72fa15b09 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.24 2000/03/15 19:09:10 meskes Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.25 2000/03/23 07:53:48 meskes Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -48,6 +48,7 @@ static ScanKeyword ScanKeywords[] = {
    {"begin", BEGIN_TRANS},
    {"between", BETWEEN},
    {"binary", BINARY},
+   {"bit", BIT},
    {"both", BOTH},
    {"by", BY},
    {"cache", CACHE},
index 386097a48d4a5f03be5b09a3759caa7e40587498..f921fe4081f2382c6db786a4d62b117802e23b50 100644 (file)
@@ -223,7 +223,7 @@ make_name(void)
  * - Todd A. Brandys 1998-01-01?
  */
 %token  ABORT_TRANS, ACCESS, AFTER, AGGREGATE, ANALYZE,
-       BACKWARD, BEFORE, BINARY,
+       BACKWARD, BEFORE, BINARY, BIT
        CACHE, CLUSTER, COMMENT, COPY, CREATEDB, CREATEUSER, CYCLE,
                 DATABASE, DELIMITERS, DO,
        EACH, ENCODING, EXCLUSIVE, EXPLAIN, EXTEND,
@@ -326,7 +326,7 @@ make_name(void)
 %type  <str>    CreatePLangStmt IntegerOnly TriggerFuncArgs TriggerFuncArg
 %type  <str>    ViewStmt LoadStmt CreatedbStmt createdb_opt_encoding
 %type  <str>   createdb_opt_location opt_encoding AlterTableStmt
-%type  <str>    DropdbStmt ClusterStmt grantee RevokeStmt table_expr
+%type  <str>    DropdbStmt ClusterStmt grantee RevokeStmt table_expr Bit bit
 %type  <str>   GrantStmt privileges operation_commalist operation
 %type  <str>   opt_cursor opt_lmode ConstraintsSetStmt comment_tg
 %type  <str>   case_expr when_clause_list case_default case_arg when_clause
@@ -2899,6 +2899,7 @@ Typename:  SimpleTypename opt_array_bounds
 SimpleTypename:  Generic   { $$ = $1; }
        | Datetime  { $$ = $1; }
        | Numeric   { $$ = $1; }
+       | Bit       { $$ = $1; }
        | Character { $$ = $1; }
        ;
 
@@ -3059,6 +3060,35 @@ opt_decimal:  '(' Iconst ',' Iconst ')'
                }
        ;
 
+/*
+ * SQL92 bit-field data types
+ * The following implements BIT() and BIT VARYING().
+ */
+Bit:  bit '(' Iconst ')'
+                                {
+                                        $$ = cat_str(4, $1, make_str("("), $3, make_str(")"));
+                                        if (atol($3) < 1)
+                   {
+                                                sprintf(errortext,"length for type '%s' must be at least 1",$1);  
+                       mmerror(ET_ERROR, errortext);
+                   }
+                                        else if (atol($3) > (MaxAttrSize *sizeof(char)))
+                   {
+                                                sprintf(errortext, "length for type '%s' cannot exceed %ld", $1,    
+                                                         (MaxAttrSize * sizeof(char)));
+                   }
+                                }
+                | bit
+                                {
+                                        $$ = $1;
+               }
+       ;
+
+bit:  BIT opt_varying
+               {
+                   $$ = cat2_str(make_str("bit"), $2);
+               }
+
 /* 
  * SQL92 character data types
  * The following implements CHAR() and VARCHAR().
@@ -3250,6 +3280,8 @@ a_expr:  c_expr
                  * If you add more explicitly-known operators, be sure to add them
                  * also to b_expr and to the MathOp list above.
                  */
+       | '+' a_expr %prec UMINUS
+               {   $$ = cat2_str(make_str("+"), $2); }
        | '-' a_expr %prec UMINUS
                {   $$ = cat2_str(make_str("-"), $2); }
        | '%' a_expr
@@ -3262,7 +3294,10 @@ a_expr:  c_expr
                {       $$ = cat2_str(make_str(":"), $2); }
 */
        | ';' a_expr
-               {       $$ = cat2_str(make_str(";"), $2); }
+               {       $$ = cat2_str(make_str(";"), $2);
+                   mmerror(ET_WARN, "The ';' operator is deprecated.  Use ln(x) instead."
+                   "\n\tThis operator will be removed in a future release.");
+               }
        | a_expr '%'
                {       $$ = cat2_str($1, make_str("%")); }
        | a_expr '^'
@@ -3380,7 +3415,10 @@ b_expr:  c_expr
                {       $$ = cat2_str(make_str(":"), $2); }
 */
        | ';' b_expr
-               {       $$ = cat2_str(make_str(";"), $2); }
+               {       $$ = cat2_str(make_str(";"), $2);
+                   mmerror(ET_WARN, "The ';' operator is deprecated.  Use ln(x) instead."
+                   "\n\tThis operator will be removed in a future release.");
+               }
        | b_expr '%'
                {       $$ = cat2_str($1, make_str("%")); }
        | b_expr '^'
@@ -3810,6 +3848,8 @@ TypeId:  ColId
            {   $$ = $1; }
        | numeric
            {   $$ = $1; }
+       | bit
+           {   $$ = $1; }
        | character
            {   $$ = $1; }
        ;
@@ -4884,6 +4924,7 @@ ECPGColId:  /* to be used instead of ColId */
    | EACH              { $$ = make_str("each"); }
    | ENCODING          { $$ = make_str("encoding"); }
    | EXCLUSIVE         { $$ = make_str("exclusive"); }
+   | FORCE             { $$ = make_str("force"); }
    | FORWARD           { $$ = make_str("forward"); }
    | FUNCTION          { $$ = make_str("function"); }
    | HANDLER           { $$ = make_str("handler"); }
@@ -4957,7 +4998,9 @@ ECPGColLabel:  ECPGColId      { $$ = $1; }
        | ABORT_TRANS           { $$ = make_str("abort"); }
        | ANALYZE               { $$ = make_str("analyze"); }
        | BINARY                { $$ = make_str("binary"); }
+       | BIT                   { $$ = make_str("bit"); }
        | CASE                  { $$ = make_str("case"); }
+       | CHARACTER             { $$ = make_str("character"); }
        | CLUSTER       { $$ = make_str("cluster"); }
        | COALESCE              { $$ = make_str("coalesce"); }
        | CONSTRAINT        { $$ = make_str("constraint"); }