summaryrefslogtreecommitdiff
path: root/src/test/modules/test_pg_dump
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2020-04-17 13:41:59 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2020-04-17 13:41:59 -0400
commit3125a5baec1cf6d3aaeb8964bc3b3c49835e0452 (patch)
tree917d977ad4a5ef88e43904b810f8fe3582da0f25 /src/test/modules/test_pg_dump
parent4db819ba403901d38c4e4328883412c59061bb58 (diff)
Fix possible future cache reference leak in ALTER EXTENSION ADD/DROP.
recordExtObjInitPriv and removeExtObjInitPriv were sloppy about calling ReleaseSysCache. The cases cannot occur given current usage in ALTER EXTENSION ADD/DROP, since we wouldn't get here for these relkinds; but it seems wise to clean up better. In passing, extend test logic in test_pg_dump to exercise the dropped-column code paths here. Since the case is unreachable at present, there seems no great need to back-patch; hence fix HEAD only. Kyotaro Horiguchi, with test case and comment adjustments by me Discussion: https://postgr.es/m/20200417.151831.1153577605111650154.horikyota.ntt@gmail.com
Diffstat (limited to 'src/test/modules/test_pg_dump')
-rw-r--r--src/test/modules/test_pg_dump/README2
-rw-r--r--src/test/modules/test_pg_dump/expected/test_pg_dump.out3
-rw-r--r--src/test/modules/test_pg_dump/sql/test_pg_dump.sql3
3 files changed, 6 insertions, 2 deletions
diff --git a/src/test/modules/test_pg_dump/README b/src/test/modules/test_pg_dump/README
index e6c78b822c3..b7c2e337ca7 100644
--- a/src/test/modules/test_pg_dump/README
+++ b/src/test/modules/test_pg_dump/README
@@ -1,2 +1,4 @@
test_pg_dump is an extension explicitly to test pg_dump when
extensions are present in the system.
+
+We also make use of this module to test ALTER EXTENSION ADD/DROP.
diff --git a/src/test/modules/test_pg_dump/expected/test_pg_dump.out b/src/test/modules/test_pg_dump/expected/test_pg_dump.out
index c9bc6f76258..a50eaf6125d 100644
--- a/src/test/modules/test_pg_dump/expected/test_pg_dump.out
+++ b/src/test/modules/test_pg_dump/expected/test_pg_dump.out
@@ -4,7 +4,8 @@ ALTER EXTENSION test_pg_dump ADD DATABASE postgres; -- error
ERROR: syntax error at or near "DATABASE"
LINE 1: ALTER EXTENSION test_pg_dump ADD DATABASE postgres;
^
-CREATE TABLE test_pg_dump_t1 (c1 int);
+CREATE TABLE test_pg_dump_t1 (c1 int, junk text);
+ALTER TABLE test_pg_dump_t1 DROP COLUMN junk; -- to exercise dropped-col cases
CREATE VIEW test_pg_dump_v1 AS SELECT * FROM test_pg_dump_t1;
CREATE MATERIALIZED VIEW test_pg_dump_mv1 AS SELECT * FROM test_pg_dump_t1;
CREATE SCHEMA test_pg_dump_s1;
diff --git a/src/test/modules/test_pg_dump/sql/test_pg_dump.sql b/src/test/modules/test_pg_dump/sql/test_pg_dump.sql
index e463dec4040..a61a7c8c4ce 100644
--- a/src/test/modules/test_pg_dump/sql/test_pg_dump.sql
+++ b/src/test/modules/test_pg_dump/sql/test_pg_dump.sql
@@ -3,7 +3,8 @@ CREATE EXTENSION test_pg_dump;
ALTER EXTENSION test_pg_dump ADD DATABASE postgres; -- error
-CREATE TABLE test_pg_dump_t1 (c1 int);
+CREATE TABLE test_pg_dump_t1 (c1 int, junk text);
+ALTER TABLE test_pg_dump_t1 DROP COLUMN junk; -- to exercise dropped-col cases
CREATE VIEW test_pg_dump_v1 AS SELECT * FROM test_pg_dump_t1;
CREATE MATERIALIZED VIEW test_pg_dump_mv1 AS SELECT * FROM test_pg_dump_t1;
CREATE SCHEMA test_pg_dump_s1;