1- %{
1+ %{
22
33/* #define YYDEBUG 1*/
44/* -------------------------------------------------------------------------
1111 *
1212 *
1313 * IDENTIFICATION
14- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.327 2002/06/17 20:38:04 momjian Exp $
14+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.328 2002/06/18 00:28:11 momjian Exp $
1515 *
1616 * HISTORY
1717 * AUTHORDATEMAJOR EVENT
@@ -659,14 +659,8 @@ OptUserElem:
659659}
660660;
661661
662- user_list :user_list ' ,' UserId
663- {
664- $$ = lappend($1 , makeString($3 ));
665- }
666- | UserId
667- {
668- $$ = makeList1(makeString($1 ));
669- }
662+ user_list :user_list ' ,' UserId {$$ = lappend($1 , makeString($3 )); }
663+ | UserId {$$ = makeList1(makeString($1 )); }
670664;
671665
672666
@@ -913,8 +907,7 @@ var_list_or_default:
913907| DEFAULT {$$ = NIL; }
914908;
915909
916- var_list :
917- var_value {$$ = makeList1($1 ); }
910+ var_list :var_value {$$ = makeList1($1 ); }
918911| var_list ' ,' var_value {$$ = lappend($1 ,$3 ); }
919912;
920913
@@ -1654,8 +1647,9 @@ opt_column_list:
16541647| /* EMPTY*/ {$$ = NIL; }
16551648;
16561649
1657- columnList :columnList ' ,' columnElem {$$ = lappend($1 ,$3 ); }
1658- | columnElem {$$ = makeList1($1 ); }
1650+ columnList :
1651+ columnElem {$$ = makeList1($1 ); }
1652+ | columnList ' ,' columnElem {$$ = lappend($1 ,$3 ); }
16591653;
16601654
16611655columnElem :ColId
@@ -1742,8 +1736,8 @@ OptCreateAs:
17421736;
17431737
17441738CreateAsList :
1745- CreateAsList ' , ' CreateAsElement {$$ =lappend ($1 , $3 ); }
1746- | CreateAsElement {$$ =makeList1 ($1 ); }
1739+ CreateAsElement {$$ =makeList1 ($1 ); }
1740+ | CreateAsList ' , ' CreateAsElement {$$ =lappend ($1 , $3 ); }
17471741;
17481742
17491743CreateAsElement :
@@ -2015,8 +2009,7 @@ TriggerForType:
20152009
20162010TriggerFuncArgs :
20172011TriggerFuncArg {$$ = makeList1($1 ); }
2018- | TriggerFuncArgs ' ,' TriggerFuncArg
2019- {$$ = lappend($1 ,$3 ); }
2012+ | TriggerFuncArgs ' ,' TriggerFuncArg {$$ = lappend($1 ,$3 ); }
20202013| /* EMPTY*/ {$$ = NIL; }
20212014;
20222015
@@ -2169,7 +2162,7 @@ DefineStmt:
21692162definition :' (' def_list ' )' {$$ =$2 ; }
21702163;
21712164
2172- def_list :def_elem {$$ = makeList1($1 ); }
2165+ def_list :def_elem {$$ = makeList1($1 ); }
21732166| def_list ' ,' def_elem {$$ = lappend($1 ,$3 ); }
21742167;
21752168
@@ -2659,10 +2652,9 @@ opt_revoke_grant_option:
26592652
26602653
26612654function_with_argtypes_list :
2662- function_with_argtypes
2663- {$$ = makeList1($1 ); }
2655+ function_with_argtypes {$$ = makeList1($1 ); }
26642656| function_with_argtypes_list ' ,' function_with_argtypes
2665- {$$ = lappend($1 ,$3 ); }
2657+ {$$ = lappend($1 ,$3 ); }
26662658;
26672659
26682660function_with_argtypes :
@@ -2700,23 +2692,23 @@ IndexStmt:CREATE index_opt_unique INDEX index_name ON qualified_name
27002692;
27012693
27022694index_opt_unique :
2703- UNIQUE {$$ =TRUE ; }
2704- | /* EMPTY*/ {$$ =FALSE ; }
2695+ UNIQUE {$$ =TRUE ; }
2696+ | /* EMPTY*/ {$$ =FALSE ; }
27052697;
27062698
27072699access_method_clause :
2708- USING access_method {$$ =$2 ; }
2700+ USING access_method {$$ =$2 ; }
27092701/* If btree changes as our default, update pg_get_indexdef()*/
2710- | /* EMPTY*/ {$$ = DEFAULT_INDEX_TYPE; }
2702+ | /* EMPTY*/ {$$ = DEFAULT_INDEX_TYPE; }
27112703;
27122704
27132705index_params :
2714- index_list {$$ =$1 ; }
2715- | func_index {$$ = makeList1($1 ); }
2706+ index_list {$$ =$1 ; }
2707+ | func_index {$$ = makeList1($1 ); }
27162708;
27172709
2718- index_list :index_list ' , ' index_elem {$$ =lappend ($1 , $3 ); }
2719- | index_elem {$$ =makeList1 ($1 ); }
2710+ index_list :index_elem {$$ =makeList1 ($1 ); }
2711+ | index_list ' , ' index_elem {$$ =lappend ($1 , $3 ); }
27202712;
27212713
27222714func_index :func_name ' (' name_list ' )' opt_class
@@ -2770,8 +2762,8 @@ opt_class:any_name
27702762else
27712763$$ =$1 ;
27722764}
2773- | USING any_name {$$ =$2 ; }
2774- | /* EMPTY*/ {$$ = NIL; }
2765+ | USING any_name {$$ =$2 ; }
2766+ | /* EMPTY*/ {$$ = NIL; }
27752767;
27762768
27772769/* ****************************************************************************
@@ -2882,9 +2874,10 @@ func_type:Typename{ $$ = $1; }
28822874
28832875
28842876createfunc_opt_list :
2885- createfunc_opt_item {$$ = makeList1($1 ); }
2886- | createfunc_opt_list createfunc_opt_item {$$ = lappend($1 ,$2 ); }
2887- ;
2877+ /* Must be at least one to prevent conflict*/
2878+ createfunc_opt_item {$$ = makeList1($1 ); }
2879+ | createfunc_opt_list createfunc_opt_item {$$ = lappend($1 ,$2 ); }
2880+ ;
28882881
28892882createfunc_opt_item :
28902883AS func_as
@@ -3389,21 +3382,11 @@ CreatedbStmt:
33893382}
33903383$$ = (Node *)n;
33913384}
3392- | CREATE DATABASE database_name
3393- {
3394- CreatedbStmt *n = makeNode(CreatedbStmt);
3395- n->dbname =$3 ;
3396- n->dbowner =NULL ;
3397- n->dbpath =NULL ;
3398- n->dbtemplate =NULL ;
3399- n->encoding = -1 ;
3400- $$ = (Node *)n;
3401- }
34023385;
34033386
34043387createdb_opt_list :
3405- createdb_opt_item {$$ =makeList1 ($1 ); }
3406- | createdb_opt_list createdb_opt_item {$$ =lappend( $1 , $2 ) ; }
3388+ createdb_opt_list createdb_opt_item {$$ =lappend ($1 , $2 ); }
3389+ | /* EMPTY */ {$$ =NIL ; }
34073390;
34083391
34093392/*
@@ -3756,8 +3739,8 @@ insert_rest:
37563739;
37573740
37583741insert_column_list :
3759- insert_column_list ' , ' insert_column_item {$$ =lappend ($1 , $3 ); }
3760- | insert_column_item {$$ =makeList1 ($1 ); }
3742+ insert_column_item {$$ =makeList1 ($1 ); }
3743+ | insert_column_list ' , ' insert_column_item {$$ =lappend ($1 , $3 ); }
37613744;
37623745
37633746insert_column_item :
@@ -4226,8 +4209,9 @@ from_clause:
42264209| /* EMPTY*/ {$$ = NIL; }
42274210;
42284211
4229- from_list :from_list ' ,' table_ref {$$ = lappend($1 ,$3 ); }
4230- | table_ref {$$ = makeList1($1 ); }
4212+ from_list :
4213+ table_ref {$$ = makeList1($1 ); }
4214+ | from_list ' ,' table_ref {$$ = lappend($1 ,$3 ); }
42314215;
42324216
42334217/*
@@ -4993,20 +4977,11 @@ row_expr:'(' row_descriptor ')' IN_P select_with_parens
49934977;
49944978
49954979row_descriptor :
4996- row_list ' ,' a_expr
4997- {
4998- $$ = lappend($1 ,$3 );
4999- }
4980+ row_list ' ,' a_expr {$$ = lappend($1 ,$3 ); }
50004981;
50014982
5002- row_list :row_list ' ,' a_expr
5003- {
5004- $$ = lappend($1 ,$3 );
5005- }
5006- | a_expr
5007- {
5008- $$ = makeList1($1 );
5009- }
4983+ row_list :a_expr {$$ = makeList1($1 ); }
4984+ | row_list ' ,' a_expr {$$ = lappend($1 ,$3 ); }
50104985;
50114986
50124987sub_type :ANY {$$ = ANY_SUBLINK; }
@@ -5030,12 +5005,12 @@ MathOp: '+'{ $$ = "+"; }
50305005;
50315006
50325007qual_Op :Op {$$ = makeList1(makeString($1 )); }
5033- | OPERATOR ' (' any_operator ' )' {$$ =$3 ; }
5008+ | OPERATOR ' (' any_operator ' )' {$$ =$3 ; }
50345009;
50355010
50365011qual_all_Op :
50375012all_Op {$$ = makeList1(makeString($1 )); }
5038- | OPERATOR ' (' any_operator ' )' {$$ =$3 ; }
5013+ | OPERATOR ' (' any_operator ' )' {$$ =$3 ; }
50395014;
50405015
50415016/*
@@ -5445,8 +5420,7 @@ c_expr:columnref{ $$ = (Node *) $1; }
54455420n->indirection =$3 ;
54465421$$ = (Node *)n;
54475422}
5448- | ' (' a_expr ' )'
5449- {$$ =$2 ; }
5423+ | ' (' a_expr ' )' {$$ =$2 ; }
54505424| ' (' a_expr ' )' attrs opt_indirection
54515425{
54525426ExprFieldSelect *n = makeNode(ExprFieldSelect);
@@ -6056,8 +6030,9 @@ case_expr:CASE case_arg when_clause_list case_default END_TRANS
60566030;
60576031
60586032when_clause_list :
6059- when_clause_list when_clause {$$ = lappend($1 ,$2 ); }
6060- | when_clause {$$ = makeList1($1 ); }
6033+ /* There must be at least one*/
6034+ when_clause {$$ = makeList1($1 ); }
6035+ | when_clause_list when_clause {$$ = lappend($1 ,$2 ); }
60616036;
60626037
60636038when_clause :
@@ -6117,8 +6092,8 @@ attrs:'.' attr_name{ $$ = makeList1(makeString($2)); }
61176092/* Target lists as found in SELECT ... and INSERT VALUES ( ... )*/
61186093
61196094target_list :
6120- target_list ' , ' target_el {$$ =lappend ($1 , $3 ); }
6121- | target_el {$$ =makeList1 ($1 ); }
6095+ target_el {$$ =makeList1 ($1 ); }
6096+ | target_list ' , ' target_el {$$ =lappend ($1 , $3 ); }
61226097;
61236098
61246099/* AS is not optional because shift/red conflict with unary ops*/
@@ -6155,8 +6130,8 @@ target_el:a_expr AS ColLabel
61556130}
61566131*/
61576132update_target_list :
6158- update_target_list ' , ' update_target_el {$$ =lappend ($1 , $3 ); }
6159- | update_target_el {$$ =makeList1 ($1 ); }
6133+ update_target_el {$$ =makeList1 ($1 ); }
6134+ | update_target_list ' , ' update_target_el {$$ =lappend ($1 , $3 ); }
61606135;
61616136
61626137update_target_el :
@@ -6170,8 +6145,8 @@ update_target_el:
61706145;
61716146
61726147insert_target_list :
6173- insert_target_list ' , ' insert_target_el {$$ =lappend ($1 , $3 ); }
6174- | insert_target_el {$$ =makeList1 ($1 ); }
6148+ insert_target_el {$$ =makeList1 ($1 ); }
6149+ | insert_target_list ' , ' insert_target_el {$$ =lappend ($1 , $3 ); }
61756150;
61766151
61776152insert_target_el :