aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Conway <neilc@samurai.com>2004-12-12 22:49:50 +0000
committerNeil Conway <neilc@samurai.com>2004-12-12 22:49:50 +0000
commitcda3e5836ed9f6b31631191515a417e7025fa5b2 (patch)
tree1fc5ab844d9073fbac956bfaeda320e4cb03efec
parentc604ed56e3f9d4c236e06b717a18d1a5baa27c88 (diff)
downloadpostgresql-cda3e5836ed9f6b31631191515a417e7025fa5b2.tar.gz
postgresql-cda3e5836ed9f6b31631191515a417e7025fa5b2.zip
Add regression tests for the fix committed by Tom for casting between
the row types of parent/child tables.
-rw-r--r--src/test/regress/expected/inherit.out28
-rw-r--r--src/test/regress/sql/inherit.sql22
2 files changed, 48 insertions, 2 deletions
diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out
index 6e8e9ca18d9..9517c36baaf 100644
--- a/src/test/regress/expected/inherit.out
+++ b/src/test/regress/expected/inherit.out
@@ -623,3 +623,31 @@ select * from d;
32 | one | two | three
(1 row)
+-- Tests for casting between the rowtypes of parent and child
+-- tables. See the pgsql-hackers thread beginning Dec. 4/04
+create table base (i integer);
+create table derived () inherits (base);
+insert into derived (i) values (0);
+select derived::base from derived;
+ derived
+---------
+ (0)
+(1 row)
+
+drop table derived;
+drop table base;
+create table p1(ff1 int);
+create table p2(f1 text);
+create function p2text(p2) returns text as 'select $1.f1' language sql;
+create table c1(f3 int) inherits(p1,p2);
+insert into c1 values(123456789, 'hi', 42);
+select p2text(c1.*) from c1;
+ p2text
+--------
+ hi
+(1 row)
+
+drop function p2text(p2);
+drop table c1;
+drop table p2;
+drop table p1;
diff --git a/src/test/regress/sql/inherit.sql b/src/test/regress/sql/inherit.sql
index 23291757963..daeabb2c961 100644
--- a/src/test/regress/sql/inherit.sql
+++ b/src/test/regress/sql/inherit.sql
@@ -146,7 +146,25 @@ SELECT * FROM inhf; /* Single entry with value 'text' */
-- Test changing the type of inherited columns
insert into d values('test','one','two','three');
-
alter table a alter column aa type integer using bit_length(aa);
-
select * from d;
+
+-- Tests for casting between the rowtypes of parent and child
+-- tables. See the pgsql-hackers thread beginning Dec. 4/04
+create table base (i integer);
+create table derived () inherits (base);
+insert into derived (i) values (0);
+select derived::base from derived;
+drop table derived;
+drop table base;
+
+create table p1(ff1 int);
+create table p2(f1 text);
+create function p2text(p2) returns text as 'select $1.f1' language sql;
+create table c1(f3 int) inherits(p1,p2);
+insert into c1 values(123456789, 'hi', 42);
+select p2text(c1.*) from c1;
+drop function p2text(p2);
+drop table c1;
+drop table p2;
+drop table p1;