Re: BUG #6236: Query execution bug
От | Tom Lane |
---|---|
Тема | Re: BUG #6236: Query execution bug |
Дата | |
Msg-id | 7767.1317396815@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #6236: Query execution bug ("Boris Matkov" <borism@devart.com>) |
Список | pgsql-bugs |
"Boris Matkov" <borism@devart.com> writes: > INSERT INTO btest0 (id, name) VALUES ((SELECT DISTINCT id FROM btest0 WHERE > name = $1 LIMIT 1), $1) - was executed successfully > INSERT INTO btest0 (name,id) VALUES ($1, (SELECT DISTINCT id FROM btest0 > WHERE name = $1 LIMIT 1)) - I got error: > --------------------------- > inconsistent types deduced for parameter $1 > --------------------------- > Script for the btest0 table creating: > CREATE TABLE btest0 > ( > id integer NOT NULL, > name character varying(50) NOT NULL, > value double precision, > CONSTRAINT pk_btest0 PRIMARY KEY (id) > ) It may be annoying, but it's not a bug. The equality test uses the "text = text" operator, so if that's seen first then the parameter gets resolved as text. You'd be better off to declare the type of the parameter instead of assuming that it will always be resolved the way you want ... but if you can't be bothered to do that, using text instead of varchar as the column type would avoid most of the cases where you'll see something like this. regards, tom lane
В списке pgsql-bugs по дате отправления: