|
1 |
| -/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.345 2007/06/11 12:01:23 meskes Exp $ */ |
| 1 | +/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.346 2007/06/12 07:55:56 meskes Exp $ */ |
2 | 2 |
|
3 | 3 | /* Copyright comment */
|
4 | 4 | %{
|
@@ -351,7 +351,7 @@ add_additional_variables(char *name, bool insert)
|
351 | 351 | /* special embedded SQL token */
|
352 | 352 | %token SQL_ALLOCATE SQL_AUTOCOMMIT SQL_BOOL SQL_BREAK
|
353 | 353 | SQL_CALL SQL_CARDINALITY SQL_CONNECT
|
354 |
| - SQL_CONTINUE SQL_COUNT SQL_CURRENT SQL_DATA |
| 354 | + SQL_CONTINUE SQL_COUNT SQL_DATA |
355 | 355 | SQL_DATETIME_INTERVAL_CODE
|
356 | 356 | SQL_DATETIME_INTERVAL_PRECISION SQL_DESCRIBE
|
357 | 357 | SQL_DESCRIPTOR SQL_DISCONNECT SQL_FOUND
|
@@ -387,8 +387,8 @@ add_additional_variables(char *name, bool insert)
|
387 | 387 | CLUSTER COALESCE COLLATE COLUMN COMMENT COMMIT
|
388 | 388 | COMMITTED CONCURRENTLY CONNECTION CONSTRAINT CONSTRAINTS
|
389 | 389 | CONTENT_P CONVERSION_P CONVERT COPY COST CREATE CREATEDB
|
390 |
| - CREATEROLE CREATEUSER CROSS CSV CURRENT_DATE CURRENT_ROLE CURRENT_TIME |
391 |
| - CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE |
| 390 | + CREATEROLE CREATEUSER CROSS CSV CURRENT_P CURRENT_DATE CURRENT_ROLE |
| 391 | + CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE |
392 | 392 |
|
393 | 393 | DATABASE DAY_P DEALLOCATE DEC DECIMAL_P DECLARE DEFAULT DEFAULTS
|
394 | 394 | DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS
|
@@ -576,7 +576,7 @@ add_additional_variables(char *name, bool insert)
|
576 | 576 | %type <str> select_limit CheckPointStmt ECPGColId old_aggr_list
|
577 | 577 | %type <str> OptSchemaName OptSchemaEltList schema_stmt opt_drop_behavior
|
578 | 578 | %type <str> handler_name any_name_list any_name opt_as insert_column_list
|
579 |
| -%type <str> columnref values_clause AllConstVar |
| 579 | +%type <str> columnref values_clause AllConstVar where_or_current_clause |
580 | 580 | %type <str> insert_column_item DropRuleStmt ctext_expr
|
581 | 581 | %type <str> createfunc_opt_item set_rest var_list_or_default alter_rel_cmd
|
582 | 582 | %type <str> CreateFunctionStmt createfunc_opt_list func_table
|
@@ -3274,7 +3274,7 @@ returning_clause: RETURNING target_list { $$ = cat2_str(make_str("returning"),
|
3274 | 3274 | *
|
3275 | 3275 | *****************************************************************************/
|
3276 | 3276 |
|
3277 |
| -DeleteStmt: DELETE_P FROM relation_expr_opt_alias using_clause where_clause returning_clause |
| 3277 | +DeleteStmt: DELETE_P FROM relation_expr_opt_alias using_clause where_or_current_clause returning_clause |
3278 | 3278 | { $$ = cat_str(5, make_str("delete from"), $3, $4, $5, $6); }
|
3279 | 3279 | ;
|
3280 | 3280 |
|
@@ -3316,7 +3316,7 @@ opt_nowait: NOWAIT { $$ = make_str("nowait"); }
|
3316 | 3316 | UpdateStmt: UPDATE relation_expr_opt_alias
|
3317 | 3317 | SET set_clause_list
|
3318 | 3318 | from_clause
|
3319 |
| - where_clause |
| 3319 | + where_or_current_clause |
3320 | 3320 | returning_clause
|
3321 | 3321 | {$$ = cat_str(7, make_str("update"), $2, make_str("set"), $4, $5, $6, $7); }
|
3322 | 3322 | ;
|
@@ -3729,6 +3729,12 @@ where_clause: WHERE a_expr { $$ = cat2_str(make_str("where"), $2); }
|
3729 | 3729 | | /*EMPTY*/ { $$ = EMPTY; /* no qualifiers */ }
|
3730 | 3730 | ;
|
3731 | 3731 |
|
| 3732 | +where_or_current_clause: WHERE a_expr { $$ = cat2_str(make_str("where"), $2); } |
| 3733 | + | WHERE CURRENT_P OF name { $$ = cat2_str(make_str("where current of"), $4); } |
| 3734 | + | WHERE CURRENT_P OF PARAM { $$ = make_str("where current of param"); } |
| 3735 | + | /*EMPTY*/ { $$ = EMPTY; /* no qualifiers */ } |
| 3736 | + ; |
| 3737 | + |
3732 | 3738 | TableFuncElementList: TableFuncElement
|
3733 | 3739 | { $$ = $1; }
|
3734 | 3740 | | TableFuncElementList ',' TableFuncElement
|
@@ -5721,7 +5727,7 @@ ECPGDisconnect: SQL_DISCONNECT dis_name { $$ = $2; }
|
5721 | 5727 | ;
|
5722 | 5728 |
|
5723 | 5729 | dis_name: connection_object { $$ = $1; }
|
5724 |
| - | SQL_CURRENT { $$ = make_str("\"CURRENT\""); } |
| 5730 | + | CURRENT_P { $$ = make_str("\"CURRENT\""); } |
5725 | 5731 | | ALL { $$ = make_str("\"ALL\""); }
|
5726 | 5732 | | /* EMPTY */ { $$ = make_str("\"CURRENT\""); }
|
5727 | 5733 | ;
|
@@ -6443,6 +6449,7 @@ ECPGunreserved_con: ABORT_P { $$ = make_str("abort"); }
|
6443 | 6449 | | CREATEROLE { $$ = make_str("createrole"); }
|
6444 | 6450 | | CREATEUSER { $$ = make_str("createuser"); }
|
6445 | 6451 | | CSV { $$ = make_str("csv"); }
|
| 6452 | + | CURRENT_P { $$ = make_str("current"); } |
6446 | 6453 | | CURSOR { $$ = make_str("cursor"); }
|
6447 | 6454 | | CYCLE { $$ = make_str("cycle"); }
|
6448 | 6455 | | DATABASE { $$ = make_str("database"); }
|
|
0 commit comments