Add a "USING" clause to DELETE, which is equivalent to the FROM clause

Neil Conway <neilc@samurai.com>

Commit: f5ab0a14ea83eb6c27196b0c5d600b7f8b8b75fc
Author: Neil Conway <neilc@samurai.com>
Date: 2005-04-07T01:51:41Z
Releases: 8.1.0
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.

Files

PathChange+/−
doc/src/sgml/ref/delete.sgml modified +43 −13
src/backend/nodes/copyfuncs.c modified +2 −1
src/backend/nodes/equalfuncs.c modified +2 −1
src/backend/parser/analyze.c modified +9 −1
src/backend/parser/gram.y modified +10 −4
src/backend/parser/parse_relation.c modified +6 −20
src/backend/utils/adt/ruleutils.c modified +14 −6
src/bin/psql/tab-complete.c modified +9 −3
src/include/nodes/parsenodes.h modified +2 −1
src/test/regress/expected/abstime.out modified +7 −7
src/test/regress/expected/boolean.out modified +6 −2
src/test/regress/expected/box.out modified +1 −1
src/test/regress/expected/char_1.out modified +2 −2
src/test/regress/expected/char.out modified +2 −2
src/test/regress/expected/create_misc.out modified +2 −2
src/test/regress/expected/create_view.out modified +2 −2
src/test/regress/expected/float4-exp-three-digits.out modified +6 −6
src/test/regress/expected/float4.out modified +3 −3
src/test/regress/expected/float8-exp-three-digits.out modified +4 −4
src/test/regress/expected/float8-exp-three-digits-win32.out modified +7 −7
src/test/regress/expected/float8.out modified +4 −4
src/test/regress/expected/float8-small-is-zero_1.out modified +4 −4
src/test/regress/expected/float8-small-is-zero.out modified +4 −4
src/test/regress/expected/hash_index.out modified +8 −8
src/test/regress/expected/horology.out modified +5 −4
src/test/regress/expected/int2.out modified +1 −1
src/test/regress/expected/int4.out modified +1 −1
src/test/regress/expected/interval.out modified +8 −8
src/test/regress/expected/join_1.out modified +36 −0
src/test/regress/expected/join.out modified +37 −0
src/test/regress/expected/name.out modified +1 −1
src/test/regress/expected/oid.out modified +1 −1
src/test/regress/expected/point.out modified +1 −1
src/test/regress/expected/polygon.out modified +1 −1
src/test/regress/expected/privileges.out modified +1 −1
src/test/regress/expected/reltime.out modified +7 −7
src/test/regress/expected/rules.out modified +7 −5
src/test/regress/expected/select.out modified +11 −10
src/test/regress/expected/tinterval.out modified +1 −1
src/test/regress/expected/transactions.out modified +1 −1
src/test/regress/expected/varchar_1.out modified +2 −2
src/test/regress/expected/varchar.out modified +2 −2
src/test/regress/input/misc.source modified +2 −0
src/test/regress/sql/abstime.sql modified +7 −7
src/test/regress/sql/boolean.sql modified +6 −2
src/test/regress/sql/box.sql modified +1 −1
src/test/regress/sql/char.sql modified +2 −2
src/test/regress/sql/create_misc.sql modified +2 −3
src/test/regress/sql/create_view.sql modified +2 −2
src/test/regress/sql/float4.sql modified +3 −3
src/test/regress/sql/float8.sql modified +4 −4
src/test/regress/sql/hash_index.sql modified +8 −8
src/test/regress/sql/horology.sql modified +5 −4
src/test/regress/sql/int2.sql modified +1 −1
src/test/regress/sql/int4.sql modified +1 −1
src/test/regress/sql/interval.sql modified +8 −8
src/test/regress/sql/join.sql modified +24 −0
src/test/regress/sql/name.sql modified +1 −1
src/test/regress/sql/oid.sql modified +1 −2
src/test/regress/sql/point.sql modified +1 −1
src/test/regress/sql/polygon.sql modified +1 −1
src/test/regress/sql/privileges.sql modified +1 −1
src/test/regress/sql/reltime.sql modified +7 −8
src/test/regress/sql/rules.sql modified +7 −5
src/test/regress/sql/select.sql modified +11 −10
src/test/regress/sql/tinterval.sql modified +1 −1
src/test/regress/sql/transactions.sql modified +1 −1
src/test/regress/sql/varchar.sql modified +2 −2