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

Commit059349b

Browse files
author
Michael Meskes
committed
Synced parser.
1 parentfa3938f commit059349b

File tree

2 files changed

+76
-35
lines changed

2 files changed

+76
-35
lines changed

‎src/interfaces/ecpg/ChangeLog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2374,6 +2374,10 @@ Tue, 19 Aug 2008 12:32:24 +0200
23742374
Wed, 20 Aug 2008 15:49:23 +0200
23752375

23762376
- Synced parser.
2377+
2378+
Tue, 07 Oct 2008 14:35:26 +0200
2379+
2380+
- Synced parser.
23772381
- Set pgtypes library version to 3.1.
23782382
- Set compat library version to 3.1.
23792383
- Set ecpg library version to 6.2.

‎src/interfaces/ecpg/preproc/preproc.y

Lines changed: 72 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.373 2008/10/04 21:56:55tgl Exp $*/
1+
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.374 2008/10/07 12:43:55meskes Exp $*/
22

33
/* Copyright comment*/
44
%{
@@ -621,8 +621,8 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu
621621
%type<str>handler_nameany_name_listany_nameopt_asinsert_column_list
622622
%type<str>columnrefvalues_clauseAllConstVarprep_type_clauseExecuteStmt
623623
%type<str>insert_column_itemDropRuleStmtctext_exprexecute_param_clause
624-
%type<str>createfunc_opt_itemset_rest
625-
%type<str>CreateFunctionStmtcreatefunc_opt_listfunc_table
624+
%type<str>createfunc_opt_itemset_restwith_clausecommon_table_expr
625+
%type<str>CreateFunctionStmtcreatefunc_opt_listfunc_tablecte_list
626626
%type<str>DropUserStmtcopy_fromcopy_opt_listcopy_opt_item
627627
%type<str>opt_oidsTableLikeClausekey_actionopt_definition
628628
%type<str>cast_contextrowqual_Opqual_all_Opopt_default
@@ -632,7 +632,7 @@ add_typedef(char *name, char * dimension, char * length, enum ECPGttype type_enu
632632
%type<str>ConstBitGenericTypeTableFuncElementListopt_analyze
633633
%type<str>opt_sort_clausesubquery_Optransaction_mode_item
634634
%type<str>ECPGWheneverECPGConnectconnection_targetECPGOpen
635-
%type<str>indicatorecpg_usingecpg_intoDeallocateStmt
635+
%type<str>indicatorecpg_usingecpg_intoDeallocateStmtinterval_second
636636
%type<str>storage_declarationstorage_clauseopt_initializerc_anything
637637
%type<str>variable_listvariablec_thingc_termECPGKeywords_vanames
638638
%type<str>opt_pointerECPGDisconnectdis_namestorage_modifier
@@ -2099,7 +2099,7 @@ DefineStmt: CREATE AGGREGATE func_name aggr_args definition
20992099
{$$ = cat_str(4, make_str("create aggregate"),$3,$4,$5); }
21002100
|CREATEAGGREGATEfunc_nameold_aggr_definition
21012101
{$$ = cat_str(3, make_str("create aggregate"),$3,$4); }
2102-
|CREATEOPERATORall_Opdefinition
2102+
|CREATEOPERATORany_operatordefinition
21032103
{$$ = cat_str(3, make_str("create operator"),$3,$4); }
21042104
|CREATETYPE_Pany_namedefinition
21052105
{$$ = cat_str(3, make_str("create type"),$3,$4); }
@@ -2169,8 +2169,8 @@ opclass_item_list:opclass_item{ $$ = $1; }
21692169

21702170
opclass_item:OPERATORPosIntConstany_operatoropt_recheck
21712171
{$$ = cat_str(4, make_str("operator"),$2,$3,$4); }
2172-
|OPERATORPosIntConstany_operator'('oper_argtypes')'opt_recheck
2173-
{$$ = cat_str(7, make_str("operator"),$2,$3,make_str("("),$5, make_str(")"),$7); }
2172+
|OPERATORPosIntConstany_operatoroper_argtypesopt_recheck
2173+
{$$ = cat_str(5, make_str("operator"),$2,$3,$4,$5); }
21742174
|FUNCTIONPosIntConstfunc_namefunc_args
21752175
{$$ = cat_str(4, make_str("function"),$2,$3,$4); }
21762176
|FUNCTIONPosIntConst'('type_list')'func_namefunc_args
@@ -2397,8 +2397,8 @@ CommentStmt: COMMENT ON comment_type name IS comment_text
23972397
{$$ = cat_str(5, make_str("comment on aggregate"),$4,$5, make_str("is"),$7); }
23982398
|COMMENTONFUNCTIONfunc_namefunc_argsIScomment_text
23992399
{$$ = cat_str(5, make_str("comment on function"),$4,$5, make_str("is"),$7); }
2400-
|COMMENTONOPERATORall_Op'('oper_argtypes')'IScomment_text
2401-
{$$ = cat_str(6, make_str("comment on operator"),$4,make_str("("),$6, make_str(")is"),$9); }
2400+
|COMMENTONOPERATORany_operatoroper_argtypesIScomment_text
2401+
{$$ = cat_str(5, make_str("comment on operator"),$4,$5, make_str("is"),$7); }
24022402
|COMMENTONTRIGGERnameONany_nameIScomment_text
24032403
{$$ = cat_str(6, make_str("comment on trigger"),$4, make_str("on"),$6, make_str("is"),$8); }
24042404
|COMMENTONRULEnameONany_nameIScomment_text
@@ -2761,23 +2761,23 @@ RemoveAggrStmt: DROP AGGREGATE func_name aggr_args opt_drop_behavior
27612761
{$$ = cat_str(4, make_str("drop aggregate if exists"),$5,$6,$7); }
27622762
;
27632763

2764-
RemoveOperStmt:DROPOPERATORall_Op'('oper_argtypes')'opt_drop_behavior
2765-
{$$ = cat_str(6, make_str("drop operator"),$3,make_str("("),$5, make_str(")"),$7); }
2766-
|DROPOPERATORIF_PEXISTSany_operator'('oper_argtypes')'opt_drop_behavior
2767-
{$$ = cat_str(6, make_str("drop operator if exists"),$5,make_str("("),$7, make_str(")"),$9); }
2764+
RemoveOperStmt:DROPOPERATORany_operatoroper_argtypesopt_drop_behavior
2765+
{$$ = cat_str(4, make_str("drop operator"),$3,$4,$5); }
2766+
|DROPOPERATORIF_PEXISTSany_operatoroper_argtypesopt_drop_behavior
2767+
{$$ = cat_str(4, make_str("drop operator if exists"),$5,$6,$7); }
27682768
;
27692769

2770-
oper_argtypes:Typename
2770+
oper_argtypes:'('Typename')'
27712771
{
27722772
mmerror(PARSE_ERROR, ET_ERROR,"parser: argument type missing (use NONE for unary operators)");
27732773
$$ = make_str("none");
27742774
}
2775-
|Typename','Typename
2776-
{$$ = cat_str(3,$1, make_str(","),$3); }
2777-
|NONE','Typename/* left unary*/
2778-
{$$ =cat2_str(make_str("none,"),$3); }
2779-
|Typename','NONE/* right unary*/
2780-
{$$ =cat2_str($1, make_str(", none")); }
2775+
|'('Typename','Typename')'
2776+
{$$ = cat_str(5, make_str("("),$2, make_str(","),$4, make_str(")")); }
2777+
|'('NONE','Typename')'/* left unary*/
2778+
{$$ =cat_str(3,make_str("(none,"),$4, make_str(")")); }
2779+
|'('Typename','NONE')'/* right unary*/
2780+
{$$ =cat_str(3, make_str("("),$2, make_str(", none)")); }
27812781
;
27822782

27832783
any_operator:
@@ -2930,8 +2930,8 @@ AlterOwnerStmt: ALTER AGGREGATE func_name aggr_args OWNER TO RoleId
29302930
{$$ = cat_str(4, make_str("alter function"),$3, make_str("owner to"),$6); }
29312931
|ALTERopt_proceduralLANGUAGEnameOWNERTORoleId
29322932
{$$ = cat_str(6, make_str("alter"),$2, make_str("language"),$4, make_str("owner to"),$7); }
2933-
|ALTEROPERATORany_operator'('oper_argtypes')'OWNERTORoleId
2934-
{$$ = cat_str(6, make_str("alter operator"),$3,make_str("("),$5, make_str(")owner to"),$9); }
2933+
|ALTEROPERATORany_operatoroper_argtypesOWNERTORoleId
2934+
{$$ = cat_str(5, make_str("alter operator"),$3,$4, make_str("owner to"),$7); }
29352935
|ALTEROPERATORCLASSany_nameUSINGaccess_methodOWNERTORoleId
29362936
{$$ = cat_str(6, make_str("alter operator class"),$4, make_str("using"),$6, make_str("owner to"),$9); }
29372937
|ALTEROPERATORFAMILYany_nameUSINGaccess_methodOWNERTORoleId
@@ -3162,6 +3162,14 @@ createdb_opt_item:TABLESPACE opt_equal name
31623162
{$$ = cat_str(3, make_str("encoding"),$2,$3); }
31633163
|ENCODINGopt_equalDEFAULT
31643164
{$$ = cat_str(3, make_str("encoding"),$2, make_str("default")); }
3165+
|COLLATEopt_equalStringConst
3166+
{$$ = cat_str(3, make_str("collate"),$2,$3); }
3167+
|COLLATEopt_equalDEFAULT
3168+
{$$ = cat_str(3, make_str("collate"),$2, make_str("default")); }
3169+
|CTYPEopt_equalStringConst
3170+
{$$ = cat_str(3, make_str("ctype"),$2,$3); }
3171+
|CTYPEopt_equalDEFAULT
3172+
{$$ = cat_str(3, make_str("ctype"),$2, make_str("default")); }
31653173
|CONNECTIONLIMITopt_equalPosIntConst
31663174
{$$ = cat_str(3, make_str("connection limit"),$3,$4); }
31673175
|OWNERopt_equalname
@@ -3598,6 +3606,14 @@ select_no_parens: simple_select
35983606
{$$ = cat_str(4,$1,$2,$3,$4); }
35993607
|select_clauseopt_sort_clauseselect_limitopt_for_locking_clause
36003608
{$$ = cat_str(4,$1,$2,$3,$4); }
3609+
|with_clausesimple_select
3610+
{$$ = cat2_str($1,$2); }
3611+
|with_clauseselect_clausesort_clause
3612+
{$$ = cat_str(3,$1,$2,$3); }
3613+
|with_clauseselect_clauseopt_sort_clausefor_locking_clauseopt_select_limit
3614+
{$$ = cat_str(5,$1,$2,$3,$4,$5); }
3615+
|with_clauseselect_clauseopt_sort_clauseselect_limitopt_for_locking_clause
3616+
{$$ = cat_str(5,$1,$2,$3,$4,$5); }
36013617
;
36023618

36033619
select_clause:simple_select{$$ =$1; }
@@ -3618,6 +3634,21 @@ simple_select:SELECT opt_distinct target_list
36183634
{$$ = cat_str(4,$1, make_str("except"),$3,$4); }
36193635
;
36203636

3637+
with_clause:
3638+
WITHcte_list{$$ = cat2_str(make_str("with"),$2); }
3639+
|WITHRECURSIVEcte_list{$$ = cat2_str(make_str("with recursive"),$3); }
3640+
;
3641+
3642+
cte_list:
3643+
common_table_expr{$$ =$1; }
3644+
|cte_list','common_table_expr{$$ = cat_str(3,$1, make_str(","),$3); }
3645+
;
3646+
3647+
3648+
common_table_expr:nameopt_name_listASselect_with_parens
3649+
{$$ = cat_str(4,$1,$2, make_str("as"),$4); }
3650+
;
3651+
36213652
into_clause:INTOOptTempTableName
36223653
{
36233654
FoundInto =1;
@@ -3756,7 +3787,7 @@ for_locking_item:
37563787
;
37573788

37583789
locked_rels_list:
3759-
OFname_list{$$ = cat2_str(make_str("of"),$2); }
3790+
OFqualified_name_list{$$ = cat2_str(make_str("of"),$2); }
37603791
|/* EMPTY*/{$$ = EMPTY; }
37613792
;
37623793

@@ -4123,22 +4154,26 @@ opt_timezone: WITH TIME ZONE
41234154
{$$ = EMPTY; }
41244155
;
41254156

4126-
opt_interval:YEAR_P{$$ = make_str("year"); }
4127-
|MONTH_P{$$ = make_str("month"); }
4128-
|DAY_P{$$ = make_str("day"); }
4129-
|HOUR_P{$$ = make_str("hour"); }
4130-
|MINUTE_P{$$ = make_str("minute"); }
4131-
|SECOND_P{$$ =make_str("second"); }
4157+
opt_interval:YEAR_P{$$ = make_str("year"); }
4158+
|MONTH_P{$$ = make_str("month"); }
4159+
|DAY_P{$$ = make_str("day"); }
4160+
|HOUR_P{$$ = make_str("hour"); }
4161+
|MINUTE_P{$$ = make_str("minute"); }
4162+
|interval_second{$$ =$1; }
41324163
|YEAR_PTOMONTH_P{$$ = make_str("year to month"); }
41334164
|DAY_PTOHOUR_P{$$ = make_str("day to hour"); }
41344165
|DAY_PTOMINUTE_P{$$ = make_str("day to minute"); }
4135-
|DAY_PTOSECOND_P{$$ = make_str("day to second"); }
4136-
|HOUR_PTOMINUTE_P{$$ = make_str("hour to minute"); }
4137-
|MINUTE_PTOSECOND_P{$$ = make_str("minute to second"); }
4138-
|HOUR_PTOSECOND_P{$$ = make_str("hour to second"); }
4139-
|/*EMPTY*/{$$ = EMPTY; }
4166+
|DAY_PTOinterval_second{$$ = make_str("day to second"); }
4167+
|HOUR_PTOMINUTE_P{$$ = make_str("hour to minute"); }
4168+
|MINUTE_PTOinterval_second{$$ = make_str("minute to second"); }
4169+
|HOUR_PTOinterval_second{$$ = make_str("hour to second"); }
4170+
|/*EMPTY*/{$$ = EMPTY; }
41404171
;
41414172

4173+
interval_second:
4174+
SECOND_P{$$ = make_str("second"); }
4175+
|SECOND_P'('PosIntConst')'{$$ = cat_str(3, make_str("second("),$3, make_str(")")); }
4176+
;
41424177

41434178
/*****************************************************************************
41444179
*
@@ -6518,6 +6553,7 @@ ECPGunreserved_con: ABORT_P{ $$ = make_str("abort"); }
65186553
|CREATEROLE{$$ = make_str("createrole"); }
65196554
|CREATEUSER{$$ = make_str("createuser"); }
65206555
|CSV{$$ = make_str("csv"); }
6556+
|CTYPE{$$ = make_str("ctype"); }
65216557
|CURSOR{$$ = make_str("cursor"); }
65226558
|CYCLE{$$ = make_str("cycle"); }
65236559
|DATABASE{$$ = make_str("database"); }
@@ -6630,6 +6666,7 @@ ECPGunreserved_con: ABORT_P{ $$ = make_str("abort"); }
66306666
|READ{$$ = make_str("read"); }
66316667
|REASSIGN{$$ = make_str("reassign"); }
66326668
|RECHECK{$$ = make_str("recheck"); }
6669+
|RECURSIVE{$$ = make_str("recursive"); }
66336670
|REINDEX{$$ = make_str("reindex"); }
66346671
|RELATIVE_P{$$ = make_str("relative"); }
66356672
|RELEASE{$$ = make_str("release"); }
@@ -6696,7 +6733,6 @@ ECPGunreserved_con: ABORT_P{ $$ = make_str("abort"); }
66966733
|VIEW{$$ = make_str("view"); }
66976734
|VOLATILE{$$ = make_str("volatile"); }
66986735
|WHITESPACE_P{$$ = make_str("whitespace"); }
6699-
|WITH{$$ = make_str("with"); }
67006736
|WITHOUT{$$ = make_str("without"); }
67016737
|WORK{$$ = make_str("work"); }
67026738
|WRITE {$$ = make_str("write"); }
@@ -6885,6 +6921,7 @@ reserved_keyword:
68856921
|VARIADIC{$$ = make_str("variadic"); }
68866922
|WHEN{$$ = make_str("when"); }
68876923
|WHERE{$$ = make_str("where"); }
6924+
|WITH{$$ = make_str("with"); }
68886925
;
68896926

68906927

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp