Hi Andrew, You are right, the PostgreSQL dictionary needs an update. Thanks for the investigation. Wouldn't you mind opening a JIRA issue [1] for that? Otherwise I will open one.
Greetings, Milosz [1] https://issues.apache.org/jira/browse/OPENJPA > Hi, > > Noticed an issue with the Postgres DBDictionary definition after > updating Postgres from version 8.4 to 9.1:- > > Here's what you get in the Postgres trace file when executing some JPA > driven queries where an SQL LIKE is involved:- > > 2011-09-30 14:29:41 BST ERROR: invalid escape string > 2011-09-30 14:29:41 BST HINT: Escape string must be empty or one character. > 2011-09-30 14:29:41 BST STATEMENT: SELECT t0.id, t0.identificationMask, > t0.productName FROM DBTYPE t0 WHERE (t0.identificationMask LIKE $1 > ESCAPE '\\') > 2011-09-30 14:29:41 BST ERROR: current transaction is aborted, commands > ignored until end of transaction block > > This appears to be down to a change the Postgres project have made to > escape string handling:- > http://www.postgresql.org/docs/9.1/static/release-9-1.html (see > section E.2.2.1) > > You appear to be able to override the default DBDictionary setting for > this as follows to get things working again:- > <property name="openjpa.jdbc.DBDictionary" > value="postgres(SearchStringEscape=\)"/> > > So, does this mean OpenJPA needs a version dependent dictionary > definition for Postgres from now on? Anybody got any better solutions or > care to confirm what I'm seeing? > > I've also posted this to the Postgres JDBC mailing list in case they > have any comments. > > Andrew > >