1
- /* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.200 2002/11/01 22:52:33 tgl Exp $ */
1
+ /* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.201 2002/11/07 09:48:09 meskes Exp $ */
2
2
3
3
/* Copyright comment */
4
4
%{
@@ -181,8 +181,8 @@ make_name(void)
181
181
AGGREGATE ALL ALTER ANALYSE ANALYZE AND ANY AS ASC
182
182
ASSERTION ASSIGNMENT AT AUTHORIZATION
183
183
184
- BACKWARD BEFORE BEGIN_TRANS BETWEEN BIGINT BINARY BIT BOTH
185
- BOOLEAN BY
184
+ BACKWARD BEFORE BEGIN_TRANS BETWEEN BIGINT BINARY BIT
185
+ BOOLEAN BOTH BY
186
186
187
187
CACHE CALLED CASCADE CASE CAST CHAIN CHAR_P
188
188
CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE
@@ -208,6 +208,7 @@ make_name(void)
208
208
INTEGER INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION
209
209
210
210
JOIN
211
+
211
212
KEY
212
213
213
214
LANCOMPILER LANGUAGE LEADING LEFT LEVEL LIKE LIMIT LISTEN
@@ -222,8 +223,8 @@ make_name(void)
222
223
OF OFF OFFSET OIDS OLD ON ONLY OPERATOR OPTION OR ORDER
223
224
OUT_P OUTER_P OVERLAPS OVERLAY OWNER
224
225
225
- PARTIAL PASSWORD PATH_P PENDANT PLACING POSITION PRECISION PREPARE
226
- PRIMARY PRIOR PRIVILEGES PROCEDURE PROCEDURAL
226
+ PARTIAL PASSWORD PATH_P PENDANT PLACING POSITION
227
+ PRECISION PREPARE PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE
227
228
228
229
READ REAL RECHECK REFERENCES REINDEX RELATIVE RENAME REPLACE
229
230
RESET RESTRICT RETURNS REVOKE RIGHT ROLLBACK ROW RULE
@@ -295,14 +296,14 @@ make_name(void)
295
296
%type <str> update_target_el opt_id qualified_name database_name
296
297
%type <str> access_method attr_name index_name name func_name
297
298
%type <str> file_name AexprConst c_expr ConstTypename var_list
298
- %type <str> in_expr_nodes a_expr b_expr TruncateStmt CommentStmt
299
+ %type <str> a_expr b_expr TruncateStmt CommentStmt
299
300
%type <str> opt_indirection expr_list extract_list extract_arg
300
301
%type <str> position_list substr_list substr_from alter_column_default
301
302
%type <str> trim_list in_expr substr_for attrs TableFuncElement
302
303
%type <str> Typename SimpleTypename Numeric opt_float opt_numeric
303
304
%type <str> opt_decimal Character character opt_varying opt_charset
304
305
%type <str> opt_collate opt_timezone opt_interval table_ref
305
- %type <str> row_descriptor row_list ConstDatetime trans_options
306
+ %type <str> row_descriptor ConstDatetime trans_options
306
307
%type <str> SelectStmt into_clause OptTemp ConstraintAttributeSpec
307
308
%type <str> opt_table opt_all sort_clause sortby_list ConstraintAttr
308
309
%type <str> sortby OptUseOp qualified_name_list name_list ColId_or_Sconst
@@ -364,8 +365,7 @@ make_name(void)
364
365
%type <str> opt_oids TableLikeClause key_action opt_definition
365
366
%type <str> cast_context row r_expr qual_Op qual_all_Op opt_default
366
367
%type <str> CreateConversionStmt any_operator opclass_item_list
367
- %type <str> iso_level convert_list
368
- %type <str> convert_args type_list CharacterWithLength ConstCharacter
368
+ %type <str> iso_level type_list CharacterWithLength ConstCharacter
369
369
%type <str> CharacterWithoutLength BitWithLength BitWithoutLength
370
370
%type <str> ConstBit GenericType TableFuncElementList
371
371
%type <str> opt_sort_clause
@@ -2381,14 +2381,10 @@ ExecuteStmt: EXECUTE name execute_param_clause into_clause
2381
2381
{ $$ = cat_str(4, make_str("execute"), $2, $3, $4); }
2382
2382
;
2383
2383
2384
- execute_param_clause: '(' execute_param_list ')' { $$ = cat_str(3, make_str("("), $2, make_str(")")); }
2384
+ execute_param_clause: '(' expr_list ')' { $$ = cat_str(3, make_str("("), $2, make_str(")")); }
2385
2385
| /* EMPTY * / { $$ = EMPTY; }
2386
2386
;
2387
2387
2388
- execute_param_list: a_expr { $$ = $1; }
2389
- | execute_param_list ',' a_expr { $$ = cat_str(3, $1, make_str(","), $3); }
2390
- ;
2391
-
2392
2388
DeallocateStmt: DEALLOCATE name { $$ = cat2_str(make_str("deallocate"), $2); }
2393
2389
| DEALLOCATE PREPARE name { $$ = cat2_str(make_str("deallocate prepare"), $3); }
2394
2390
;
@@ -3149,16 +3145,10 @@ row: ROW '(' row_descriptor ')'
3149
3145
{ $$ = cat_str(3 , make_str(" (" ), $2 , make_str(" )" )); }
3150
3146
;
3151
3147
3152
- row_descriptor : row_list ' ,' a_expr
3148
+ row_descriptor : expr_list ' ,' a_expr
3153
3149
{ $$ = cat_str(3 , $1 , make_str(" ," ), $3 ); }
3154
3150
;
3155
3151
3156
- row_list : row_list ' ,' a_expr
3157
- { $$ = cat_str(3 , $1 , make_str(" ," ), $3 ); }
3158
- | a_expr
3159
- { $$ = $1 ; }
3160
- ;
3161
-
3162
3152
sub_type : ANY { $$ = make_str(" ANY" ); }
3163
3153
| SOME { $$ = make_str(" SOME" ); }
3164
3154
| ALL { $$ = make_str(" ALL" ); }
@@ -3456,7 +3446,9 @@ c_expr: columnref
3456
3446
{ $$ = cat_str(3 , make_str(" trim(trailing" ), $4 , make_str(" )" )); }
3457
3447
| TRIM ' (' trim_list ' )'
3458
3448
{ $$ = cat_str(3 , make_str(" trim(" ), $3 , make_str(" )" )); }
3459
- | CONVERT ' (' convert_list ' )'
3449
+ | CONVERT ' (' a_expr USING any_name ' )'
3450
+ { $$ = cat_str(5 , make_str(" convert(" ), $3 , make_str(" using" ), $5 , make_str(" )" ));}
3451
+ | CONVERT ' (' expr_list ' )'
3460
3452
{ $$ = cat_str(3 , make_str(" convert(" ), $3 , make_str(" )" )); }
3461
3453
| select_with_parens %prec UMINUS
3462
3454
{ $$ = $1 ; }
@@ -3479,8 +3471,6 @@ expr_list: a_expr
3479
3471
{ $$ = $1 ; }
3480
3472
| expr_list ' ,' a_expr
3481
3473
{ $$ = cat_str(3 , $1 , make_str(" ," ), $3 ); }
3482
- | expr_list USING a_expr
3483
- { $$ = cat_str(3 , $1 , make_str(" using" ), $3 ); }
3484
3474
;
3485
3475
3486
3476
extract_list : extract_arg FROM a_expr
@@ -3557,31 +3547,12 @@ trim_list: a_expr FROM expr_list
3557
3547
{ $$ = $1 ; }
3558
3548
;
3559
3549
3560
- convert_list :
3561
- a_expr USING any_name
3562
- { $$ = cat_str(3 , $1 , make_str(" using" ), $3 ); }
3563
- | convert_args
3564
- { $$ = $1 ; }
3565
- | /* EMPTY */
3566
- { $$ = EMPTY; }
3567
- ;
3568
-
3569
- convert_args : a_expr { $$ = $1 ; }
3570
- | convert_args ' ,' a_expr { $$ = cat_str(3 , $1 , ' ,' , $3 ); }
3571
- ;
3572
-
3573
3550
in_expr : select_with_parens
3574
3551
{ $$ = $1 ; }
3575
- | ' (' in_expr_nodes ' )'
3552
+ | ' (' expr_list ' )'
3576
3553
{ $$ = cat_str(3 , make_str(" (" ), $2 , make_str(" )" )); }
3577
3554
;
3578
3555
3579
- in_expr_nodes : a_expr
3580
- { $$ = $1 ; }
3581
- | in_expr_nodes ' ,' a_expr
3582
- { $$ = cat_str(3 , $1 , make_str(" ," ), $3 );}
3583
- ;
3584
-
3585
3556
/* Case clause
3586
3557
* Define SQL92-style case clause.
3587
3558
* Allow all four forms described in the standard:
@@ -5289,6 +5260,7 @@ col_name_keyword:
5289
5260
*/
5290
5261
| CHARACTER { $$ = make_str(" character" ); }
5291
5262
| COALESCE { $$ = make_str(" coalesce" ); }
5263
+ | CONVERT { $$ = make_str(" convert" ); }
5292
5264
| DEC { $$ = make_str(" dec" ); }
5293
5265
| DECIMAL { $$ = make_str(" decimal" ); }
5294
5266
| EXISTS { $$ = make_str(" exists" ); }
0 commit comments