Re: ODBC SELECT WHERE a IN ('frob') returns where a = '' too - Mailing list pgsql-bugs

From Tom Lane
Subject Re: ODBC SELECT WHERE a IN ('frob') returns where a = '' too
Date
Msg-id 560.959060036@sss.pgh.pa.us
Whole thread Raw
In response to ODBC SELECT WHERE a IN ('frob') returns where a = '' too  (Adam Haberlach <adam@newsnipple.com>)
Responses Re: ODBC SELECT WHERE a IN ('frob') returns where a = '' too  (Adam Haberlach <adam@newsnipple.com>)
List pgsql-bugs
Adam Haberlach <adam@newsnipple.com> writes:
> When I do a query of the form
> SELECT a FROM tbl WHERE a IN ('frob');
> where a is an indexed text field containing 'frob', 'dingus', '', and
> NULL
> I get a set that includes rows both where
> a == 'frob'
> a == ''

> This happens when I use ODBC from Microsoft Access's pass-through, but
> does not seem to happen from the psql
> command-line.  This seems to confuse my coworker who is more familiar
> with non-Postgres databases then I.

I'm confused too.  Best theory I can think of is that Access is
transforming the query into something different before sending it to the
backend.  That'd be incredibly braindead, but then this is M$ software
we're talking about.  Anyway, the first thing to do is confirm or deny
that theory by looking at the exact query the backend is getting.
If you can't get Access to log what it sends, restart the postmaster
with "-d2" or higher, and see what gets logged...

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: pg_dump crashes trying to dump database containing index on oid
Next
From: Adam Haberlach
Date:
Subject: Re: pg_dump crashes trying to dump database containing index on oid