Hi all,

While look at the handling of temporary relations with partition trees,
I have noticed that there are no tests for inheritance trees with temp
tables.  This has been mentioned here:
https://www.postgresql.org/message-id/20180618060200.gg3...@paquier.xyz

Attached is a patch to close the gap.  That's of course not v11
material, so I am parking this patch into the next CF.

Thanks,
--
Michael
diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out
index b2b912ed5c..9b1312a0ca 100644
--- a/src/test/regress/expected/inherit.out
+++ b/src/test/regress/expected/inherit.out
@@ -1710,6 +1710,51 @@ select * from cnullparent where f1 = 2;
 drop table cnullparent cascade;
 NOTICE:  drop cascades to table cnullchild
 --
+-- Check use of temprary tables with inheritance trees
+--
+create table inh_perm_parent (a1 int);
+create temp table inh_temp_parent (a1 int);
+create temp table inh_temp_child (a1 int) inherits (inh_perm_parent); -- ok
+NOTICE:  merging column "a1" with inherited definition
+create table inh_perm_child (a1 int) inherits (inh_temp_parent); -- error
+ERROR:  cannot inherit from temporary relation "inh_temp_parent"
+create temp table inh_temp_child_2 (a1 int) inherits (inh_temp_parent); -- ok
+NOTICE:  merging column "a1" with inherited definition
+insert into inh_perm_parent values (1);
+insert into inh_temp_parent values (2);
+insert into inh_temp_child values (3);
+insert into inh_temp_child_2 values (4);
+select * from inh_perm_parent;
+ a1 
+----
+  1
+  3
+(2 rows)
+
+select * from inh_temp_parent;
+ a1 
+----
+  2
+  4
+(2 rows)
+
+select * from inh_temp_child;
+ a1 
+----
+  3
+(1 row)
+
+select * from inh_temp_child_2;
+ a1 
+----
+  4
+(1 row)
+
+drop table inh_perm_parent cascade;
+NOTICE:  drop cascades to table inh_temp_child
+drop table inh_temp_parent cascade;
+NOTICE:  drop cascades to table inh_temp_child_2
+--
 -- Check that constraint exclusion works correctly with partitions using
 -- implicit constraints generated from the partition bound information.
 --
diff --git a/src/test/regress/sql/inherit.sql b/src/test/regress/sql/inherit.sql
index 5a48376fc0..2c3e35583a 100644
--- a/src/test/regress/sql/inherit.sql
+++ b/src/test/regress/sql/inherit.sql
@@ -635,6 +635,25 @@ select * from cnullparent;
 select * from cnullparent where f1 = 2;
 drop table cnullparent cascade;
 
+--
+-- Check use of temprary tables with inheritance trees
+--
+create table inh_perm_parent (a1 int);
+create temp table inh_temp_parent (a1 int);
+create temp table inh_temp_child (a1 int) inherits (inh_perm_parent); -- ok
+create table inh_perm_child (a1 int) inherits (inh_temp_parent); -- error
+create temp table inh_temp_child_2 (a1 int) inherits (inh_temp_parent); -- ok
+insert into inh_perm_parent values (1);
+insert into inh_temp_parent values (2);
+insert into inh_temp_child values (3);
+insert into inh_temp_child_2 values (4);
+select * from inh_perm_parent;
+select * from inh_temp_parent;
+select * from inh_temp_child;
+select * from inh_temp_child_2;
+drop table inh_perm_parent cascade;
+drop table inh_temp_parent cascade;
+
 --
 -- Check that constraint exclusion works correctly with partitions using
 -- implicit constraints generated from the partition bound information.

Attachment: signature.asc
Description: PGP signature

Reply via email to