-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Andy Colson
Sent: Tuesday, January 10, 2012 11:20 AM
To: David Johnston
Cc: 'PostgreSQL'
Subject: Re: [GENERAL] string = any()
> This still does not work, even in psql:
> select 'bob' = any( '{''joe'', ''bob'' }'::varchar[] )
>
> $$ ^ This works for me just fine....though I am not using psql; are
> you having quoting issues? What error do you get?
>
It runs, but it returns false. I get false at least. I'm assuming you do
to, otherwise something weird is going on.
-----------------------------------------
I execute the following:
SELECT 'bob' = ANY( '{ "joe", "bob" }'::varchar[] );
And it returns TRUE...
This returns FALSE:
SELECT 'bob' = ANY( '{ "joe", "dave" }'::varchar[] );
I didn't enable logging so I don't know exactly what the engine is seeing
but using PostgreSQL Maestro that is what I am getting; and from the
documentation it seems correct...
I am using the "string_to_array()" function call where I do this kind of
thing because I probably encountered the same Java API issue that you are
with PHP; but since passing in the delimited string and splitting it isn't
that difficult I am not all that concerned. You need to embed the
"string_to_array" inside the prepared statement and pass only scalars via
the API.
So:
prepare x as select 'bob' = any(string_to_array($1, ',')::varchar[]);
execute x ('joe,bob,billy');
David J.