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
>
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 |