On Tue, Jun 19, 2018 at 01:04:43PM +0530, Ashutosh Bapat wrote:
> Thanks. Some review comments here.

Thanks for the review!
 
> +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
> 
> You could actually avoid this notice by changing create table statement like
> create temp table inh_temp_child () inherits (inh_perm_parent);

Okay, fixed.

> select tabloid::regclass will also print the name of the table where
> the row resides. That will be useful to check where the rows come from
> and also to test the inheritance children.

Good point, I have added those.  Except that you meant
tableoid::regclass.
--
Michael
diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out
index b2b912ed5c..4f29d9f891 100644
--- a/src/test/regress/expected/inherit.out
+++ b/src/test/regress/expected/inherit.out
@@ -1710,6 +1710,37 @@ select * from cnullparent where f1 = 2;
 drop table cnullparent cascade;
 NOTICE:  drop cascades to table cnullchild
 --
+-- Check use of temporary 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 () inherits (inh_perm_parent); -- ok
+create table inh_perm_child () inherits (inh_temp_parent); -- error
+ERROR:  cannot inherit from temporary relation "inh_temp_parent"
+create temp table inh_temp_child_2 () 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 tableoid::regclass, a1 from inh_perm_parent;
+    tableoid     | a1 
+-----------------+----
+ inh_perm_parent |  1
+ inh_temp_child  |  3
+(2 rows)
+
+select tableoid::regclass, a1 from inh_temp_parent;
+     tableoid     | a1 
+------------------+----
+ inh_temp_parent  |  2
+ inh_temp_child_2 |  4
+(2 rows)
+
+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..a6e541d4da 100644
--- a/src/test/regress/sql/inherit.sql
+++ b/src/test/regress/sql/inherit.sql
@@ -635,6 +635,23 @@ select * from cnullparent;
 select * from cnullparent where f1 = 2;
 drop table cnullparent cascade;
 
+--
+-- Check use of temporary 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 () inherits (inh_perm_parent); -- ok
+create table inh_perm_child () inherits (inh_temp_parent); -- error
+create temp table inh_temp_child_2 () 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 tableoid::regclass, a1 from inh_perm_parent;
+select tableoid::regclass, a1 from inh_temp_parent;
+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