Обсуждение: semicolons separating statements in a rule action body confuses parseQuery()
using jdbc-8.0-313 against 8.0.4,
the driver gets confused when parsing rule definition statements with
embedded semicolons such as :
"create rule r1 as on insert to foo do (delete from bar; insert into
bar select * from foo; ); "
the following patch shows a possible quick fix for
QueryExecutorImpl.parseQuery() in org/postgresql/core/v3/
QueryExecutorImpl.java
69d68
< int inParen = 0;
77,82d75
< case '(':
< if (!inSingleQuotes && !inDoubleQuotes) inParen++;
< break;
< case ')':
< if (!inSingleQuotes && !inDoubleQuotes) inParen--;
< break;
105c98
< if (!inSingleQuotes && !inDoubleQuotes && inParen
== 0)
---
> if (!inSingleQuotes && !inDoubleQuotes)
On Wed, 2 Nov 2005, Jolly Chen wrote: > using jdbc-8.0-313 against 8.0.4, > > the driver gets confused when parsing rule definition statements with > embedded semicolons such as : > > "create rule r1 as on insert to foo do (delete from bar; insert into bar > select * from foo; ); " > > the following patch shows a possible quick fix for Patch applied to 8.0 and head cvs branches. For future reference we prefer context diffs (diff -c) patches. Kris Jurka