11
11
*
12
12
*
13
13
* IDENTIFICATION
14
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.323 2002/06/15 03:00:03 thomas Exp $
14
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.324 2002/06/17 05:40:32 momjian Exp $
15
15
*
16
16
* HISTORY
17
17
* AUTHOR DATE MAJOR EVENT
@@ -201,7 +201,7 @@ static void doNegateFloat(Value *v);
201
201
202
202
%type <list> stmtblock , stmtmulti ,
203
203
OptTableElementList , OptInherit , definition , opt_distinct ,
204
- opt_with , func_args , func_args_list , func_as , createfunc_opt_list
204
+ opt_definition , func_args , func_args_list , func_as , createfunc_opt_list
205
205
oper_argtypes , RuleActionList , RuleActionMulti ,
206
206
opt_column_list , columnList , opt_name_list ,
207
207
sort_clause , sortby_list , index_params , index_list , name_list ,
@@ -232,7 +232,7 @@ static void doNegateFloat(Value *v);
232
232
%type <ival> opt_interval
233
233
%type <node> overlay_placing , substr_from , substr_for
234
234
235
- %type <boolean> opt_binary , opt_using , opt_instead , opt_cursor
235
+ %type <boolean> opt_binary , opt_using , opt_instead , opt_cursor , opt_with
236
236
%type <boolean> opt_with_copy , index_opt_unique , opt_verbose , opt_full
237
237
%type <boolean> opt_freeze , analyze_keyword
238
238
@@ -469,7 +469,7 @@ stmt : AlterDatabaseSetStmt
469
469
| CreateUserStmt
470
470
| ClusterStmt
471
471
| DefineStmt
472
- | DropStmt
472
+ | DropStmt
473
473
| DropSchemaStmt
474
474
| TruncateStmt
475
475
| CommentStmt
@@ -518,20 +518,18 @@ stmt : AlterDatabaseSetStmt
518
518
*
519
519
*****************************************************************************/
520
520
521
<
67E6
td data-grid-cell-id="diff-46b3d04d01695e2f03dd655e14087ef74a793b725ef5c8c7a8c365c51667d182-521-520-1" data-selected="false" role="gridcell" style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number position-relative left-side">
- CreateUserStmt : CREATE USER UserId OptUserList
522
- {
523
- CreateUserStmt *n = makeNode(CreateUserStmt);
524
- n->user = $3 ;
525
- n->options = $4 ;
526
- $$ = (Node *)n;
527
- }
528
- | CREATE USER UserId WITH OptUserList
521
+ CreateUserStmt : CREATE USER UserId opt_with OptUserList
529
522
{
530
523
CreateUserStmt *n = makeNode(CreateUserStmt);
531
524
n->user = $3 ;
532
525
n->options = $5 ;
533
526
$$ = (Node *)n;
534
- }
527
+ }
528
+ ;
529
+
530
+
531
+ opt_with : WITH { $$ = TRUE ; }
532
+ | /* EMPTY*/ { $$ = TRUE ; }
535
533
;
536
534
537
535
/* ****************************************************************************
@@ -541,14 +539,7 @@ CreateUserStmt: CREATE USER UserId OptUserList
541
539
*
542
540
*****************************************************************************/
543
541
544
- AlterUserStmt : ALTER USER UserId OptUserList
545
- {
546
- AlterUserStmt *n = makeNode(AlterUserStmt);
547
- n->user = $3 ;
548
- n->options = $4 ;
549
- $$ = (Node *)n;
550
- }
551
- | ALTER USER UserId WITH OptUserList
542
+ AlterUserStmt : ALTER USER UserId opt_with OptUserList
552
543
{
553
544
AlterUserStmt *n = makeNode(AlterUserStmt);
554
545
n->user = $3 ;
@@ -600,19 +591,19 @@ OptUserList: OptUserList OptUserElem { $$ = lappend($1, $2); }
600
591
;
601
592
602
593
OptUserElem : PASSWORD Sconst
603
- {
594
+ {
604
595
$$ = makeNode(DefElem);
605
596
$$ ->defname = " password" ;
606
597
$$ ->arg = (Node *)makeString($2 );
607
598
}
608
599
| ENCRYPTED PASSWORD Sconst
609
- {
600
+ {
610
601
$$ = makeNode(DefElem);
611
602
$$ ->defname = " encryptedPassword" ;
612
603
$$ ->arg = (Node *)makeString($3 );
613
604
}
614
605
| UNENCRYPTED PASSWORD Sconst
615
- {
606
+ {
616
607
$$ = makeNode(DefElem);
617
608
$$ ->defname = " unencryptedPassword" ;
618
609
$$ ->arg = (Node *)makeString($3 );
@@ -624,37 +615,37 @@ OptUserElem: PASSWORD Sconst
624
615
$$ ->arg = (Node *)makeInteger($2 );
625
616
}
626
617
| CREATEDB
627
- {
618
+ {
628
619
$$ = makeNode(DefElem);
629
620
$$ ->defname = " createdb" ;
630
621
$$ ->arg = (Node *)makeInteger(TRUE );
631
622
}
632
623
| NOCREATEDB
633
- {
624
+ {
634
625
$$ = makeNode(DefElem);
635
626
$$ ->defname = " createdb" ;
636
627
$$ ->arg = (Node *)makeInteger(FALSE );
637
628
}
638
629
| CREATEUSER
639
- {
630
+ {
640
631
$$ = makeNode(DefElem);
641
632
$$ ->defname = " createuser" ;
642
633
$$ ->arg = (Node *)makeInteger(TRUE );
643
634
}
644
635
| NOCREATEUSER
645
- {
636
+ {
646
637
$$ = makeNode(DefElem);
647
638
$$ ->defname = " createuser" ;
648
639
$$ ->arg = (Node *)makeInteger(FALSE );
649
640
}
650
641
| IN_P GROUP_P user_list
651
- {
642
+ {
652
643
$$ = makeNode(DefElem);
653
644
$$ ->defname = " groupElts" ;
654
645
$$ ->arg = (Node *)$3 ;
655
646
}
656
647
| VALID UNTIL Sconst
657
- {
648
+ {
658
649
$$ = makeNode(DefElem);
659
650
$$ ->defname = " validUntil" ;
660
651
$$ ->arg = (Node *)makeString($3 );
@@ -680,14 +671,7 @@ user_list: user_list ',' UserId
680
671
*
681
672
*****************************************************************************/
682
673
683
- CreateGroupStmt : CREATE GROUP_P UserId OptGroupList
684
- {
685
- CreateGroupStmt *n = makeNode(CreateGroupStmt);
686
- n->name = $3 ;
687
- n->options = $4 ;
688
- $$ = (Node *)n;
689
- }
690
- | CREATE GROUP_P UserId WITH OptGroupList
674
+ CreateGroupStmt : CREATE GROUP_P UserId opt_with OptGroupList
691
675
{
692
676
CreateGroupStmt *n = makeNode(CreateGroupStmt);
693
677
n->name = $3 ;
@@ -704,7 +688,7 @@ OptGroupList: OptGroupList OptGroupElem { $$ = lappend($1, $2); }
704
688
;
705
689
706
690
OptGroupElem : USER user_list
707
- {
691
+ {
708
692
$$ = makeNode(DefElem);
709
693
$$ ->defname = " userElts" ;
710
694
$$ ->arg = (Node *)$2 ;
@@ -1504,7 +1488,7 @@ ColConstraintElem:
1504
1488
n->keys = NULL ;
1505
1489
$$ = (Node *)n;
1506
1490
}
1507
- | REFERENCES qualified_name opt_column_list key_match key_actions
1491
+ | REFERENCES qualified_name opt_column_list key_match key_actions
1508
1492
{
1509
1493
FkConstraint *n = makeNode(FkConstraint);
1510
1494
n->constr_name = NULL ;
@@ -1880,7 +1864,7 @@ DropPLangStmt: DROP opt_procedural LANGUAGE ColId_or_Sconst
1880
1864
opt_procedural : PROCEDURAL { $$ = TRUE ; }
1881
1865
| /* EMPTY*/ { $$ = TRUE ; }
1882
1866
;
1883
-
1867
+
1884
1868
/* ****************************************************************************
1885
1869
*
1886
1870
* QUERIES :
@@ -1913,7 +1897,7 @@ CreateTrigStmt: CREATE TRIGGER name TriggerActionTime TriggerEvents ON
1913
1897
$$ = (Node *)n;
1914
1898
}
1915
1899
| CREATE CONSTRAINT TRIGGER name AFTER TriggerEvents ON
1916
- qualified_name OptConstrFromTable
1900
+ qualified_name OptConstrFromTable
1917
1901
ConstraintAttributeSpec
1918
1902
FOR EACH ROW EXECUTE PROCEDURE
1919
1903
func_name ' (' TriggerFuncArgs ' )'
@@ -2237,13 +2221,13 @@ TruncateStmt: TRUNCATE opt_table qualified_name
2237
2221
* the object associated with the comment. The form of the statement is:
2238
2222
*
2239
2223
* COMMENT ON [ [ DATABASE | DOMAIN | INDEX | SEQUENCE | TABLE | TYPE | VIEW ]
2240
- * <objname> | AGGREGATE <aggname> (<aggtype>) | FUNCTION
2241
- * <funcname> (arg1, arg2, ...) | OPERATOR <op>
2224
+ * <objname> | AGGREGATE <aggname> (<aggtype>) | FUNCTION
2225
+ * <funcname> (arg1, arg2, ...) | OPERATOR <op>
2242
2226
* (leftoperand_typ rightoperand_typ) | TRIGGER <triggername> ON
2243
2227
* <relname> | RULE <rulename> ON <relname> ] IS 'text'
2244
2228
*
2245
2229
*****************************************************************************/
2246
-
2230
+
2247
2231
CommentStmt : COMMENT ON comment_type any_name IS comment_text
2248
2232
{
2249
2233
CommentStmt *n = makeNode(CommentStmt);
@@ -2319,12 +2303,12 @@ comment_type: COLUMN { $$ = COLUMN; }
2319
2303
| DOMAIN_P { $$ = TYPE_P; }
2320
2304
| TYPE_P { $$ = TYPE_P; }
2321
2305
| VIEW { $$ = VIEW; }
2322
- ;
2306
+ ;
2323
2307
2324
2308
comment_text : Sconst { $$ = $1 ; }
2325
2309
| NULL_P { $$ = NULL ; }
2326
2310
;
2327
-
2311
+
2328
2312
/* ****************************************************************************
2329
2313
*
2330
2314
* QUERY:
@@ -2775,7 +2759,7 @@ RecipeStmt: EXECUTE RECIPE recipe_name
2775
2759
*****************************************************************************/
2776
2760
2777
2761
CreateFunctionStmt : CREATE opt_or_replace FUNCTION func_name func_args
2778
- RETURNS func_return createfunc_opt_list opt_with
2762
+ RETURNS func_return createfunc_opt_list opt_definition
2779
2763
{
2780
2764
CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
2781
2765
n->replace = $2 ;
@@ -2951,7 +2935,7 @@ func_as: Sconst
2951
2935
{ $$ = makeList2(makeString($1 ), makeString($3 )); }
2952
2936
;
2953
2937
2954
- opt_with : WITH definition { $$ = $2 ; }
2938
+ opt_definition : WITH definition { $$ = $2 ; }
2955
2939
| /* EMPTY*/ { $$ = NIL; }
2956
2940
;
2957
2941
@@ -3118,7 +3102,7 @@ RuleStmt: CREATE RULE name AS
3118
3102
3119
3103
RuleActionList : NOTHING { $$ = NIL; }
3120
3104
| RuleActionStmt { $$ = makeList1($1 ); }
3121
- | ' (' RuleActionMulti ' )' { $$ = $2 ; }
3105
+ | ' (' RuleActionMulti ' )' { $$ = $2 ; }
3122
3106
;
3123
3107
3124
3108
/* the thrashing around here is to discard "empty" statements... */
@@ -3324,7 +3308,7 @@ LoadStmt: LOAD file_name
3324
3308
*
3325
3309
*****************************************************************************/
3326
3310
3327
- CreatedbStmt : CREATE DATABASE database_name WITH createdb_opt_list
3311
+ CreatedbStmt : CREATE DATABASE database_name opt_with createdb_opt_list
3328
3312
{
3329
3313
CreatedbStmt *n = makeNode(CreatedbStmt);
3330
3314
List *l;
@@ -3425,7 +3409,7 @@ createdb_opt_item: LOCATION opt_equal Sconst
3425
3409
{
3426
3410
$$ = lconsi(3 , makeListi1(-1 ));
3427
3411
}
3428
- | OWNER opt_equal name
3412
+ | OWNER opt_equal name
3429
3413
{
3430
3414
$$ = lconsi(4 , makeList1($3 ));
3431
3415
}
@@ -3437,7 +3421,8 @@ createdb_opt_item: LOCATION opt_equal Sconst
3437
3421
3438
3422
/*
3439
3423
* Though the equals sign doesn't match other WITH options, pg_dump uses
3440
- * equals for backward compability, and it doesn't seem worth remove it.
3424
+ * equals for backward compability, and it doesn't seem worth removing it.
3425
+ * 2002-02-25
3441
3426
*/
3442
3427
opt_equal : ' =' { $$ = TRUE ; }
3443
3428
| /* EMPTY*/ { $$ = FALSE ; }
@@ -3496,7 +3481,7 @@ CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList opt_coll
3496
3481
n->domainname = $3 ;
3497
3482
n->typename = $5 ;
3498
3483
n->constraints = $6 ;
3499
-
3484
+
3500
3485
if ($7 != NULL )
3501
3486
elog (NOTICE," CREATE DOMAIN / COLLATE %s not yet "
3502
3487
" implemented; clause ignored" , $7 );
@@ -3940,7 +3925,7 @@ simple_select: SELECT opt_distinct target_list
3940
3925
$$ = (Node *)n;
3941
3926
}
3942
3927
| select_clause UNION opt_all select_clause
3943
- {
3928
+ {
3944
3929
$$ = makeSetOp(SETOP_UNION, $3 , $1 , $4 );
3945
3930
}
3946
3931
| select_clause INTERSECT opt_all select_clause
@@ -3951,7 +3936,7 @@ simple_select: SELECT opt_distinct target_list
3951
3936
{
3952
3937
$$ = makeSetOp(SETOP_EXCEPT, $3 , $1 , $4 );
3953
3938
}
3954
- ;
3939
+ ;
3955
3940
3956
3941
into_clause : INTO OptTempTableName { $$ = $2 ; }
3957
3942
| /* EMPTY*/ { $$ = NULL ; }
@@ -3962,22 +3947,22 @@ into_clause: INTO OptTempTableName { $$ = $2; }
3962
3947
* since TEMP is not a reserved word. See also OptTemp.
3963
3948
*/
3964
3949
OptTempTableName : TEMPORARY opt_table qualified_name
3965
- {
3950
+ {
3966
3951
$$ = $3 ;
3967
3952
$$ ->istemp = true ;
3968
3953
}
3969
3954
| TEMP opt_table qualified_name
3970
- {
3955
+ {
3971
3956
$$ = $3 ;
3972
3957
$$ ->istemp = true ;
3973
3958
}
3974
3959
| LOCAL TEMPORARY opt_table qualified_name
3975
- {
3960
+ {
3976
3961
$$ = $4 ;
3977
3962
$$ ->istemp = true ;
3978
3963
}
3979
3964
| LOCAL TEMP opt_table qualified_name
3980
- {
3965
+ {
3981
3966
$$ = $4 ;
3982
3967
$$ ->istemp = true ;
3983
3968
}
@@ -3994,12 +3979,12 @@ OptTempTableName: TEMPORARY opt_table qualified_name
3994
3979
$$ ->istemp = true ;
3995
3980
}
3996
3981
| TABLE qualified_name
3997
- {
3982
+ {
3998
3983
$$ = $2 ;
3999
3984
$$ ->istemp = false ;
4000
3985
}
4001
3986
| qualified_name
4002
- {
3987
+ {
4003
3988
$$ = $1 ;
4004
3989
$$ ->istemp = false ;
4005
3990
}
@@ -6122,7 +6107,7 @@ insert_target_list: insert_target_list ',' insert_target_el
6122
6107
;
6123
6108
6124
6109
insert_target_el : target_el { $$ = $1 ; }
6125
- | DEFAULT {
6110
+ | DEFAULT {
6126
6111
InsertDefault *def = makeNode(InsertDefault);
6127
6112
$$ = makeNode(ResTarget);
6128
6113
$$ ->name = NULL ;
0 commit comments