mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-23 14:57:03 +08:00
Don't allow partitioned index on foreign-table partitions
Creating indexes on foreign tables is already forbidden, but local partitioned indexes (commit 8b08f7d4820f) forgot to check for them. Add a preliminary check to prevent wasting time. Another school of thought says to allow the index to be created if it's not a unique index; but it's possible to do better in the future (enable indexing of foreign tables, somehow), so we avoid painting ourselves in a corner by rejecting all cases, to avoid future grief (a.k.a. backward incompatible changes). Reported-by: Arseny Sher Author: Amit Langote, Álvaro Herrera Discussion: https://postgr.es/m/87sh71cakz.fsf@ars-thinkpad
This commit is contained in:
@ -316,6 +316,12 @@ CREATE INDEX id_ft1_c2 ON ft1 (c2); -- ERROR
|
||||
SELECT * FROM ft1; -- ERROR
|
||||
EXPLAIN SELECT * FROM ft1; -- ERROR
|
||||
|
||||
CREATE TABLE lt1 (a INT) PARTITION BY RANGE (a);
|
||||
CREATE FOREIGN TABLE ft_part1
|
||||
PARTITION OF lt1 FOR VALUES FROM (0) TO (1000) SERVER s0;
|
||||
CREATE INDEX ON lt1 (a); -- ERROR
|
||||
DROP TABLE lt1;
|
||||
|
||||
-- ALTER FOREIGN TABLE
|
||||
COMMENT ON FOREIGN TABLE ft1 IS 'foreign table';
|
||||
COMMENT ON FOREIGN TABLE ft1 IS NULL;
|
||||
|
||||
Reference in New Issue
Block a user