]
Steven Hawkins resolved TEIID-3815.
-----------------------------------
Fix Version/s: 8.13
Resolution: Done
Updated the logic to check for max int and to prevent overflow.
Oracle translator - OFFSET function does not work
-------------------------------------------------
Key: TEIID-3815
URL:
https://issues.jboss.org/browse/TEIID-3815
Project: Teiid
Issue Type: Bug
Affects Versions: 8.7.2.6_2
Reporter: Juraj DurĂ¡ni
Assignee: Steven Hawkins
Fix For: 8.12.2, 8.13
Oracle translator translates OFFSET function as:
{code:sql}
SELECT c_0 FROM (SELECT VIEW_FOR_LIMIT.*, ROWNUM ROWNUM_ FROM (***Query***)
VIEW_FOR_LIMIT WHERE ROWNUM <= -2147483604) WHERE ROWNUM_ > 45
{code}
This always returns an empty result because of *ROWNUM <= -2147483604*.
Example:
Query:
{code:sql}
SELECT INTKEY FROM bqt1.smalla ORDER BY INTKEY OFFSET 45 ROWS
{code}
Source-specific command:
{code:sql}
SELECT c_0 FROM (SELECT VIEW_FOR_LIMIT.*, ROWNUM ROWNUM_ FROM (SELECT
trunc(g_0."INTKEY") AS c_0 FROM "DV"."SMALLA" g_0 ORDER BY
c_0) VIEW_FOR_LIMIT WHERE ROWNUM <= -2147483604) WHERE ROWNUM_ > 45
{code}