| От | Neil Conway |
|---|---|
| Тема | domain constraints and UNKNOWN params |
| Дата | |
| Msg-id | 1137025801.9143.113.camel@localhost.localdomain обсуждение исходный текст |
| Ответы |
Re: domain constraints and UNKNOWN params
|
| Список | pgsql-patches |
David Wheeler reported the following bug: when a protocol-level prepared statement with a parameter of UNKNOWN type is used, any domain constraints that are associated with the inferred type of the parameter are not checked when the statement is executed. Attached is a script David sent me to reproduce the problem: when pg_server_prepare is enabled (the default), DBD::Pg uses protocol-level prepared statements, and the script is able to insert a tuple that violates the domain's check constraint. Disabling pg_server_prepare results in a constraint failure, as it should. I've also attached a patch that should fix the issue -- coerce_type() neglected to apply coerce_to_domain() to the type inferred for an UNKNOWN Param. Barring any objections, I intend to apply the patch to HEAD and release branches as far back as the problem exists (likely 8.0 and 8.1, and possibly 7.4 -- I haven't checked yet). It would be nice to add regression tests for this issue, but AFAICS there's no way to specify parameters of UNKNOWN type to a prepared statement created via SQL -- which might be worth implementing anyway... -Neil
В списке pgsql-patches по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера