length coerce for bpchar is broken since 7.0
От | Tatsuo Ishii |
---|---|
Тема | length coerce for bpchar is broken since 7.0 |
Дата | |
Msg-id | 20001017113017H.t-ishii@sra.co.jp обсуждение исходный текст |
Ответы |
Re: length coerce for bpchar is broken since 7.0
Re: length coerce for bpchar is broken since 7.0 |
Список | pgsql-hackers |
It seems the length coerce for bpchar is broken since 7.0. In 6.5 when a string is inserted, bpchar() is called to properly clip the string. However in 7.0 (and probably current) bpchar() is not called anymore. coerce_type_typmod() calls exprTypmod(). exprTypmod() returns VARSIZE of the bpchar data only if the data type is bpchar (if the data type is varchar, exprTypmod just returns -1 and the parser add a function node to call varchar(). so there is no problem for varchar). If VARSIZE returned from exprTypmod() and atttypmod passed to coerce_type_typmod() is equal, the function node to call bpchar() would not be added. I'm not sure if this was an intended efect of the change. Anyway we have to do the length coerce for bpchar somewhere and I'm thinking now is doing in bpcharin(). This would also solve the problem in copy in a mail I have posted. Comments? -- Tatsuo Ishii
В списке pgsql-hackers по дате отправления: