From 8d0dc1a57e4439f4bcbf9c34b1c2587d7bc63b28 Mon Sep 17 00:00:00 2001 From: Tomas Vondra Date: Mon, 17 Jul 2017 23:26:25 +0200 Subject: 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. --- src/test/regress/expected/create_table.out | 6 +++--- src/test/regress/expected/select_into.out | 4 ++-- src/test/regress/sql/create_table.sql | 6 +++--- src/test/regress/sql/select_into.sql | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) (limited to 'src') 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 -- cgit v1.2.3