|
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"); }
|
|