BUG #14448: create table as values - type check skipped

Started by Nonameover 9 years ago2 messagesbugs
Jump to latest
#1Noname
hmahmood89@googlemail.com

The following bug has been logged on the website:

Bug reference: 14448
Logged by: Hassan Mahmood
Email address: hmahmood89@googlemail.com
PostgreSQL version: 9.6.1
Operating system: Windows 7x64
Description:

drop table if exists product_codes;
create temporary table product_codes as select *
from (
values
('abcdefg'::character varying(20)),
('012345678901234567ABCDEFGHIJKLMN')
) csv_data (product_code);
select *
from product_codes;

I would expect that the type check got applied across all values or that the
value got truncated.

The result column states "character varying(20)". Inserts/Updates/Casts all
truncate as expected.

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noname (#1)
Re: BUG #14448: create table as values - type check skipped

hmahmood89@googlemail.com writes:

create temporary table product_codes as select *
from (
values
('abcdefg'::character varying(20)),
('012345678901234567ABCDEFGHIJKLMN')
) csv_data (product_code);
select *
from product_codes;

I would expect that the type check got applied across all values or that the
value got truncated.

The result column states "character varying(20)". Inserts/Updates/Casts all
truncate as expected.

Hmm. I'm not sure whether that VALUES construct should be expected to
produce varchar(20) or just unrestricted varchar, but I agree that if
it claims to produce varchar(20) then the results should all meet that
limit. Will look into it, thanks for the report!

regards, tom lane

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs