From cda3e5836ed9f6b31631191515a417e7025fa5b2 Mon Sep 17 00:00:00 2001 From: Neil Conway Date: Sun, 12 Dec 2004 22:49:50 +0000 Subject: [PATCH] Add regression tests for the fix committed by Tom for casting between the row types of parent/child tables. --- src/test/regress/expected/inherit.out | 28 +++++++++++++++++++++++++++ src/test/regress/sql/inherit.sql | 22 +++++++++++++++++++-- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out index 6e8e9ca18d..9517c36baa 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 2329175796..daeabb2c96 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;