mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Implement IF NOT EXIST for CREATE INDEX.
Fabrízio de Royes Mello, reviewed by Marti Raudsepp, Adam Brightwell and me.
This commit is contained in:
@ -6,6 +6,12 @@
|
||||
-- BTREE
|
||||
--
|
||||
CREATE INDEX onek_unique1 ON onek USING btree(unique1 int4_ops);
|
||||
CREATE INDEX IF NOT EXISTS onek_unique1 ON onek USING btree(unique1 int4_ops);
|
||||
NOTICE: relation "onek_unique1" already exists, skipping
|
||||
CREATE INDEX IF NOT EXISTS ON onek USING btree(unique1 int4_ops);
|
||||
ERROR: syntax error at or near "ON"
|
||||
LINE 1: CREATE INDEX IF NOT EXISTS ON onek USING btree(unique1 int4_...
|
||||
^
|
||||
CREATE INDEX onek_unique2 ON onek USING btree(unique2 int4_ops);
|
||||
CREATE INDEX onek_hundred ON onek USING btree(hundred int4_ops);
|
||||
CREATE INDEX onek_stringu1 ON onek USING btree(stringu1 name_ops);
|
||||
@ -2290,10 +2296,14 @@ create unique index hash_f8_index_3 on hash_f8_heap(random) where seqno > 1000;
|
||||
CREATE TABLE concur_heap (f1 text, f2 text);
|
||||
-- empty table
|
||||
CREATE INDEX CONCURRENTLY concur_index1 ON concur_heap(f2,f1);
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS concur_index1 ON concur_heap(f2,f1);
|
||||
NOTICE: relation "concur_index1" already exists, skipping
|
||||
INSERT INTO concur_heap VALUES ('a','b');
|
||||
INSERT INTO concur_heap VALUES ('b','b');
|
||||
-- unique index
|
||||
CREATE UNIQUE INDEX CONCURRENTLY concur_index2 ON concur_heap(f1);
|
||||
CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS concur_index2 ON concur_heap(f1);
|
||||
NOTICE: relation "concur_index2" already exists, skipping
|
||||
-- check if constraint is set up properly to be enforced
|
||||
INSERT INTO concur_heap VALUES ('b','x');
|
||||
ERROR: duplicate key value violates unique constraint "concur_index2"
|
||||
|
@ -8,6 +8,10 @@
|
||||
--
|
||||
CREATE INDEX onek_unique1 ON onek USING btree(unique1 int4_ops);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS onek_unique1 ON onek USING btree(unique1 int4_ops);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ON onek USING btree(unique1 int4_ops);
|
||||
|
||||
CREATE INDEX onek_unique2 ON onek USING btree(unique2 int4_ops);
|
||||
|
||||
CREATE INDEX onek_hundred ON onek USING btree(hundred int4_ops);
|
||||
@ -711,10 +715,12 @@ create unique index hash_f8_index_3 on hash_f8_heap(random) where seqno > 1000;
|
||||
CREATE TABLE concur_heap (f1 text, f2 text);
|
||||
-- empty table
|
||||
CREATE INDEX CONCURRENTLY concur_index1 ON concur_heap(f2,f1);
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS concur_index1 ON concur_heap(f2,f1);
|
||||
INSERT INTO concur_heap VALUES ('a','b');
|
||||
INSERT INTO concur_heap VALUES ('b','b');
|
||||
-- unique index
|
||||
CREATE UNIQUE INDEX CONCURRENTLY concur_index2 ON concur_heap(f1);
|
||||
CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS concur_index2 ON concur_heap(f1);
|
||||
-- check if constraint is set up properly to be enforced
|
||||
INSERT INTO concur_heap VALUES ('b','x');
|
||||
-- check if constraint is enforced properly at build time
|
||||
|
Reference in New Issue
Block a user