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  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: length coerce for bpchar is broken since 7.0  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список 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 по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: fkey + primary key does not work in current
Следующее
От: Tom Lane
Дата:
Сообщение: Re: length coerce for bpchar is broken since 7.0