From a2028a7d7bf4336d01656d947df77ee504927db0 Mon Sep 17 00:00:00 2001 From: Frederick Cheung Date: Mon, 21 Apr 2008 11:45:48 +1200 Subject: [PATCH 1/2] Fix sqlite adapter to work with the quoted table names returned by later versions of sqlite3. --- .../lib/active_record/connection_adapters/sqlite_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb index 92d11e56e1d60..59a51c02792f8 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb @@ -257,7 +257,7 @@ def select(sql, name = nil) #:nodoc: record = {} row.each_key do |key| if key.is_a?(String) - record[key.sub(/^\w+\./, '')] = row[key] + record[key.sub(/^"?\w+"?\./, '')] = row[key] end end record From 55622e0bde999193ae4a848d28cf2ce7e9247d83 Mon Sep 17 00:00:00 2001 From: Frederick Cheung Date: Mon, 21 Apr 2008 11:47:15 +1200 Subject: [PATCH 2/2] Avoid adding two DISTINCT statements to queries in sqlite 2. --- activerecord/lib/active_record/calculations.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activerecord/lib/active_record/calculations.rb b/activerecord/lib/active_record/calculations.rb index 64527ec3f0746..b5bf82ee11274 100644 --- a/activerecord/lib/active_record/calculations.rb +++ b/activerecord/lib/active_record/calculations.rb @@ -178,7 +178,7 @@ def construct_calculation_sql(operation, column_name, options) #:nodoc: sql = "SELECT COUNT(*) AS #{aggregate_alias}" if use_workaround sql << ", #{options[:group_field]} AS #{options[:group_alias]}" if options[:group] - sql << " FROM (SELECT DISTINCT #{column_name}" if use_workaround + sql << " FROM (SELECT #{distinct}#{column_name}" if use_workaround sql << " FROM #{connection.quote_table_name(table_name)} " if merged_includes.any? join_dependency = ActiveRecord::Associations::ClassMethods::JoinDependency.new(self, merged_includes, options[:joins])