From d1c9c46c96c016b6561018d8017261feea3912a7 Mon Sep 17 00:00:00 2001 From: babinho Date: Fri, 17 Feb 2012 09:47:31 +0100 Subject: Oracle limit and offset issue when query is ordered, issue #99 solved. --- lib/arel/visitors/oracle.rb | 3 +-- test/visitors/test_oracle.rb | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/arel/visitors/oracle.rb b/lib/arel/visitors/oracle.rb index 375f7dbfe9..1441a20dbc 100644 --- a/lib/arel/visitors/oracle.rb +++ b/lib/arel/visitors/oracle.rb @@ -25,9 +25,8 @@ module Arel SELECT * FROM ( SELECT raw_sql_.*, rownum raw_rnum_ FROM (#{sql}) raw_sql_ - WHERE rownum <= #{offset.expr.to_i + limit} ) - WHERE #{visit offset} + WHERE raw_rnum_ between #{offset.expr.to_i + 1 } and #{offset.expr.to_i + limit} eosql end diff --git a/test/visitors/test_oracle.rb b/test/visitors/test_oracle.rb index 9a5fa304ab..af81f2058b 100644 --- a/test/visitors/test_oracle.rb +++ b/test/visitors/test_oracle.rb @@ -102,9 +102,8 @@ module Arel SELECT * FROM ( SELECT raw_sql_.*, rownum raw_rnum_ FROM (SELECT) raw_sql_ - WHERE rownum <= 20 ) - WHERE raw_rnum_ > 10 + WHERE raw_rnum_ between 11 and 20 } end -- cgit v1.2.3