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

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

From
hmahmood89@googlemail.com
Date:
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz
aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDQ0OApMb2dnZWQgYnk6ICAg
ICAgICAgIEhhc3NhbiBNYWhtb29kCkVtYWlsIGFkZHJlc3M6ICAgICAgaG1h
aG1vb2Q4OUBnb29nbGVtYWlsLmNvbQpQb3N0Z3JlU1FMIHZlcnNpb246IDku
Ni4xCk9wZXJhdGluZyBzeXN0ZW06ICAgV2luZG93cyA3eDY0CkRlc2NyaXB0
aW9uOiAgICAgICAgCgpkcm9wIHRhYmxlIGlmIGV4aXN0cyBwcm9kdWN0X2Nv
ZGVzOw0KY3JlYXRlIHRlbXBvcmFyeSB0YWJsZSBwcm9kdWN0X2NvZGVzICBh
cyBzZWxlY3QgKg0KZnJvbSAoDQoJdmFsdWVzDQoJKCdhYmNkZWZnJzo6Y2hh
cmFjdGVyIHZhcnlpbmcoMjApKSwNCgkoJzAxMjM0NTY3ODkwMTIzNDU2N0FC
Q0RFRkdISUpLTE1OJykNCikgY3N2X2RhdGEgKHByb2R1Y3RfY29kZSk7DQpz
ZWxlY3QgKg0KZnJvbSBwcm9kdWN0X2NvZGVzOw0KDQoNCkkgd291bGQgZXhw
ZWN0IHRoYXQgdGhlIHR5cGUgY2hlY2sgZ290IGFwcGxpZWQgYWNyb3NzIGFs
bCB2YWx1ZXMgb3IgdGhhdCB0aGUKdmFsdWUgZ290IHRydW5jYXRlZC4NCg0K
VGhlIHJlc3VsdCBjb2x1bW4gc3RhdGVzICJjaGFyYWN0ZXIgdmFyeWluZygy
MCkiLiBJbnNlcnRzL1VwZGF0ZXMvQ2FzdHMgYWxsCnRydW5jYXRlIGFzIGV4
cGVjdGVkLgoK

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

From
Tom Lane
Date:
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