BUG #15590: crosstab_hash unable to work with modified types (CreateTupleDescCopy returning dropped attributes?)

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: guillaume-postgresql(at)outters(dot)eu
Subject: BUG #15590: crosstab_hash unable to work with modified types (CreateTupleDescCopy returning dropped attributes?)
Date: 2019-01-11 15:25:56
Message-ID: 15590-c8b3ea603dbece1e@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 15590
Logged by: Guillaume Outters
Email address: guillaume-postgresql(at)outters(dot)eu
PostgreSQL version: 9.6.11
Operating system: FreeBSD 10.2
Description:

Encapsulating crosstab_hash in a function (to define its return type) does
not work when the (user-defined) return type owns 'dropped' attributes.

begin transaction;
create type t as (id int, i int, j int);
create function ctt(text, text)
returns setof t
as '$libdir/tablefunc', 'crosstab_hash' language c;
select * from ctt($$ select * from (values (1, 'j', 123), (1, 'i', 0)) t $$,
$$ select * from (values ('i'), ('j')) t $$);
-- -> Works as expected, returns 3 columns: 1 0 123
alter type t add attribute bla text;
alter type t drop attribute bla;
create table tab of t;
select a.* from pg_class c, pg_attribute a where relname in ('t', 'tab') and
c.oid = a.attrelid;
-- -> Type t shows its 4 columns, with bla having been renamed to
'........pg.dropped.4........' an flagged attisdropped
-- -> Table tab was created with 3 columns (correctly ignored t's dropped
column).
select * from ctt($$ select * from (values (1, 'j', 123), (1, 'i', 0)) t $$,
$$ select * from (values ('i'), ('j')) t $$);
-- -> Crashes with:
-- Error: ERROR: invalid return type
-- Détail : Query-specified return tuple has 4 columns but crosstab
returns 3.
-- SQLState: 42601
-- ErrorCode: 0
rollback;

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message PG Bug reporting form 2019-01-11 16:52:42 BUG #15591: pg_receivewal does not honor replication slots
Previous Message Jeff Janes 2019-01-11 14:03:04 Re: BUG #15589: Due to missing wal, restore ends prematurely and opens database for read/write