On 2018-07-10 17:07, Dawid Cokan wrote:
Dear Team,
We are working on the project that will support documents managament for one of
our clients using jackrabbit-oak under the hood. We faced issue related to not
sufficient Oracle DB version. We are using Oracle 11g and we got the log error
saying that minimal supported version is 12.1. However I checked Your code on
bitbucket and this is just the log of error which doesn’t exit the current
execution (see line 169:
ihttps://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.6.1/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java).
We were looking at your JIRA and we noticed that actually everywhere you
mention about the oracle driver version 12 not DB itself. Does it mean that
using oracle driver in version 12 is sufficient to fix this issue?
No.
Additionaly to above ERROR log further execution results in exception related
to wrong SQL syntax (ORA-00933). It is thrown by executing query method in
RDBDocumentStoreJDBC where it tries to use construction “FIRST x ROWS” which
indeed is not available untill Oracle 12c (see line 473
https://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.6.1/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java).
We are considering preparing patch with changed
org.apache.jackrabbit.oak.plugins.document.rdb.ORACLE.getFetchFirstSyntax()
method so that will use LIMIT instead. However we’re not sure about any other
impact that can be caused by this change and whether other places should be
changed to properly work with Oracle 11.
It's certainly *possible* to modify the code to run with older Oracle
versions, but you might run into further problems.
I would be really grateful if you will advice us on possible solution to this
issue as upgrading Oracle version is currently not an option.
The main issue with supporting older versions is test coverage; that's
why we've avoided to support older variants that would need different
code paths.
So yes, you can patch the code, or you can upgrade the database.
Best regards, Julian