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 $ */
22
33/* Copyright comment */
44%{
@@ -181,8 +181,8 @@ make_name(void)
181181 AGGREGATE ALL ALTER ANALYSE ANALYZE AND ANY AS ASC
182182 ASSERTION ASSIGNMENT AT AUTHORIZATION
183183
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
186186
187187 CACHE CALLED CASCADE CASE CAST CHAIN CHAR_P
188188 CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE
@@ -208,6 +208,7 @@ make_name(void)
208208 INTEGER INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION
209209
210210 JOIN
211+
211212 KEY
212213
213214 LANCOMPILER LANGUAGE LEADING LEFT LEVEL LIKE LIMIT LISTEN
@@ -222,8 +223,8 @@ make_name(void)
222223 OF OFF OFFSET OIDS OLD ON ONLY OPERATOR OPTION OR ORDER
223224 OUT_P OUTER_P OVERLAPS OVERLAY OWNER
224225
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
227228
228229 READ REAL RECHECK REFERENCES REINDEX RELATIVE RENAME REPLACE
229230 RESET RESTRICT RETURNS REVOKE RIGHT ROLLBACK ROW RULE
@@ -295,14 +296,14 @@ make_name(void)
295296%type <str> update_target_el opt_id qualified_name database_name
296297%type <str> access_method attr_name index_name name func_name
297298%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
299300%type <str> opt_indirection expr_list extract_list extract_arg
300301%type <str> position_list substr_list substr_from alter_column_default
301302%type <str> trim_list in_expr substr_for attrs TableFuncElement
302303%type <str> Typename SimpleTypename Numeric opt_float opt_numeric
303304%type <str> opt_decimal Character character opt_varying opt_charset
304305%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
306307%type <str> SelectStmt into_clause OptTemp ConstraintAttributeSpec
307308%type <str> opt_table opt_all sort_clause sortby_list ConstraintAttr
308309%type <str> sortby OptUseOp qualified_name_list name_list ColId_or_Sconst
@@ -364,8 +365,7 @@ make_name(void)
364365%type <str> opt_oids TableLikeClause key_action opt_definition
365366%type <str> cast_context row r_expr qual_Op qual_all_Op opt_default
366367%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
369369%type <str> CharacterWithoutLength BitWithLength BitWithoutLength
370370%type <str> ConstBit GenericType TableFuncElementList
371371%type <str> opt_sort_clause
@@ -2381,14 +2381,10 @@ ExecuteStmt: EXECUTE name execute_param_clause into_clause
23812381 { $$ = cat_str(4, make_str("execute"), $2, $3, $4); }
23822382 ;
23832383
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(")")); }
23852385 | /* EMPTY * / { $$ = EMPTY; }
23862386 ;
23872387
2388- execute_param_list: a_expr { $$ = $1; }
2389- | execute_param_list ',' a_expr { $$ = cat_str(3, $1, make_str(","), $3); }
2390- ;
2391-
23922388DeallocateStmt: DEALLOCATE name { $$ = cat2_str(make_str("deallocate"), $2); }
23932389 | DEALLOCATE PREPARE name { $$ = cat2_str(make_str("deallocate prepare"), $3); }
23942390 ;
@@ -3149,16 +3145,10 @@ row: ROW '(' row_descriptor ')'
31493145 { $$ = cat_str(3 , make_str(" (" ), $2 , make_str(" )" )); }
31503146 ;
31513147
3152- row_descriptor : row_list ' ,' a_expr
3148+ row_descriptor : expr_list ' ,' a_expr
31533149 { $$ = cat_str(3 , $1 , make_str(" ," ), $3 ); }
31543150 ;
31553151
3156- row_list : row_list ' ,' a_expr
3157- { $$ = cat_str(3 , $1 , make_str(" ," ), $3 ); }
3158- | a_expr
3159- { $$ = $1 ; }
3160- ;
3161-
31623152sub_type : ANY { $$ = make_str(" ANY" ); }
31633153 | SOME { $$ = make_str(" SOME" ); }
31643154 | ALL { $$ = make_str(" ALL" ); }
@@ -3456,7 +3446,9 @@ c_expr: columnref
34563446 { $$ = cat_str(3 , make_str(" trim(trailing" ), $4 , make_str(" )" )); }
34573447 | TRIM ' (' trim_list ' )'
34583448 { $$ = 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 ' )'
34603452 { $$ = cat_str(3 , make_str(" convert(" ), $3 , make_str(" )" )); }
34613453 | select_with_parens %prec UMINUS
34623454 { $$ = $1 ; }
@@ -3479,8 +3471,6 @@ expr_list: a_expr
34793471 { $$ = $1 ; }
34803472 | expr_list ' ,' a_expr
34813473 { $$ = cat_str(3 , $1 , make_str(" ," ), $3 ); }
3482- | expr_list USING a_expr
3483- { $$ = cat_str(3 , $1 , make_str(" using" ), $3 ); }
34843474 ;
34853475
34863476extract_list : extract_arg FROM a_expr
@@ -3557,31 +3547,12 @@ trim_list: a_expr FROM expr_list
35573547 { $$ = $1 ; }
35583548 ;
35593549
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-
35733550in_expr : select_with_parens
35743551 { $$ = $1 ; }
3575- | ' (' in_expr_nodes ' )'
3552+ | ' (' expr_list ' )'
35763553 { $$ = cat_str(3 , make_str(" (" ), $2 , make_str(" )" )); }
35773554 ;
35783555
3579- in_expr_nodes : a_expr
3580- { $$ = $1 ; }
3581- | in_expr_nodes ' ,' a_expr
3582- { $$ = cat_str(3 , $1 , make_str(" ," ), $3 );}
3583- ;
3584-
35853556/* Case clause
35863557 * Define SQL92-style case clause.
35873558 * Allow all four forms described in the standard:
@@ -5289,6 +5260,7 @@ col_name_keyword:
52895260 */
52905261 | CHARACTER { $$ = make_str(" character" ); }
52915262 | COALESCE { $$ = make_str(" coalesce" ); }
5263+ | CONVERT { $$ = make_str(" convert" ); }
52925264 | DEC { $$ = make_str(" dec" ); }
52935265 | DECIMAL { $$ = make_str(" decimal" ); }
52945266 | EXISTS { $$ = make_str(" exists" ); }
0 commit comments