diff options
author | Neil Conway <neilc@samurai.com> | 2005-04-07 01:51:41 +0000 |
---|---|---|
committer | Neil Conway <neilc@samurai.com> | 2005-04-07 01:51:41 +0000 |
commit | f5ab0a14ea83eb6c27196b0c5d600b7f8b8b75fc (patch) | |
tree | 3a40f9e70af0338c3dd1210b859f1a7445a40e6c /src/backend/parser/analyze.c | |
parent | be2f825d51176bd21a627a529476f94de5bad4c2 (diff) | |
download | postgresql-f5ab0a14ea83eb6c27196b0c5d600b7f8b8b75fc.tar.gz postgresql-f5ab0a14ea83eb6c27196b0c5d600b7f8b8b75fc.zip |
Add a "USING" clause to DELETE, which is equivalent to the FROM clause
in UPDATE. We also now issue a NOTICE if a query has _any_ implicit
range table entries -- in the past, we would only warn about implicit
RTEs in SELECTs with at least one explicit RTE.
As a result of the warning change, 25 of the regression tests had to
be updated. I also took the opportunity to remove some bogus whitespace
differences between some of the float4 and float8 variants. I believe
I have correctly updated all the platform-specific variants, but let
me know if that's not the case.
Original patch for DELETE ... USING from Euler Taveira de Oliveira,
reworked by Neil Conway.
Diffstat (limited to 'src/backend/parser/analyze.c')
-rw-r--r-- | src/backend/parser/analyze.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 191f4446b06..4dad0ae80af 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.317 2005/04/06 16:34:06 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.318 2005/04/07 01:51:38 neilc Exp $ * *------------------------------------------------------------------------- */ @@ -479,6 +479,14 @@ transformDeleteStmt(ParseState *pstate, DeleteStmt *stmt) qry->distinctClause = NIL; + /* + * The USING clause is non-standard SQL syntax, and is equivalent + * in functionality to the FROM list that can be specified for + * UPDATE. The USING keyword is used rather than FROM because FROM + * is already a keyword in the DELETE syntax. + */ + transformFromClause(pstate, stmt->usingClause); + /* fix where clause */ qual = transformWhereClause(pstate, stmt->whereClause, "WHERE"); |