|
|
|
Martin, I just tested this against the test suite for bug 1676, where I am
writing a little performance test suite to compare execution times for lazy-loading vs. not lazy-loaded. But committing your patch, can you please elaborate as to why this was necessary. Well, I think you remember we changed QueryExpression and the derived database
specific classes, so that getStatement() now returns SQL bind expressions of the form "?1", "?2", ... instead of only "?". This forces any function, which uses the generated SQL statement strings with such bind variables to use SqlBindParser in order to transform them into the JDBC compatible form "?". Otherwise the JDBC driver will report an error because of the non-standard syntax. We (well it was me ![]() function SQLEngine.execute(). Sean used a "select count(...)" OQL statement, which executes a JDBC statement directly in SimpleQueryExecutor, not using SQLEngine.execute(). This patch adds the missing SqlBindParser postprocessing to SimpleQueryExecutor. I hope, there is no other code location needing such an addition. I already searched for any other, but could not find any. Most uses of getStatement() just don't need it because there are no bind variables to process. Thanks, Martin. Bruce, can you please explain the raison d'etre for the
SimpleQueryExecutor ? What does it try to solve that could not be done through SQLEngine ? |
proposed patch