Prepared statement with bytea domain cannot be executed with BoolsAsChars=1

Поиск
Список
Период
Сортировка
От Keri Harris
Тема Prepared statement with bytea domain cannot be executed with BoolsAsChars=1
Дата
Msg-id 5287D1A4.2020906@securitease.com
обсуждение исходный текст
Список pgsql-odbc
I've run into an instance where executing a prepared statement when
BoolsAsChars=1 is set returns the error:

ERROR: ODBC: State S1000: Could not convert binary other than LO type

The setup is having a table containing two columns:

* one column has a bytea domain
* another column is of type VARCHAR of exactly 5 characters

CREATE DOMAIN my_bytea_domain AS bytea;
CREATE TABLE my_table
(
  my_binary_column my_bytea_domain,
  my_varchar_column varchar(5)
);

The error triggers when executing a prepared statement of the form:

SELECT * FROM my_table WHERE 'my_varchar_column' = ? AND
'my_binary_column' = ?

Under the above conditions, HowToPrepareBeforeExec() returns
shouldParse. This causes prepareParameters() to call
SendSyncAndReceive() which in turn calls PIC_set_pgtype() setting
.PGType to my_bytea_domain for the binary parameter. Eventually when
ResolveOneParam() calls PIC_dsp_pgtype() on the binary parameter,
.PGType is already set to a non-NULL value, so is not set to PG_TYPE_BYTEA.


Thanks

Keri

--
_____________________________________________
Keri Harris
Software Engineer
SecuritEase

Tel:    +64 4 917-6670
Fax:    +64 4 917-6671
E-mail: keri.harris@securitease.com

Visit us at:  http://www.securitease.com
_____________________________________________


This e-mail passed our content security scan.
It is covered by the confidentiality clauses at
http://www.securitease.com/content_and_confidentiality



В списке pgsql-odbc по дате отправления:

Предыдущее
От: Przemyslaw Rzepecki
Дата:
Сообщение: SQLColAttribute with SQL_DESC_LENGTH for varchar and text types
Следующее
От: Hiroshi Inoue
Дата:
Сообщение: Re: SQLCopyDesc to copy rows between tables