Re: BUG #8698: cast and view

Lists: pgsql-bugs
From: balazs(at)obiserver(dot)hu
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #8698: cast and view
Date: 2013-12-23 18:43:37
Message-ID: E1VvATZ-0004mC-B4@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 8698
Logged by: Balazs Peter Odor
Email address: balazs(at)obiserver(dot)hu
PostgreSQL version: 9.3.2
Operating system: Debian Linux
Description:

CREATE SCHEMA test;
CREATE TYPE test.customcompositetype AS (
x text,
y text
);
CREATE TABLE test.customtable (
compositetype test.customcompositetype
);
INSERT INTO test.customtable (compositetype)
VALUES ('(x1,y1)'), ('(x2,y2)');

SELECT * FROM test.customtable;
compositetype
---------------
(x1,y1)
(x2,y2)
(2 rows)

CREATE VIEW test.customview as
SELECT compositetype, compositetype::text AS compositetype_text
FROM test.customtable;

SELECT * FROM test.customview;
compositetype | compositetype_text
---------------+--------------------
(x1,y1) | (x1,y1)
(x2,y2) | (x2,y2)
(2 rows)

Ok, lets create a cast to customcompositetype to text:

CREATE FUNCTION test.customcompositetype_text(test.customcompositetype)
RETURNS text AS
$$SELECT ($1).x || ' ' || ($1).y;$$
IMMUTABLE
LANGUAGE SQL
;
CREATE CAST (test.customcompositetype AS text)
WITH FUNCTION test.customcompositetype_text(test.customcompositetype);

SELECT * FROM test.customview;
compositetype | compositetype_text
---------------+--------------------
(x1,y1) | (x1,y1)
(x2,y2) | (x2,y2)
(2 rows)

What?? :(

Refresh the view:

CREATE OR REPLACE VIEW test.customview as
SELECT compositetype, compositetype::text AS compositetype_text
FROM test.customtable;

SELECT * FROM test.customview;
compositetype | compositetype_text
---------------+--------------------
(x1,y1) | x1 y1
(x2,y2) | x2 y2
(2 rows)

Whats wrong? Why need recreate the view??


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: balazs(at)obiserver(dot)hu
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #8698: cast and view
Date: 2013-12-23 21:40:57
Message-ID: 6472.1387834857@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

balazs(at)obiserver(dot)hu writes:
> Whats wrong? Why need recreate the view??

Because it contains a call to the original cast function.

regards, tom lane


From: Ódor Balázs Péter <balazs(at)obiserver(dot)hu>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #8698: cast and view
Date: 2014-01-05 13:59:37
Message-ID: 52C96549.3040503@obiserver.hu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

Hi,

Please create a full pg_dump before recreate the view, drop the
database, and recreate it from the full dump.

This procedure (dump and restore) isn't represent the original state!

Regards,
Balazs