|
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 | %tokenSQL_ALLOCATESQL_AUTOCOMMITSQL_BOOLSQL_BREAK |
353 | 353 | SQL_CALLSQL_CARDINALITYSQL_CONNECT |
354 | | -SQL_CONTINUESQL_COUNTSQL_CURRENTSQL_DATA |
| 354 | +SQL_CONTINUESQL_COUNTSQL_DATA |
355 | 355 | SQL_DATETIME_INTERVAL_CODE |
356 | 356 | SQL_DATETIME_INTERVAL_PRECISIONSQL_DESCRIBE |
357 | 357 | SQL_DESCRIPTORSQL_DISCONNECTSQL_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 CSVCURRENT_PCURRENT_DATE CURRENT_ROLE |
| 391 | +CURRENT_TIMECURRENT_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_limitCheckPointStmtECPGColIdold_aggr_list |
577 | 577 | %type<str>OptSchemaNameOptSchemaEltListschema_stmtopt_drop_behavior |
578 | 578 | %type<str>handler_nameany_name_listany_nameopt_asinsert_column_list |
579 | | -%type<str>columnrefvalues_clauseAllConstVar |
| 579 | +%type<str>columnrefvalues_clauseAllConstVarwhere_or_current_clause |
580 | 580 | %type<str>insert_column_itemDropRuleStmtctext_expr |
581 | 581 | %type<str>createfunc_opt_itemset_restvar_list_or_defaultalter_rel_cmd |
582 | 582 | %type<str>CreateFunctionStmtcreatefunc_opt_listfunc_table |
@@ -3274,7 +3274,7 @@ returning_clause: RETURNING target_list{ $$ = cat2_str(make_str("returning"), |
3274 | 3274 | * |
3275 | 3275 | *****************************************************************************/ |
3276 | 3276 |
|
3277 | | -DeleteStmt:DELETE_PFROMrelation_expr_opt_aliasusing_clausewhere_clausereturning_clause |
| 3277 | +DeleteStmt:DELETE_PFROMrelation_expr_opt_aliasusing_clausewhere_or_current_clausereturning_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:UPDATErelation_expr_opt_alias |
3317 | 3317 | SETset_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:WHEREa_expr {$$ = cat2_str(make_str("where"),$2); } |
| 3733 | +|WHERECURRENT_POFname {$$ = cat2_str(make_str("where current of"),$4); } |
| 3734 | +|WHERECURRENT_POFPARAM {$$ = 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"); } |
|