mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-13 19:59:45 +02:00
1d763d9107
and DELETE. If specified, the alias must be used instead of the full table name. Also, the alias currently cannot be used in the SET clause of UPDATE. Patch from Atsushi Ogawa, various editorialization by Neil Conway. Along the way, make the rowtypes regression test pass if add_missing_from is enabled, and add a new (skeletal) regression test for DELETE.
28 lines
933 B
Plaintext
28 lines
933 B
Plaintext
CREATE TABLE delete_test (
|
|
id SERIAL PRIMARY KEY,
|
|
a INT
|
|
);
|
|
NOTICE: CREATE TABLE will create implicit sequence "delete_test_id_seq" for serial column "delete_test.id"
|
|
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "delete_test_pkey" for table "delete_test"
|
|
INSERT INTO delete_test (a) VALUES (10);
|
|
INSERT INTO delete_test (a) VALUES (50);
|
|
INSERT INTO delete_test (a) VALUES (100);
|
|
-- allow an alias to be specified for DELETE's target table
|
|
DELETE FROM delete_test AS dt WHERE dt.a > 75;
|
|
-- if an alias is specified, don't allow the original table name
|
|
-- to be referenced
|
|
BEGIN;
|
|
SET LOCAL add_missing_from = false;
|
|
DELETE FROM delete_test dt WHERE delete_test.a > 25;
|
|
ERROR: invalid reference to FROM-clause entry for table "delete_test"
|
|
HINT: Perhaps you meant to reference the table alias "dt".
|
|
ROLLBACK;
|
|
SELECT * FROM delete_test;
|
|
id | a
|
|
----+----
|
|
1 | 10
|
|
2 | 50
|
|
(2 rows)
|
|
|
|
DROP TABLE delete_test;
|