Re: BUG #15956: Server closed unexpectedly for user-defined base type LIKE char
От | Tom Lane |
---|---|
Тема | Re: BUG #15956: Server closed unexpectedly for user-defined base type LIKE char |
Дата | |
Msg-id | 5890.1565732900@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #15956: Server closed unexpectedly for user-defined base type LIKE char (PG Bug reporting form <noreply@postgresql.org>) |
Список | pgsql-bugs |
PG Bug reporting form <noreply@postgresql.org> writes: > The following causes the server to close unexpectedly. > CREATE TYPE char_type; > CREATE FUNCTION char_type_in(cstring) RETURNS char_type > LANGUAGE internal IMMUTABLE STRICT AS 'charin'; > CREATE FUNCTION char_type_out(char_type) RETURNS cstring > LANGUAGE internal IMMUTABLE STRICT AS 'charout'; > CREATE TYPE char_type ( > INPUT = char_type_in, > OUTPUT = char_type_out, > LIKE = char > ); > CREATE TABLE char_table (t char_type); > INSERT INTO char_table (t) > VALUES ('t'); This is pilot error, not a server bug: you created a type that's not compatible with the I/O functions you provided for it. Admittedly, it's a bit of a gotcha: "LIKE = char" interprets char as bpchar, a/k/a the SQL CHAR(n) type. But the internal charin and charout functions are for the single-byte "char" type. If we didn't have a couple decades worth of backward compatibility to think about, we'd likely rename the latter type, since it's a Postgres-ism not standard. regards, tom lane
В списке pgsql-bugs по дате отправления: