Make all valid uses of the COLLATE clause yield the same result: a syntax
authorPeter Eisentraut
Sat, 6 Sep 2003 14:01:51 +0000 (14:01 +0000)
committerPeter Eisentraut
Sat, 6 Sep 2003 14:01:51 +0000 (14:01 +0000)
error.  There is no point in providing some kind of forward compatibility
now, because no one can tell what a future implementation will look like.

src/backend/parser/gram.y

index 5bdbe012a9538b5ab078fa4717c2bbd4d3bd9af6..45671f1b7be034cc7b5a110912dff96838be9b36 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.430 2003/08/22 20:34:33 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.431 2003/09/06 14:01:51 petere Exp $
  *
  * HISTORY
  *   AUTHOR            DATE            MAJOR EVENT
@@ -294,7 +294,7 @@ static void doNegateFloat(Value *v);
                Bit ConstBit BitWithLength BitWithoutLength
 %type         character
 %type         extract_arg
-%type         opt_charset opt_collate
+%type         opt_charset
 %type    opt_numeric opt_decimal
 %type  opt_varying opt_timezone
 
@@ -441,7 +441,6 @@ static void doNegateFloat(Value *v);
 %right     UMINUS
 %left      '[' ']'
 %left      '(' ')'
-%left      COLLATE
 %left      TYPECAST
 %left      '.'
 /*
@@ -1461,19 +1460,13 @@ TableElement:
            | TableConstraint                   { $$ = $1; }
        ;
 
-columnDef: ColId Typename ColQualList opt_collate
+columnDef: ColId Typename ColQualList
                {
                    ColumnDef *n = makeNode(ColumnDef);
                    n->colname = $1;
                    n->typename = $2;
                    n->constraints = $3;
                    n->is_local = true;
-
-                   if ($4 != NULL)
-                       ereport(NOTICE,
-                               (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                                errmsg("CREATE TABLE / COLLATE is not yet implemented; clause ignored")));
-
                    $$ = (Node *)n;
                }
        ;
@@ -3843,17 +3836,12 @@ DropdbStmt: DROP DATABASE database_name
  *****************************************************************************/
 
 CreateDomainStmt:
-           CREATE DOMAIN_P any_name opt_as Typename ColQualList opt_collate
+           CREATE DOMAIN_P any_name opt_as Typename ColQualList
                {
                    CreateDomainStmt *n = makeNode(CreateDomainStmt);
                    n->domainname = $3;
                    n->typename = $5;
                    n->constraints = $6;
-
-                   if ($7 != NULL)
-                       ereport(NOTICE,
-                               (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                                errmsg("CREATE DOMAIN / COLLATE is not yet implemented; clause ignored")));
                    $$ = (Node *)n;
                }
        ;
@@ -5463,11 +5451,6 @@ opt_charset:
            | /*EMPTY*/                             { $$ = NULL; }
        ;
 
-opt_collate:
-           COLLATE ColId                           { $$ = $2; }
-           | /*EMPTY*/                             { $$ = NULL; }
-       ;
-
 ConstDatetime:
            TIMESTAMP '(' Iconst ')' opt_timezone
                {
@@ -5753,15 +5736,6 @@ qual_all_Op:
 a_expr:        c_expr                                  { $$ = $1; }
            | a_expr TYPECAST Typename
                    { $$ = makeTypeCast($1, $3); }
-           | a_expr COLLATE ColId
-               {
-                   FuncCall *n = makeNode(FuncCall);
-                   n->funcname = SystemFuncName($3);
-                   n->args = makeList1($1);
-                   n->agg_star = FALSE;
-                   n->agg_distinct = FALSE;
-                   $$ = (Node *) n;
-               }
            | a_expr AT TIME ZONE c_expr
                {
                    FuncCall *n = makeNode(FuncCall);