summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Vondra2017-07-17 21:26:25 +0000
committerTomas Vondra2017-07-17 21:26:25 +0000
commit8d0dc1a57e4439f4bcbf9c34b1c2587d7bc63b28 (patch)
tree8aef5764a5dd4c36eeb5c5e9c58adbd8315c37b7
parentcaf4f0156726f6364ee7e665dcd3eaef0243ed00 (diff)
Resolve failures related to pg_node_tree type input
The input function for pg_node_tree pseudotype simply returns an error, essentially disabling input from text. Some of the regression tests do CREATE TABLE t AS SELECT * FROM pg_class; or something like that, which works fine on PostgreSQL, but it fails on Postgres-XL as we need to send data between nodes. Unfortunately the pg_class now contains pg_node_tree column (relpartbound), causing falure when reading the column on the remote node. So instead use another catalogue, for example pg_attribute, which does not contain any such column.
-rw-r--r--src/test/regress/expected/create_table.out6
-rw-r--r--src/test/regress/expected/select_into.out4
-rw-r--r--src/test/regress/sql/create_table.sql6
-rw-r--r--src/test/regress/sql/select_into.sql4
4 files changed, 10 insertions, 10 deletions
diff --git a/src/test/regress/expected/create_table.out b/src/test/regress/expected/create_table.out
index c63a0bacac..bccf20d604 100644
--- a/src/test/regress/expected/create_table.out
+++ b/src/test/regress/expected/create_table.out
@@ -252,10 +252,10 @@ ERROR: cannot create temporary relation in non-temporary schema
LINE 1: CREATE TEMP TABLE public.temp_to_perm (a int primary key);
^
DROP TABLE unlogged1, public.unlogged2;
-CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
-CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
+CREATE TABLE as_select1 AS SELECT * FROM pg_attribute WHERE attstorage = 'p';
+CREATE TABLE as_select1 AS SELECT * FROM pg_attribute WHERE attstorage = 'p';
ERROR: relation "as_select1" already exists
-CREATE TABLE IF NOT EXISTS as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
+CREATE TABLE IF NOT EXISTS as_select1 AS SELECT * FROM pg_attribute WHERE attstorage = 'p';
NOTICE: relation "as_select1" already exists, skipping
DROP TABLE as_select1;
-- check that the oid column is added before the primary key is checked
diff --git a/src/test/regress/expected/select_into.out b/src/test/regress/expected/select_into.out
index 11b61b592c..2afc70fdb2 100644
--- a/src/test/regress/expected/select_into.out
+++ b/src/test/regress/expected/select_into.out
@@ -21,7 +21,7 @@ ALTER DEFAULT PRIVILEGES FOR ROLE regress_selinto_user
GRANT ALL ON SCHEMA selinto_schema TO public;
SET SESSION AUTHORIZATION regress_selinto_user;
SELECT * INTO TABLE selinto_schema.tmp1
- FROM pg_class WHERE relname like '%a%'; -- Error
+ FROM pg_attribute WHERE attname like '%a%'; -- Error
ERROR: permission denied for relation tmp1
SELECT oid AS clsoid, relname, relnatts + 10 AS x
INTO selinto_schema.tmp2
@@ -36,7 +36,7 @@ ALTER DEFAULT PRIVILEGES FOR ROLE regress_selinto_user
GRANT INSERT ON TABLES TO regress_selinto_user;
SET SESSION AUTHORIZATION regress_selinto_user;
SELECT * INTO TABLE selinto_schema.tmp1
- FROM pg_class WHERE relname like '%a%'; -- OK
+ FROM pg_attribute WHERE attname like '%a%'; -- OK
SELECT oid AS clsoid, relname, relnatts + 10 AS x
INTO selinto_schema.tmp2
FROM pg_class WHERE relname like '%b%'; -- OK
diff --git a/src/test/regress/sql/create_table.sql b/src/test/regress/sql/create_table.sql
index 62328353e9..1e68213b0a 100644
--- a/src/test/regress/sql/create_table.sql
+++ b/src/test/regress/sql/create_table.sql
@@ -268,9 +268,9 @@ CREATE TEMP TABLE pg_temp.doubly_temp (a int primary key); -- also OK
CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK
DROP TABLE unlogged1, public.unlogged2;
-CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
-CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
-CREATE TABLE IF NOT EXISTS as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
+CREATE TABLE as_select1 AS SELECT * FROM pg_attribute WHERE attstorage = 'p';
+CREATE TABLE as_select1 AS SELECT * FROM pg_attribute WHERE attstorage = 'p';
+CREATE TABLE IF NOT EXISTS as_select1 AS SELECT * FROM pg_attribute WHERE attstorage = 'p';
DROP TABLE as_select1;
-- check that the oid column is added before the primary key is checked
diff --git a/src/test/regress/sql/select_into.sql b/src/test/regress/sql/select_into.sql
index 5cb7ce0922..9adfbdc09e 100644
--- a/src/test/regress/sql/select_into.sql
+++ b/src/test/regress/sql/select_into.sql
@@ -27,7 +27,7 @@ GRANT ALL ON SCHEMA selinto_schema TO public;
SET SESSION AUTHORIZATION regress_selinto_user;
SELECT * INTO TABLE selinto_schema.tmp1
- FROM pg_class WHERE relname like '%a%'; -- Error
+ FROM pg_attribute WHERE attname like '%a%'; -- Error
SELECT oid AS clsoid, relname, relnatts + 10 AS x
INTO selinto_schema.tmp2
FROM pg_class WHERE relname like '%b%'; -- Error
@@ -41,7 +41,7 @@ ALTER DEFAULT PRIVILEGES FOR ROLE regress_selinto_user
SET SESSION AUTHORIZATION regress_selinto_user;
SELECT * INTO TABLE selinto_schema.tmp1
- FROM pg_class WHERE relname like '%a%'; -- OK
+ FROM pg_attribute WHERE attname like '%a%'; -- OK
SELECT oid AS clsoid, relname, relnatts + 10 AS x
INTO selinto_schema.tmp2
FROM pg_class WHERE relname like '%b%'; -- OK