Обсуждение: BUG #14448: create table as values - type check skipped
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDQ0OApMb2dnZWQgYnk6ICAg ICAgICAgIEhhc3NhbiBNYWhtb29kCkVtYWlsIGFkZHJlc3M6ICAgICAgaG1h aG1vb2Q4OUBnb29nbGVtYWlsLmNvbQpQb3N0Z3JlU1FMIHZlcnNpb246IDku Ni4xCk9wZXJhdGluZyBzeXN0ZW06ICAgV2luZG93cyA3eDY0CkRlc2NyaXB0 aW9uOiAgICAgICAgCgpkcm9wIHRhYmxlIGlmIGV4aXN0cyBwcm9kdWN0X2Nv ZGVzOw0KY3JlYXRlIHRlbXBvcmFyeSB0YWJsZSBwcm9kdWN0X2NvZGVzICBh cyBzZWxlY3QgKg0KZnJvbSAoDQoJdmFsdWVzDQoJKCdhYmNkZWZnJzo6Y2hh cmFjdGVyIHZhcnlpbmcoMjApKSwNCgkoJzAxMjM0NTY3ODkwMTIzNDU2N0FC Q0RFRkdISUpLTE1OJykNCikgY3N2X2RhdGEgKHByb2R1Y3RfY29kZSk7DQpz ZWxlY3QgKg0KZnJvbSBwcm9kdWN0X2NvZGVzOw0KDQoNCkkgd291bGQgZXhw ZWN0IHRoYXQgdGhlIHR5cGUgY2hlY2sgZ290IGFwcGxpZWQgYWNyb3NzIGFs bCB2YWx1ZXMgb3IgdGhhdCB0aGUKdmFsdWUgZ290IHRydW5jYXRlZC4NCg0K VGhlIHJlc3VsdCBjb2x1bW4gc3RhdGVzICJjaGFyYWN0ZXIgdmFyeWluZygy MCkiLiBJbnNlcnRzL1VwZGF0ZXMvQ2FzdHMgYWxsCnRydW5jYXRlIGFzIGV4 cGVjdGVkLgoK
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