From 99694fdb00878f06942deb5f8686d7e3d2fca62b Mon Sep 17 00:00:00 2001 From: Emilio Tagua Date: Thu, 25 Mar 2010 12:09:19 -0300 Subject: Use adapter add_limit_offset! method when building query. --- lib/arel/engines/sql/compilers/ibm_db_compiler.rb | 14 -------------- lib/arel/engines/sql/relations/compiler.rb | 10 +++++----- 2 files changed, 5 insertions(+), 19 deletions(-) (limited to 'lib') diff --git a/lib/arel/engines/sql/compilers/ibm_db_compiler.rb b/lib/arel/engines/sql/compilers/ibm_db_compiler.rb index e15e783160..8c5779a35e 100644 --- a/lib/arel/engines/sql/compilers/ibm_db_compiler.rb +++ b/lib/arel/engines/sql/compilers/ibm_db_compiler.rb @@ -31,20 +31,6 @@ module Arel module SqlCompiler class IBM_DBCompiler < GenericCompiler - def select_sql - query = build_query \ - "SELECT #{select_clauses.join(', ')}", - "FROM #{from_clauses}", - (joins(self) unless joins(self).blank? ), - ("WHERE #{where_clauses.join(" AND ")}" unless wheres.blank? ), - ("GROUP BY #{group_clauses.join(', ')}" unless groupings.blank? ), - ("HAVING #{having_clauses.join(', ')}" unless havings.blank? ), - ("ORDER BY #{order_clauses.join(', ')}" unless orders.blank? ) - engine.add_limit_offset!(query,{:limit=>taken,:offset=>skipped}) unless taken.blank? - query << "#{locked}" unless locked.blank? - query - end - def limited_update_conditions(conditions, taken) quoted_primary_key = engine.quote_table_name(primary_key) update_conditions = "WHERE #{quoted_primary_key} IN (SELECT #{quoted_primary_key} FROM #{engine.connection.quote_table_name table.name} #{conditions} " #Note: - ')' not added, limit segment is to be appended diff --git a/lib/arel/engines/sql/relations/compiler.rb b/lib/arel/engines/sql/relations/compiler.rb index fc8d484276..cc0deb7c88 100644 --- a/lib/arel/engines/sql/relations/compiler.rb +++ b/lib/arel/engines/sql/relations/compiler.rb @@ -8,17 +8,17 @@ module Arel end def select_sql - build_query \ + query = build_query \ "SELECT #{select_clauses.join(', ')}", "FROM #{from_clauses}", (joins(self) unless joins(self).blank? ), ("WHERE #{where_clauses.join(" AND ")}" unless wheres.blank? ), ("GROUP BY #{group_clauses.join(', ')}" unless groupings.blank? ), ("HAVING #{having_clauses.join(', ')}" unless havings.blank? ), - ("ORDER BY #{order_clauses.join(', ')}" unless orders.blank? ), - ("LIMIT #{taken}" unless taken.blank? ), - ("OFFSET #{skipped}" unless skipped.blank? ), - ("#{locked}" unless locked.blank?) + ("ORDER BY #{order_clauses.join(', ')}" unless orders.blank? ) + engine.add_limit_offset!(query,{ :limit => taken, :offset => skipped }) if taken || skipped + query << " #{locked}" unless locked.blank? + query end def delete_sql -- cgit v1.2.3