Improve rule action ordering in gram.y, more cleanups.
This commit is contained in:
parent
e25f9e4f5d
commit
3d564953cd
@ -1,4 +1,4 @@
|
|||||||
%{
|
%{
|
||||||
|
|
||||||
/*#define YYDEBUG 1*/
|
/*#define YYDEBUG 1*/
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
@ -11,7 +11,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.327 2002/06/17 20:38:04 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.328 2002/06/18 00:28:11 momjian Exp $
|
||||||
*
|
*
|
||||||
* HISTORY
|
* HISTORY
|
||||||
* AUTHOR DATE MAJOR EVENT
|
* AUTHOR DATE MAJOR EVENT
|
||||||
@ -659,14 +659,8 @@ OptUserElem:
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
user_list: user_list ',' UserId
|
user_list: user_list ',' UserId { $$ = lappend($1, makeString($3)); }
|
||||||
{
|
| UserId { $$ = makeList1(makeString($1)); }
|
||||||
$$ = lappend($1, makeString($3));
|
|
||||||
}
|
|
||||||
| UserId
|
|
||||||
{
|
|
||||||
$$ = makeList1(makeString($1));
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@ -913,8 +907,7 @@ var_list_or_default:
|
|||||||
| DEFAULT { $$ = NIL; }
|
| DEFAULT { $$ = NIL; }
|
||||||
;
|
;
|
||||||
|
|
||||||
var_list:
|
var_list: var_value { $$ = makeList1($1); }
|
||||||
var_value { $$ = makeList1($1); }
|
|
||||||
| var_list ',' var_value { $$ = lappend($1, $3); }
|
| var_list ',' var_value { $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1654,8 +1647,9 @@ opt_column_list:
|
|||||||
| /*EMPTY*/ { $$ = NIL; }
|
| /*EMPTY*/ { $$ = NIL; }
|
||||||
;
|
;
|
||||||
|
|
||||||
columnList: columnList ',' columnElem { $$ = lappend($1, $3); }
|
columnList:
|
||||||
| columnElem { $$ = makeList1($1); }
|
columnElem { $$ = makeList1($1); }
|
||||||
|
| columnList ',' columnElem { $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
columnElem: ColId
|
columnElem: ColId
|
||||||
@ -1742,8 +1736,8 @@ OptCreateAs:
|
|||||||
;
|
;
|
||||||
|
|
||||||
CreateAsList:
|
CreateAsList:
|
||||||
CreateAsList ',' CreateAsElement { $$ = lappend($1, $3); }
|
CreateAsElement { $$ = makeList1($1); }
|
||||||
| CreateAsElement { $$ = makeList1($1); }
|
| CreateAsList ',' CreateAsElement { $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
CreateAsElement:
|
CreateAsElement:
|
||||||
@ -2015,8 +2009,7 @@ TriggerForType:
|
|||||||
|
|
||||||
TriggerFuncArgs:
|
TriggerFuncArgs:
|
||||||
TriggerFuncArg { $$ = makeList1($1); }
|
TriggerFuncArg { $$ = makeList1($1); }
|
||||||
| TriggerFuncArgs ',' TriggerFuncArg
|
| TriggerFuncArgs ',' TriggerFuncArg { $$ = lappend($1, $3); }
|
||||||
{ $$ = lappend($1, $3); }
|
|
||||||
| /*EMPTY*/ { $$ = NIL; }
|
| /*EMPTY*/ { $$ = NIL; }
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -2659,8 +2652,7 @@ opt_revoke_grant_option:
|
|||||||
|
|
||||||
|
|
||||||
function_with_argtypes_list:
|
function_with_argtypes_list:
|
||||||
function_with_argtypes
|
function_with_argtypes { $$ = makeList1($1); }
|
||||||
{ $$ = makeList1($1); }
|
|
||||||
| function_with_argtypes_list ',' function_with_argtypes
|
| function_with_argtypes_list ',' function_with_argtypes
|
||||||
{ $$ = lappend($1, $3); }
|
{ $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
@ -2715,8 +2707,8 @@ index_params:
|
|||||||
| func_index { $$ = makeList1($1); }
|
| func_index { $$ = makeList1($1); }
|
||||||
;
|
;
|
||||||
|
|
||||||
index_list: index_list ',' index_elem { $$ = lappend($1, $3); }
|
index_list: index_elem { $$ = makeList1($1); }
|
||||||
| index_elem { $$ = makeList1($1); }
|
| index_list ',' index_elem { $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
func_index: func_name '(' name_list ')' opt_class
|
func_index: func_name '(' name_list ')' opt_class
|
||||||
@ -2882,6 +2874,7 @@ func_type: Typename { $$ = $1; }
|
|||||||
|
|
||||||
|
|
||||||
createfunc_opt_list:
|
createfunc_opt_list:
|
||||||
|
/* Must be at least one to prevent conflict */
|
||||||
createfunc_opt_item { $$ = makeList1($1); }
|
createfunc_opt_item { $$ = makeList1($1); }
|
||||||
| createfunc_opt_list createfunc_opt_item { $$ = lappend($1, $2); }
|
| createfunc_opt_list createfunc_opt_item { $$ = lappend($1, $2); }
|
||||||
;
|
;
|
||||||
@ -3389,21 +3382,11 @@ CreatedbStmt:
|
|||||||
}
|
}
|
||||||
$$ = (Node *)n;
|
$$ = (Node *)n;
|
||||||
}
|
}
|
||||||
| CREATE DATABASE database_name
|
|
||||||
{
|
|
||||||
CreatedbStmt *n = makeNode(CreatedbStmt);
|
|
||||||
n->dbname = $3;
|
|
||||||
n->dbowner = NULL;
|
|
||||||
n->dbpath = NULL;
|
|
||||||
n->dbtemplate = NULL;
|
|
||||||
n->encoding = -1;
|
|
||||||
$$ = (Node *)n;
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
|
|
||||||
createdb_opt_list:
|
createdb_opt_list:
|
||||||
createdb_opt_item { $$ = makeList1($1); }
|
createdb_opt_list createdb_opt_item { $$ = lappend($1, $2); }
|
||||||
| createdb_opt_list createdb_opt_item { $$ = lappend($1, $2); }
|
| /* EMPTY */ { $$ = NIL; }
|
||||||
;
|
;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3756,8 +3739,8 @@ insert_rest:
|
|||||||
;
|
;
|
||||||
|
|
||||||
insert_column_list:
|
insert_column_list:
|
||||||
insert_column_list ',' insert_column_item { $$ = lappend($1, $3); }
|
insert_column_item { $$ = makeList1($1); }
|
||||||
| insert_column_item { $$ = makeList1($1); }
|
| insert_column_list ',' insert_column_item { $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
insert_column_item:
|
insert_column_item:
|
||||||
@ -4226,8 +4209,9 @@ from_clause:
|
|||||||
| /*EMPTY*/ { $$ = NIL; }
|
| /*EMPTY*/ { $$ = NIL; }
|
||||||
;
|
;
|
||||||
|
|
||||||
from_list: from_list ',' table_ref { $$ = lappend($1, $3); }
|
from_list:
|
||||||
| table_ref { $$ = makeList1($1); }
|
table_ref { $$ = makeList1($1); }
|
||||||
|
| from_list ',' table_ref { $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4993,20 +4977,11 @@ row_expr: '(' row_descriptor ')' IN_P select_with_parens
|
|||||||
;
|
;
|
||||||
|
|
||||||
row_descriptor:
|
row_descriptor:
|
||||||
row_list ',' a_expr
|
row_list ',' a_expr { $$ = lappend($1, $3); }
|
||||||
{
|
|
||||||
$$ = lappend($1, $3);
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
|
|
||||||
row_list: row_list ',' a_expr
|
row_list: a_expr { $$ = makeList1($1); }
|
||||||
{
|
| row_list ',' a_expr { $$ = lappend($1, $3); }
|
||||||
$$ = lappend($1, $3);
|
|
||||||
}
|
|
||||||
| a_expr
|
|
||||||
{
|
|
||||||
$$ = makeList1($1);
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
|
|
||||||
sub_type: ANY { $$ = ANY_SUBLINK; }
|
sub_type: ANY { $$ = ANY_SUBLINK; }
|
||||||
@ -5445,8 +5420,7 @@ c_expr: columnref { $$ = (Node *) $1; }
|
|||||||
n->indirection = $3;
|
n->indirection = $3;
|
||||||
$$ = (Node *)n;
|
$$ = (Node *)n;
|
||||||
}
|
}
|
||||||
| '(' a_expr ')'
|
| '(' a_expr ')' { $$ = $2; }
|
||||||
{ $$ = $2; }
|
|
||||||
| '(' a_expr ')' attrs opt_indirection
|
| '(' a_expr ')' attrs opt_indirection
|
||||||
{
|
{
|
||||||
ExprFieldSelect *n = makeNode(ExprFieldSelect);
|
ExprFieldSelect *n = makeNode(ExprFieldSelect);
|
||||||
@ -6056,8 +6030,9 @@ case_expr: CASE case_arg when_clause_list case_default END_TRANS
|
|||||||
;
|
;
|
||||||
|
|
||||||
when_clause_list:
|
when_clause_list:
|
||||||
when_clause_list when_clause { $$ = lappend($1, $2); }
|
/* There must be at least one */
|
||||||
| when_clause { $$ = makeList1($1); }
|
when_clause { $$ = makeList1($1); }
|
||||||
|
| when_clause_list when_clause { $$ = lappend($1, $2); }
|
||||||
;
|
;
|
||||||
|
|
||||||
when_clause:
|
when_clause:
|
||||||
@ -6117,8 +6092,8 @@ attrs: '.' attr_name { $$ = makeList1(makeString($2)); }
|
|||||||
/* Target lists as found in SELECT ... and INSERT VALUES ( ... ) */
|
/* Target lists as found in SELECT ... and INSERT VALUES ( ... ) */
|
||||||
|
|
||||||
target_list:
|
target_list:
|
||||||
target_list ',' target_el { $$ = lappend($1, $3); }
|
target_el { $$ = makeList1($1); }
|
||||||
| target_el { $$ = makeList1($1); }
|
| target_list ',' target_el { $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
/* AS is not optional because shift/red conflict with unary ops */
|
/* AS is not optional because shift/red conflict with unary ops */
|
||||||
@ -6155,8 +6130,8 @@ target_el: a_expr AS ColLabel
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
update_target_list:
|
update_target_list:
|
||||||
update_target_list ',' update_target_el { $$ = lappend($1,$3); }
|
update_target_el { $$ = makeList1($1); }
|
||||||
| update_target_el { $$ = makeList1($1); }
|
| update_target_list ',' update_target_el { $$ = lappend($1,$3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
update_target_el:
|
update_target_el:
|
||||||
@ -6170,8 +6145,8 @@ update_target_el:
|
|||||||
;
|
;
|
||||||
|
|
||||||
insert_target_list:
|
insert_target_list:
|
||||||
insert_target_list ',' insert_target_el { $$ = lappend($1, $3); }
|
insert_target_el { $$ = makeList1($1); }
|
||||||
| insert_target_el { $$ = makeList1($1); }
|
| insert_target_list ',' insert_target_el { $$ = lappend($1, $3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
insert_target_el:
|
insert_target_el:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user