From 1da6e4e871d3a29999a1cb1f96c136e0b796b276 Mon Sep 17 00:00:00 2001 From: Andrey Borodin Date: Wed, 28 Mar 2018 14:04:11 +0500 Subject: [PATCH 2/3] Tests for dblink with covering indexes --- contrib/dblink/expected/dblink.out | 14 ++++++++++++++ contrib/dblink/sql/dblink.sql | 10 ++++++++++ 2 files changed, 24 insertions(+) diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out index 511691e57f..76e922c9f3 100644 --- a/contrib/dblink/expected/dblink.out +++ b/contrib/dblink/expected/dblink.out @@ -22,6 +22,20 @@ FROM dblink_get_pkey('foo'); 2 | f2 (2 rows) +-- list the primary key fields with covering index +CREATE TABLE foo_covering(f1 int, f2 text, f3 text[]); +CREATE UNIQUE INDEX foo_covering_index on foo_covering (f1,f2) INCLUDE(f3); +ALTER TABLE foo_covering ADD CONSTRAINT covering_pkey PRIMARY KEY USING INDEX foo_covering_index; +NOTICE: ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index "foo_covering_index" to "covering_pkey" +SELECT * +FROM dblink_get_pkey('foo_covering'); + position | colname +----------+--------- + 1 | f1 + 2 | f2 +(2 rows) + +DROP TABLE foo_covering; -- build an insert statement based on a local tuple, -- replacing the primary key values with new ones SELECT dblink_build_sql_insert('foo','1 2',2,'{"0", "a"}','{"99", "xyz"}'); diff --git a/contrib/dblink/sql/dblink.sql b/contrib/dblink/sql/dblink.sql index b093fa6722..b31912a312 100644 --- a/contrib/dblink/sql/dblink.sql +++ b/contrib/dblink/sql/dblink.sql @@ -21,6 +21,16 @@ INSERT INTO foo VALUES (9,'j','{"a9","b9","c9"}'); SELECT * FROM dblink_get_pkey('foo'); +-- list the primary key fields with covering index +CREATE TABLE foo_covering(f1 int, f2 text, f3 text[]); +CREATE UNIQUE INDEX foo_covering_index on foo_covering (f1,f2) INCLUDE(f3); +ALTER TABLE foo_covering ADD CONSTRAINT covering_pkey PRIMARY KEY USING INDEX foo_covering_index; + +SELECT * +FROM dblink_get_pkey('foo_covering'); + +DROP TABLE foo_covering; + -- build an insert statement based on a local tuple, -- replacing the primary key values with new ones SELECT dblink_build_sql_insert('foo','1 2',2,'{"0", "a"}','{"99", "xyz"}'); -- 2.14.3 (Apple Git-98)