[ https://issues.apache.org/jira/browse/IGNITE-4163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vasiliy Sisko reopened IGNITE-4163: ----------------------------------- > Wrong SQL generated by > org.apache.ignite.cache.store.jdbc.dialect.BasicJdbcDialect#loadCacheSelectRangeQuery > ------------------------------------------------------------------------------------------------------------ > > Key: IGNITE-4163 > URL: https://issues.apache.org/jira/browse/IGNITE-4163 > Project: Ignite > Issue Type: Bug > Components: SQL > Affects Versions: 1.7 > Reporter: Anghel Botos > Assignee: Vasiliy Sisko > Attachments: IGNITE_4163_Fixed_load_range_queries_Review.patch, > IGNITE_4163_Fixed_load_range_queries_for_MS_SQL_Server_.patch, > IGNITE_4163_Fixed_load_range_queries_for_different_databases.patch, > IGNITE_4163_Index_column_in_upper_case.patch, > IGNITE_4163_Oracle_specific_for_load_range_query_.patch, test4163-project.zip > > > The SQL statement generated by > org.apache.ignite.cache.store.jdbc.dialect.BasicJdbcDialect#loadCacheSelectRangeQuery > looks like this: > {{SELECT KEY_COLUMN_1,KEY_COLUMN_2 FROM (SELECT KEY_COLUMN_1,KEY_COLUMN_2, > ROWNUM() AS rn FROM SOME_TABLE ORDER BY KEY_COLUMN_1,KEY_COLUMN_2) WHERE > mod(rn, ?) = 0}} > For Oracle this is incorrect, as Oracle does not have a {{ROWNUM()}} > function. For the above query the following error is thrown: {{ORA-00923: > FROM keyword not found where expected}} > Regarding row numbering Oracle has: > * a {{ROWNUM}} pseudocolumn, in which case the query should have {{ROWNUM AS > rn}} > * a {{ROW_NUMBER()}} function, in which case the query would become more > complicated. See > https://docs.oracle.com/database/121/SQLRF/functions170.htm#SQLRF06100 for > more details about {{ROW_NUMBER()}} > Please make the neccessary adjustments to either {{BasicJdbcDialect}} or > {{OracleDialect}} so that a correct query is produced. -- This message was sent by Atlassian JIRA (v6.3.4#6332)