Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf91ee12

Browse files
committed
Simplify optional WITH handling in CREATE USER, ALTER USER, CREATE
GROUP. Make WITH optional in CREATE DATABASE for consistency.
1 parent0daee96 commitf91ee12

File tree

2 files changed

+50
-65
lines changed

2 files changed

+50
-65
lines changed

‎doc/src/sgml/ref/create_database.sgml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!--
2-
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.27 2002/04/21 19:02:39 thomas Exp $
2+
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.28 2002/06/17 05:40:32 momjian Exp $
33
PostgreSQL documentation
44
-->
55

@@ -22,7 +22,7 @@ PostgreSQL documentation
2222
</refsynopsisdivinfo>
2323
<synopsis>
2424
CREATE DATABASE <replaceable class="PARAMETER">name</replaceable>
25-
[ WITH [ OWNER [=] <replaceable class="parameter">dbowner</replaceable> ]
25+
[[WITH ] [ OWNER [=] <replaceable class="parameter">dbowner</replaceable> ]
2626
[ LOCATION [=] '<replaceable class="parameter">dbpath</replaceable>' ]
2727
[ TEMPLATE [=] <replaceable class="parameter">template</replaceable> ]
2828
[ ENCODING [=] <replaceable class="parameter">encoding</replaceable> ] ]

‎src/backend/parser/gram.y

Lines changed: 48 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*
1212
*
1313
* 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 $
1515
*
1616
* HISTORY
1717
* AUTHORDATEMAJOR EVENT
@@ -201,7 +201,7 @@ static void doNegateFloat(Value *v);
201201

202202
%type<list>stmtblock,stmtmulti,
203203
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
205205
oper_argtypes,RuleActionList,RuleActionMulti,
206206
opt_column_list,columnList,opt_name_list,
207207
sort_clause,sortby_list,index_params,index_list,name_list,
@@ -232,7 +232,7 @@ static void doNegateFloat(Value *v);
232232
%type<ival>opt_interval
233233
%type<node>overlay_placing,substr_from,substr_for
234234

235-
%type<boolean>opt_binary,opt_using,opt_instead,opt_cursor
235+
%type<boolean>opt_binary,opt_using,opt_instead,opt_cursor,opt_with
236236
%type<boolean>opt_with_copy,index_opt_unique,opt_verbose,opt_full
237237
%type<boolean>opt_freeze,analyze_keyword
238238

@@ -469,7 +469,7 @@ stmt : AlterDatabaseSetStmt
469469
|CreateUserStmt
470470
|ClusterStmt
471471
|DefineStmt
472-
|DropStmt
472+
|DropStmt
473473
|DropSchemaStmt
474474
|TruncateStmt
475475
|CommentStmt
@@ -518,20 +518,18 @@ stmt : AlterDatabaseSetStmt
518518
*
519519
*****************************************************************************/
520520

521-
CreateUserStmt:CREATEUSERUserIdOptUserList
522-
{
523-
CreateUserStmt *n = makeNode(CreateUserStmt);
524-
n->user =$3;
525-
n->options =$4;
526-
$$ = (Node *)n;
527-
}
528-
|CREATEUSERUserIdWITHOptUserList
521+
CreateUserStmt:CREATEUSERUserIdopt_withOptUserList
529522
{
530523
CreateUserStmt *n = makeNode(CreateUserStmt);
531524
n->user =$3;
532525
n->options =$5;
533526
$$ = (Node *)n;
534-
}
527+
}
528+
;
529+
530+
531+
opt_with:WITH{$$ =TRUE; }
532+
|/*EMPTY*/{$$ =TRUE; }
535533
;
536534

537535
/*****************************************************************************
@@ -541,14 +539,7 @@ CreateUserStmt: CREATE USER UserId OptUserList
541539
*
542540
*****************************************************************************/
543541

544-
AlterUserStmt:ALTERUSERUserIdOptUserList
545-
{
546-
AlterUserStmt *n = makeNode(AlterUserStmt);
547-
n->user =$3;
548-
n->options =$4;
549-
$$ = (Node *)n;
550-
}
551-
|ALTERUSERUserIdWITHOptUserList
542+
AlterUserStmt:ALTERUSERUserIdopt_withOptUserList
552543
{
553544
AlterUserStmt *n = makeNode(AlterUserStmt);
554545
n->user =$3;
@@ -600,19 +591,19 @@ OptUserList: OptUserList OptUserElem{ $$ = lappend($1, $2); }
600591
;
601592

602593
OptUserElem:PASSWORDSconst
603-
{
594+
{
604595
$$ = makeNode(DefElem);
605596
$$->defname ="password";
606597
$$->arg = (Node *)makeString($2);
607598
}
608599
|ENCRYPTEDPASSWORDSconst
609-
{
600+
{
610601
$$ = makeNode(DefElem);
611602
$$->defname ="encryptedPassword";
612603
$$->arg = (Node *)makeString($3);
613604
}
614605
|UNENCRYPTEDPASSWORDSconst
615-
{
606+
{
616607
$$ = makeNode(DefElem);
617608
$$->defname ="unencryptedPassword";
618609
$$->arg = (Node *)makeString($3);
@@ -624,37 +615,37 @@ OptUserElem: PASSWORD Sconst
624615
$$->arg = (Node *)makeInteger($2);
625616
}
626617
|CREATEDB
627-
{
618+
{
628619
$$ = makeNode(DefElem);
629620
$$->defname ="createdb";
630621
$$->arg = (Node *)makeInteger(TRUE);
631622
}
632623
|NOCREATEDB
633-
{
624+
{
634625
$$ = makeNode(DefElem);
635626
$$->defname ="createdb";
636627
$$->arg = (Node *)makeInteger(FALSE);
637628
}
638629
|CREATEUSER
639-
{
630+
{
640631
$$ = makeNode(DefElem);
641632
$$->defname ="createuser";
642633
$$->arg = (Node *)makeInteger(TRUE);
643634
}
644635
|NOCREATEUSER
645-
{
636+
{
646637
$$ = makeNode(DefElem);
647638
$$->defname ="createuser";
648639
$$->arg = (Node *)makeInteger(FALSE);
649640
}
650641
|IN_PGROUP_Puser_list
651-
{
642+
{
652643
$$ = makeNode(DefElem);
653644
$$->defname ="groupElts";
654645
$$->arg = (Node *)$3;
655646
}
656647
|VALIDUNTILSconst
657-
{
648+
{
658649
$$ = makeNode(DefElem);
659650
$$->defname ="validUntil";
660651
$$->arg = (Node *)makeString($3);
@@ -680,14 +671,7 @@ user_list: user_list ',' UserId
680671
*
681672
*****************************************************************************/
682673

683-
CreateGroupStmt:CREATEGROUP_PUserIdOptGroupList
684-
{
685-
CreateGroupStmt *n = makeNode(CreateGroupStmt);
686-
n->name =$3;
687-
n->options =$4;
688-
$$ = (Node *)n;
689-
}
690-
|CREATEGROUP_PUserIdWITHOptGroupList
674+
CreateGroupStmt:CREATEGROUP_PUserIdopt_withOptGroupList
691675
{
692676
CreateGroupStmt *n = makeNode(CreateGroupStmt);
693677
n->name =$3;
@@ -704,7 +688,7 @@ OptGroupList: OptGroupList OptGroupElem{ $$ = lappend($1, $2); }
704688
;
705689

706690
OptGroupElem:USERuser_list
707-
{
691+
{
708692
$$ = makeNode(DefElem);
709693
$$->defname ="userElts";
710694
$$->arg = (Node *)$2;
@@ -1504,7 +1488,7 @@ ColConstraintElem:
15041488
n->keys =NULL;
15051489
$$ = (Node *)n;
15061490
}
1507-
|REFERENCESqualified_nameopt_column_listkey_matchkey_actions
1491+
|REFERENCESqualified_nameopt_column_listkey_matchkey_actions
15081492
{
15091493
FkConstraint *n = makeNode(FkConstraint);
15101494
n->constr_name=NULL;
@@ -1880,7 +1864,7 @@ DropPLangStmt: DROP opt_procedural LANGUAGE ColId_or_Sconst
18801864
opt_procedural:PROCEDURAL{$$ =TRUE; }
18811865
|/*EMPTY*/{$$ =TRUE; }
18821866
;
1883-
1867+
18841868
/*****************************************************************************
18851869
*
18861870
*QUERIES :
@@ -1913,7 +1897,7 @@ CreateTrigStmt: CREATE TRIGGER name TriggerActionTime TriggerEvents ON
19131897
$$ = (Node *)n;
19141898
}
19151899
|CREATECONSTRAINTTRIGGERnameAFTERTriggerEventsON
1916-
qualified_nameOptConstrFromTable
1900+
qualified_nameOptConstrFromTable
19171901
ConstraintAttributeSpec
19181902
FOREACHROWEXECUTEPROCEDURE
19191903
func_name'('TriggerFuncArgs')'
@@ -2237,13 +2221,13 @@ TruncateStmt: TRUNCATE opt_table qualified_name
22372221
* the object associated with the comment. The form of the statement is:
22382222
*
22392223
* 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>
22422226
* (leftoperand_typ rightoperand_typ) | TRIGGER <triggername> ON
22432227
* <relname> | RULE <rulename> ON <relname> ] IS 'text'
22442228
*
22452229
*****************************************************************************/
2246-
2230+
22472231
CommentStmt:COMMENTONcomment_typeany_nameIScomment_text
22482232
{
22492233
CommentStmt *n = makeNode(CommentStmt);
@@ -2319,12 +2303,12 @@ comment_type:COLUMN { $$ = COLUMN; }
23192303
|DOMAIN_P {$$ = TYPE_P; }
23202304
|TYPE_P {$$ = TYPE_P; }
23212305
|VIEW {$$ = VIEW; }
2322-
;
2306+
;
23232307

23242308
comment_text:Sconst {$$ =$1; }
23252309
|NULL_P {$$ =NULL; }
23262310
;
2327-
2311+
23282312
/*****************************************************************************
23292313
*
23302314
*QUERY:
@@ -2775,7 +2759,7 @@ RecipeStmt: EXECUTE RECIPE recipe_name
27752759
*****************************************************************************/
27762760

27772761
CreateFunctionStmt:CREATEopt_or_replaceFUNCTIONfunc_namefunc_args
2778-
RETURNSfunc_returncreatefunc_opt_listopt_with
2762+
RETURNSfunc_returncreatefunc_opt_listopt_definition
27792763
{
27802764
CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
27812765
n->replace =$2;
@@ -2951,7 +2935,7 @@ func_as: Sconst
29512935
{$$ = makeList2(makeString($1), makeString($3)); }
29522936
;
29532937

2954-
opt_with:WITHdefinition{$$ =$2; }
2938+
opt_definition:WITHdefinition{$$ =$2; }
29552939
|/*EMPTY*/{$$ = NIL; }
29562940
;
29572941

@@ -3118,7 +3102,7 @@ RuleStmt: CREATE RULE name AS
31183102

31193103
RuleActionList:NOTHING{$$ = NIL; }
31203104
|RuleActionStmt{$$ = makeList1($1); }
3121-
|'('RuleActionMulti')'{$$ =$2; }
3105+
|'('RuleActionMulti')'{$$ =$2; }
31223106
;
31233107

31243108
/* the thrashing around here is to discard "empty" statements...*/
@@ -3324,7 +3308,7 @@ LoadStmt: LOAD file_name
33243308
*
33253309
*****************************************************************************/
33263310

3327-
CreatedbStmt:CREATEDATABASEdatabase_nameWITHcreatedb_opt_list
3311+
CreatedbStmt:CREATEDATABASEdatabase_nameopt_withcreatedb_opt_list
33283312
{
33293313
CreatedbStmt *n = makeNode(CreatedbStmt);
33303314
List *l;
@@ -3425,7 +3409,7 @@ createdb_opt_item: LOCATION opt_equal Sconst
34253409
{
34263410
$$ = lconsi(3, makeListi1(-1));
34273411
}
3428-
|OWNERopt_equalname
3412+
|OWNERopt_equalname
34293413
{
34303414
$$ = lconsi(4, makeList1($3));
34313415
}
@@ -3437,7 +3421,8 @@ createdb_opt_item: LOCATION opt_equal Sconst
34373421

34383422
/*
34393423
*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
34413426
*/
34423427
opt_equal:'='{$$ =TRUE; }
34433428
|/*EMPTY*/{$$ =FALSE; }
@@ -3496,7 +3481,7 @@ CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList opt_coll
34963481
n->domainname =$3;
34973482
n->typename =$5;
34983483
n->constraints =$6;
3499-
3484+
35003485
if ($7 !=NULL)
35013486
elog(NOTICE,"CREATE DOMAIN / COLLATE %s not yet"
35023487
"implemented; clause ignored", $7);
@@ -3940,7 +3925,7 @@ simple_select: SELECT opt_distinct target_list
39403925
$$ = (Node *)n;
39413926
}
39423927
|select_clauseUNIONopt_allselect_clause
3943-
{
3928+
{
39443929
$$ = makeSetOp(SETOP_UNION,$3,$1,$4);
39453930
}
39463931
|select_clauseINTERSECTopt_allselect_clause
@@ -3951,7 +3936,7 @@ simple_select: SELECT opt_distinct target_list
39513936
{
39523937
$$ = makeSetOp(SETOP_EXCEPT,$3,$1,$4);
39533938
}
3954-
;
3939+
;
39553940

39563941
into_clause:INTOOptTempTableName{$$ =$2; }
39573942
|/*EMPTY*/{$$ =NULL; }
@@ -3962,22 +3947,22 @@ into_clause: INTO OptTempTableName{ $$ = $2; }
39623947
* since TEMP is not a reserved word. See also OptTemp.
39633948
*/
39643949
OptTempTableName:TEMPORARYopt_tablequalified_name
3965-
{
3950+
{
39663951
$$ =$3;
39673952
$$->istemp =true;
39683953
}
39693954
|TEMPopt_tablequalified_name
3970-
{
3955+
{
39713956
$$ =$3;
39723957
$$->istemp =true;
39733958
}
39743959
|LOCALTEMPORARYopt_tablequalified_name
3975-
{
3960+
{
39763961
$$ =$4;
39773962
$$->istemp =true;
39783963
}
39793964
|LOCALTEMPopt_tablequalified_name
3980-
{
3965+
{
39813966
$$ =$4;
39823967
$$->istemp =true;
39833968
}
@@ -3994,12 +3979,12 @@ OptTempTableName: TEMPORARY opt_table qualified_name
39943979
$$->istemp =true;
39953980
}
39963981
|TABLEqualified_name
3997-
{
3982+
{
39983983
$$ =$2;
39993984
$$->istemp =false;
40003985
}
40013986
|qualified_name
4002-
{
3987+
{
40033988
$$ =$1;
40043989
$$->istemp =false;
40053990
}
@@ -6122,7 +6107,7 @@ insert_target_list: insert_target_list ',' insert_target_el
61226107
;
61236108

61246109
insert_target_el:target_el{$$ =$1; }
6125-
|DEFAULT{
6110+
|DEFAULT{
61266111
InsertDefault *def = makeNode(InsertDefault);
61276112
$$ = makeNode(ResTarget);
61286113
$$->name =NULL;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp