Re: rounded brackets in prepared statement

From: Ladislav DANKO <ladislav(dot)danko(at)enaktyment(dot)cz>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: rounded brackets in prepared statement
Date: 2013-02-14 08:45:55
Message-ID: 511CA443.5020900@enaktyment.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

so JDBC driver is detecting matching type and if there's "=" (equal) then it's
doing escaping and if there is "~" (regular expression pattern) the i need to do
escaping by hand?

laco

On 13.2.2013 3:32, dmp wrote:
> It appears that since the argument to your prepare statement is a WHERE
> operation and you are using the ~, Match Regular Expression Case
> Sensitive, operator then the input is deemed as such. So parenthesis
> are valid constructs in these cases.
>
> Example from Documentation: POSIX Regular Expression Patterns
> Chapter 9. Functions & Operators
>
> 'abc' ~ '(b|d)' true
> 'abc' ~ '(^(b|c)' false
>
> danap.
>
> Ladislav DANKO wrote:
>> Hi folks,
>>
>> my setup: Java 1.6, JDBC PostgreSQL JDBC4 driver 9.1-903.
>>
>> Why when I do:
>>
>> PreparedStatement ps = myConnection.prepareStatement("SELECT a,b,c FROM
>> mytable WHERE category ~ ?");
>> ps.setString(1, "my/super/category/a(bcdef");
>> result = ps.executeQuery();
>>
>> I need to escape rounded bracket in setString in this way:
>> ps.setString(1, "super/category/a(bcdef".replaceAll("\\(", "\\\\(")));
>>
>> I think it has somethink to do with regular expessions but ot know much
>> more about it.
>>
>> --
>> With kind regards,
>>
>> Ladislav DANKO
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Florent Guillaume 2013-02-14 14:59:42 Re: PostgreSQL XAResource & GlassFish 3.1.2.2
Previous Message Bryan Varner 2013-02-13 22:20:14 Re: PostgreSQL XAResource & GlassFish 3.1.2.2