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/test/regress/sql/join.sql | |
| parent | be2f825d51176bd21a627a529476f94de5bad4c2 (diff) | |
| download | postgresql-f5ab0a14ea83eb6c27196b0c5d600b7f8b8b75fc.tar.gz | |
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/test/regress/sql/join.sql')
| -rw-r--r-- | src/test/regress/sql/join.sql | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql index 9bda6f1d00..ba48cad7fe 100644 --- a/src/test/regress/sql/join.sql +++ b/src/test/regress/sql/join.sql @@ -349,3 +349,27 @@ DROP TABLE t3; DROP TABLE J1_TBL; DROP TABLE J2_TBL; + +-- Both DELETE and UPDATE allow the specification of additional tables +-- to "join" against to determine which rows should be modified. + +CREATE TEMP TABLE t1 (a int, b int); +CREATE TEMP TABLE t2 (a int, b int); +CREATE TEMP TABLE t3 (x int, y int); + +INSERT INTO t1 VALUES (5, 10); +INSERT INTO t1 VALUES (15, 20); +INSERT INTO t1 VALUES (100, 100); +INSERT INTO t1 VALUES (200, 1000); +INSERT INTO t2 VALUES (200, 2000); +INSERT INTO t3 VALUES (5, 20); +INSERT INTO t3 VALUES (6, 7); +INSERT INTO t3 VALUES (7, 8); +INSERT INTO t3 VALUES (500, 100); + +DELETE FROM t3 USING t1 table1 WHERE t3.x = table1.a; +SELECT * FROM t3; +DELETE FROM t3 USING t1 JOIN t2 USING (a) WHERE t3.x > t1.a; +SELECT * FROM t3; +DELETE FROM t3 USING t3 t3_other WHERE t3.x = t3_other.x AND t3.y = t3_other.y; +SELECT * FROM t3;
\ No newline at end of file |
