Re: JDBC and the hstore ? operator - no longer working with build 1211

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: JDBC and the hstore ? operator - no longer working with build 1211
Date: 2017-03-02 08:54:22
Message-ID: o98mjn$dre$1@blaine.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Vladimir Sitnikov schrieb am 01.11.2016 um 15:00:
>>This has been "broken" for a while now, you have to use ?? to get it to work.

This still doesn't work completely with a PreparedStatement.

Other hstore operators that start with an ? do not work: ?& and ?|

e.g.:

connection.prepareStatement("select * from foo where hstore_column ?& array['key']");
connection.prepareStatement("select * from foo where hstore_column ?| array['key']");

The prepareStatement() call succeeds, but when calling executeQuery() an exception is thrown:

org.postgresql.util.PSQLException: No value specified for parameter 1.

The goal is to pass the array as a parameter, something like:

Array keys = con.createArrayOf("text", new String[] {"key1","key2"});
connection.prepareStatement("select * from foo where hstore_column ?& ?");
pstmt.setArray(1, keys);
ResultSet rs = pstmt.executeQuery();

Tested with 1212 and 42.0.0

Regards
Thomas

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Mark Rotteveel 2017-03-02 18:10:16 Re: Re: JDBC and the hstore ? operator - no longer working with build 1211
Previous Message Tom Lane 2017-03-01 16:05:19 Re: Statement-level rollback