Il 08/11/2016 01:58, Tsunakawa, Takayuki ha scritto:
> From: pgsql-odbc-owner@postgresql.org
>> [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Fred Parkinson
>> One thing I now remember from when this issue first appeared is that there
>> was another possible solution.
>> When trying to use FALSE or TRUE in an Access query that uses a postgres
>> boolean, I would get the error:
>> ODBC call failed: ERROR: operator does not exist: boolean = integer;...
>>
>> Apparently you can write an operator and add it to the postgres server,
>> an operator that will perform the comparison between a boolean and an
>> integer.
>> The intern I was working with at the time tried once to write that operator,
>> but when his attempt failed at the first try, we went with the kludge because
>> we were in a hurry and didn't want to spend the time debugging his code.
>>
>> I am not sure but I think the operator was written in PHP. In any case,
>> that might be a fruitful line of inquery given that you can't rewrite a
>> major application to use the kludge I describe below.
> A dirty hack is to run the following UPDATE only once on the target database. You can do this from any program such
aspsql.
>
> UPDATE pg_cast
> SET castcontext = 'I'
>
> WHERE castsource = 'int'::regtype AND
> casttarget = 'boolean'::regtype;
>
> This will make the type cast from integer to Boolean implicit, enabling the comparison like "WHERE 1 = true".
>
> But implicit casts might cause unexpected trouble. If you find something wrong, revert the castcontext to 'e'.
>
> Regards
> Takayuki Tsunakawa
Arigato !
Thank you very much for your answer.
I tried your suggestion and it worked !
But, in order to have the issue solved, I had to slightly change the SQL
statement you provided:
SET castcontext = 'i' (lowercase)
instead of
SET castcontext = 'I' (uppercase)
Thank you again !
Kon'nichiwa (in Italy is late morning ...)
------------------------------------------------------------
Vincenzo Turturro
Regione Toscana
Direzione generale Governo del territorio
Sistema Informativo Territoriale ed Ambientale
Via di Novoli 26
50127 Firenze
Tel 055 43 83 855
------------------------------------------------------------