Simplified sortby rule
authorMichael Meskes <meskes@postgresql.org>
Sat, 17 Mar 2007 19:27:12 +0000 (19:27 +0000)
committerMichael Meskes <meskes@postgresql.org>
Sat, 17 Mar 2007 19:27:12 +0000 (19:27 +0000)
src/backend/parser/gram.y

index 1ce71700405a7773c09ca630eaae417d945bbf78..22d03f0b23461227ca331bbaa9220b5a4eb3fa8f 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.581 2007/03/13 00:33:41 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.582 2007/03/17 19:27:12 meskes Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -3869,8 +3869,8 @@ opt_class:        any_name                                                                { $$ = $1; }
                ;
 
 opt_asc_desc: ASC                                                      { $$ = SORTBY_ASC; }
-                       | DESC                                                  { $$ = SORTBY_DESC; }
-                       | /*EMPTY*/                                             { $$ = SORTBY_DEFAULT; }
+                       | DESC                                          { $$ = SORTBY_DESC; }
+                       | /*EMPTY*/                                     { $$ = SORTBY_DEFAULT; }
                ;
 
 opt_nulls_order: NULLS_FIRST                           { $$ = SORTBY_NULLS_FIRST; }
@@ -5982,30 +5982,14 @@ sortby:         a_expr USING qual_all_Op opt_nulls_order
                                        $$->sortby_nulls = $4;
                                        $$->useOp = $3;
                                }
-                       | a_expr ASC opt_nulls_order
+                       | a_expr opt_asc_desc opt_nulls_order
                                {
                                        $$ = makeNode(SortBy);
                                        $$->node = $1;
-                                       $$->sortby_dir = SORTBY_ASC;
+                                       $$->sortby_dir = $2;
                                        $$->sortby_nulls = $3;
                                        $$->useOp = NIL;
                                }
-                       | a_expr DESC opt_nulls_order
-                               {
-                                       $$ = makeNode(SortBy);
-                                       $$->node = $1;
-                                       $$->sortby_dir = SORTBY_DESC;
-                                       $$->sortby_nulls = $3;
-                                       $$->useOp = NIL;
-                               }
-                       | a_expr opt_nulls_order
-                               {
-                                       $$ = makeNode(SortBy);
-                                       $$->node = $1;
-                                       $$->sortby_dir = SORTBY_DEFAULT;
-                                       $$->sortby_nulls = $2;
-                                       $$->useOp = NIL;
-                               }
                ;