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

Commitd78feff

Browse files
author
Michael Meskes
committed
*** empty log message ***
1 parent607c6d2 commitd78feff

File tree

3 files changed

+69
-40
lines changed

3 files changed

+69
-40
lines changed

‎src/interfaces/ecpg/ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -906,5 +906,10 @@ Wed Apr 5 07:54:56 CEST 2000
906906
Wed Apr 5 17:35:53 CEST 2000
907907

908908
- Fixed handling of bool variables.
909+
910+
Sat Apr 8 13:10:12 CEST 2000
911+
912+
- Synced preproc.y with gram.y.
913+
- Synced keyword.c.
909914
- Set library version to 3.1.0.
910915
- Set ecpg version to 2.7.0.

‎src/interfaces/ecpg/preproc/keywords.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.25 2000/03/23 07:53:48 meskes Exp $
11+
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.26 2000/04/08 12:20:27 meskes Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -222,6 +222,7 @@ static ScanKeyword ScanKeywords[] = {
222222
{"setof",SETOF},
223223
{"share",SHARE},
224224
{"show",SHOW},
225+
{"some",SOME},
225226
{"start",START},
226227
{"statement",STATEMENT},
227228
{"stdin",STDIN},

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

Lines changed: 62 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ make_name(void)
199199
OF,ON,ONLY,OPTION,OR,ORDER,OUTER_P,OVERLAPS,
200200
PARTIAL,POSITION,PRECISION,PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,
201201
READ,REFERENCES,RELATIVE,REVOKE,RIGHT,ROLLBACK,
202-
SCROLL,SECOND_P,SELECT,SESSION_USER,SET,SUBSTRING,
202+
SCROLL,SECOND_P,SELECT,SESSION_USER,SET,SOME,SUBSTRING,
203203
TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,
204204
TIMEZONE_MINUTE,TO,TRAILING,TRANSACTION,TRIM,TRUE_P,
205205
UNION,UNIQUE,UPDATE,USER,USING,
@@ -280,7 +280,7 @@ make_name(void)
280280
%type<str>key_matchColLabelSpecialRuleRelationColIdcolumnDef
281281
%type<str>ColConstraintColConstraintElemNumericOnlyFloatOnly
282282
%type<str>OptTableElementListOptTableElementTableConstraint
283-
%type<str>ConstraintElemkey_actionsColQualList
283+
%type<str>ConstraintElemkey_actionsColQualListTokenId
284284
%type<str>target_listtarget_elupdate_target_listalias_clause
285285
%type<str>update_target_elopt_idrelation_namedatabase_name
286286
%type<str>access_methodattr_nameclassindex_namenamefunc_name
@@ -292,7 +292,7 @@ make_name(void)
292292
%type<str>TypenameSimpleTypenameGenericNumericgenericopt_floatopt_numeric
293293
%type<str>opt_decimalCharactercharacteropt_varyingopt_charset
294294
%type<str>opt_collateDatetimedatetimeopt_timezoneopt_interval
295-
%type<str>row_exprrow_descriptorrow_list
295+
%type<str>row_exprrow_descriptorrow_listtypenamenumeric
296296
%type<str>SelectStmtSubSelectresultOptTempConstraintAttributeSpec
297297
%type<str>opt_tableopt_allsort_clausesortby_listConstraintAttr
298298
%type<str>sortbyOptUseOpopt_inh_starrelation_name_listname_list
@@ -306,7 +306,7 @@ make_name(void)
306306
%type<str>ClosePortalStmtDropStmtVacuumStmtopt_verbosefunc_arg
307307
%type<str>opt_analyzeopt_va_listva_listExplainStmtindex_params
308308
%type<str>index_listfunc_indexindex_elemopt_typeopt_classaccess_method_clause
309-
%type<str>index_opt_uniqueIndexStmtfunc_returndef_rest
309+
%type<str>index_opt_uniqueIndexStmtfunc_return
310310
%type<str>func_args_listfunc_argsopt_withProcedureStmtdef_arg
311311
%type<str>def_elemdef_listdefinitiondef_namedef_typeDefineStmt
312312
%type<str>opt_insteadeventevent_objectRuleActionListopt_using
@@ -790,6 +790,8 @@ var_value: Sconst{ $$ = $1; }
790790

791791
$$ =$1;
792792
}
793+
/* "OFF" is not a token, so it is handled by the name_list production*/
794+
|ON{$$ = make_str("on"); }
793795
|DEFAULT{$$ = make_str("default"); }
794796
;
795797

@@ -1443,17 +1445,18 @@ DropTrigStmt: DROP TRIGGER name ON relation_name
14431445
*
14441446
*****************************************************************************/
14451447

1446-
DefineStmt:CREATEdef_typedef_rest
1448+
DefineStmt:CREATEdef_typedef_namedefinition
14471449
{
1448-
$$ = cat_str(3, make_str("create"),$2,$3);
1450+
$$ = cat_str(3, make_str("create"),$2,$3,$4);
14491451
}
14501452
;
1451-
1453+
/*
14521454
def_rest: def_name definition
14531455
{
14541456
$$ = cat2_str($1, $2);
14551457
}
14561458
;
1459+
*/
14571460

14581461
def_type:OPERATOR{$$ = make_str("operator"); }
14591462
|TYPE_P{$$ = make_str("type"); }
@@ -1462,8 +1465,12 @@ def_type: OPERATOR{ $$ = make_str("operator"); }
14621465

14631466
def_name:PROCEDURE{$$ = make_str("procedure"); }
14641467
|JOIN{$$ = make_str("join"); }
1465-
|ColId{$$ =$1; }
14661468
|all_Op{$$ =$1; }
1469+
|typename{$$ =$1; }
1470+
|TokenId{$$ =$1; }
1471+
|INTERVAL{$$ = make_str("interval"); }
1472+
|TIME{$$ = make_str("time"); }
1473+
|TIMESTAMP{$$ = make_str("timestamp"); }
14671474
;
14681475

14691476
definition:'('def_list')'{$$ = cat_str(3, make_str("("),$2, make_str(")")); }
@@ -1486,14 +1493,11 @@ def_elem: def_name '=' def_arg{
14861493
}
14871494
;
14881495

1489-
def_arg:ColId{$$ =$1; }
1496+
def_arg:func_return{$$ =$1; }
1497+
|TokenId{$$ =$1; }
14901498
|all_Op{$$ =$1; }
14911499
|NumericOnly{$$ =$1; }
14921500
|Sconst{$$ =$1; }
1493-
|SETOFColId
1494-
{
1495-
$$ = cat2_str(make_str("setof"),$2);
1496-
}
14971501
;
14981502

14991503
/*****************************************************************************
@@ -2934,6 +2938,13 @@ SimpleTypename: Generic{ $$ = $1; }
29342938
|Character{$$ =$1; }
29352939
;
29362940

2941+
typename:generic{$$ =$1; }
2942+
|numeric{$$ =$1; }
2943+
|bit{$$ =$1; }
2944+
|character{$$ =$1; }
2945+
|datetime{$$ =$1; }
2946+
;
2947+
29372948
Generic:generic
29382949
{
29392950
$$ =$1;
@@ -3015,6 +3026,13 @@ Numeric: FLOAT opt_float
30153026
}
30163027
;
30173028

3029+
numeric:FLOAT {$$ = make_str("float"); }
3030+
|DOUBLEPRECISION{$$ = make_str("double precision"); }
3031+
|DECIMAL {$$ = make_str("decimal"); }
3032+
|DEC {$$ = make_str("dec"); }
3033+
|NUMERIC {$$ = make_str("numeric"); }
3034+
;
3035+
30183036
opt_float:'('Iconst')'
30193037
{
30203038
if (atol($2) <1)
@@ -3244,6 +3262,7 @@ row_descriptor: row_list ',' a_expr
32443262
;
32453263

32463264
sub_type:ANY {$$ = make_str("ANY"); }
3265+
|SOME {$$ = make_str("SOME"); }
32473266
|ALL {$$ = make_str("ALL"); }
32483267
;
32493268

@@ -4942,21 +4961,27 @@ opt_symbol:symbol{ $$ = $1; }
49424961

49434962
symbol:ColLabel{$$ =$1; };
49444963

4945-
/* These show up as operators, and will screw up the parsing if
4946-
* allowed as identifiers or labels.
4964+
/* Any tokens which show up as operators will screw up the parsing if
4965+
* allowed as identifiers, but are acceptable as ColLabels:
4966+
* BETWEEN, IN, IS, ISNULL, NOTNULL, OVERLAPS
49474967
* Thanks to Tom Lane for pointing this out. - thomas 2000-03-29
4948-
| BETWEEN{ $$ = make_str("between"); }
4949-
| IN{ $$ = make_str("in"); }
4950-
| IS{ $$ = make_str("is"); }
4951-
| ISNULL{ $$ = make_str("isnull"); }
4952-
| NOTNULL{ $$ = make_str("notnull"); }
4953-
| OVERLAPS{ $$ = make_str("overlaps"); }
49544968
*/
49554969
ECPGColId:/* to be used instead of ColId*/
49564970
ECPGKeywords{$$ =$1; }
49574971
|ident{$$ =$1; }
4972+
|TokenId{$$ =$1; }
49584973
|datetime{$$ =$1; }
4959-
|ABSOLUTE{$$ = make_str("absolute"); }
4974+
|INTERVAL{$$ = make_str("interval"); }
4975+
|TIME{$$ = make_str("time"); }
4976+
|TIMESTAMP{$$ = make_str("timestamp"); }
4977+
|TYPE_P{$$ = make_str("type"); }
4978+
;
4979+
4980+
/* Parser tokens to be used as identifiers.
4981+
* Tokens involving data types should appear in ColId only,
4982+
* since they will conflict with real TypeName productions.
4983+
*/
4984+
TokenId:ABSOLUTE{$$ = make_str("absolute"); }
49604985
|ACCESS{$$ = make_str("access"); }
49614986
|ACTION{$$ = make_str("action"); }
49624987
|ADD{$$ = make_str("add"); }
@@ -4999,7 +5024,6 @@ ECPGColId: /* to be used instead of ColId */
49995024
|INSENSITIVE{$$ = make_str("insensitive"); }
50005025
|INSERT{$$ = make_str("insert"); }
50015026
|INSTEAD{$$ = make_str("instead"); }
5002-
|INTERVAL{$$ = make_str("interval"); }
50035027
|ISOLATION{$$ = make_str("isolation"); }
50045028
|KEY{$$ = make_str("key"); }
50055029
|LANGUAGE{$$ = make_str("language"); }
@@ -5052,14 +5076,11 @@ ECPGColId: /* to be used instead of ColId */
50525076
|SYSID {$$ = make_str("sysid"); }
50535077
|TEMP{$$ = make_str("temp"); }
50545078
|TEMPORARY{$$ = make_str("temporary"); }
5055-
|TIME{$$ = make_str("time"); }
5056-
|TIMESTAMP{$$ = make_str("timestamp"); }
50575079
|TIMEZONE_HOUR {$$ = make_str("timezone_hour"); }
50585080
|TIMEZONE_MINUTE {$$ = make_str("timezone_minute"); }
50595081
|TRIGGER{$$ = make_str("trigger"); }
50605082
|TRUNCATE{$$ = make_str("truncate"); }
50615083
|TRUSTED{$$ = make_str("trusted"); }
5062-
|TYPE_P{$$ = make_str("type"); }
50635084
|UNLISTEN{$$ = make_str("unlisten"); }
50645085
|UNTIL{$$ = make_str("until"); }
50655086
|UPDATE{$$ = make_str("update"); }
@@ -5073,23 +5094,13 @@ ECPGColId: /* to be used instead of ColId */
50735094
|ZONE{$$ = make_str("zone"); }
50745095
;
50755096

5076-
/* These show up as operators, and will screw up the parsing if
5077-
* allowed as identifiers or labels.
5078-
* Thanks to Tom Lane for pointing this out. - thomas 2000-03-29
5079-
| ALL{ $$ = make_str("all"); }
5080-
| ANY{ $$ = make_str("any"); }
5081-
| EXCEPT{ $$ = make_str("except"); }
5082-
| INTERSECT{ $$ = make_str("intersect"); }
5083-
| LIKE{ $$ = make_str("like"); }
5084-
| NOT{ $$ = make_str("not"); }
5085-
| NULLIF { $$ = make_str("nullif"); }
5086-
| NULL_P{ $$ = make_str("null"); }
5087-
| OR{ $$ = make_str("or"); }
5088-
*/
50895097
ECPGColLabel:ECPGColId{$$ =$1; }
50905098
|ABORT_TRANS {$$ = make_str("abort"); }
5099+
|ALL{$$ = make_str("all"); }
50915100
|ANALYZE {$$ = make_str("analyze"); }
5101+
|ANY{$$ = make_str("any"); }
50925102
|ASC{$$ = make_str("asc"); }
5103+
|BETWEEN {$$ = make_str("between"); }
50935104
|BINARY {$$ = make_str("binary"); }
50945105
|BIT {$$ = make_str("bit"); }
50955106
|BOTH{$$ = make_str("both"); }
@@ -5118,6 +5129,7 @@ ECPGColLabel: ECPGColId{ $$ = $1; }
51185129
|DO{$$ = make_str("do"); }
51195130
|ELSE {$$ = make_str("else"); }
51205131
|END_TRANS {$$ = make_str("end"); }
5132+
|EXCEPT{$$ = make_str("except"); }
51215133
|EXISTS{$$ = make_str("exists"); }
51225134
|EXPLAIN{$$ = make_str("explain"); }
51235135
|EXTEND{$$ = make_str("extend"); }
@@ -5127,15 +5139,20 @@ ECPGColLabel: ECPGColId{ $$ = $1; }
51275139
|FOREIGN{$$ = make_str("foreign"); }
51285140
|FROM{$$ = make_str("from"); }
51295141
|FULL{$$ = make_str("full"); }
5142+
|IN {$$ = make_str("in"); }
5143+
|IS {$$ = make_str("is"); }
5144+
|ISNULL {$$ = make_str("isnull"); }
51305145
|GLOBAL{$$ = make_str("global"); }
51315146
|GROUP{$$ = make_str("group"); }
51325147
|HAVING{$$ = make_str("having"); }
51335148
|INITIALLY{$$ = make_str("initially"); }
51345149
|INNER_P{$$ = make_str("inner"); }
5150+
|INTERSECT{$$ = make_str("intersect"); }
51355151
|INTO{$$ = make_str("into"); }
51365152
|JOIN{$$ = make_str("join"); }
51375153
|LEADING{$$ = make_str("leading"); }
51385154
|LEFT{$$ = make_str("left"); }
5155+
|LIKE{$$ = make_str("like"); }
51395156
|LISTEN{$$ = make_str("listen"); }
51405157
|LOAD{$$ = make_str("load"); }
51415158
|LOCK_P{$$ = make_str("lock"); }
@@ -5144,11 +5161,17 @@ ECPGColLabel: ECPGColId{ $$ = $1; }
51445161
|NCHAR{$$ = make_str("nchar"); }
51455162
|NEW{$$ = make_str("new"); }
51465163
|NONE{$$ = make_str("none"); }
5164+
|NOT{$$ = make_str("not"); }
5165+
|NOTNULL {$$ = make_str("notnull"); }
5166+
|NULLIF {$$ = make_str("nullif"); }
5167+
|NULL_P{$$ = make_str("null"); }
51475168
|NUMERIC {$$ = make_str("numeric"); }
51485169
|OFFSET{$$ = make_str("offset"); }
51495170
|ON{$$ = make_str("on"); }
5171+
|OR{$$ = make_str("or"); }
51505172
|ORDER{$$ = make_str("order"); }
51515173
|OUTER_P{$$ = make_str("outer"); }
5174+
|OVERLAPS {$$ = make_str("overlaps"); }
51525175
|POSITION{$$ = make_str("position"); }
51535176
|PRECISION{$$ = make_str("precision"); }
51545177
|PRIMARY{$$ = make_str("primary"); }

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp