aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorIan Lesperance <ilesperance@pivotallabs.com>2012-09-05 18:00:07 -0400
committerYves Senn <yves.senn@oxon.ch>2013-01-23 15:17:33 +0100
commitb6d49312920c0b3163064e44ca45871c68136b1c (patch)
treee084e35799a51a65eafb7d7da91ec76c3323883b /activerecord/test
parent2a5d119b44b1099c939bbf71c99fec5883d05ef7 (diff)
downloadrails-b6d49312920c0b3163064e44ca45871c68136b1c.tar.gz
rails-b6d49312920c0b3163064e44ca45871c68136b1c.tar.bz2
rails-b6d49312920c0b3163064e44ca45871c68136b1c.zip
Fix pluck when columns/tables are reserved words.
Backport #7536 to fix #8968. Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/relation/calculations.rb
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/calculations_test.rb11
-rw-r--r--activerecord/test/models/possession.rb3
-rw-r--r--activerecord/test/schema/schema.rb4
3 files changed, 16 insertions, 2 deletions
diff --git a/activerecord/test/cases/calculations_test.rb b/activerecord/test/cases/calculations_test.rb
index f931b39998..d677ecb763 100644
--- a/activerecord/test/cases/calculations_test.rb
+++ b/activerecord/test/cases/calculations_test.rb
@@ -1,10 +1,11 @@
require "cases/helper"
+require 'models/club'
require 'models/company'
require "models/contract"
-require 'models/topic'
require 'models/edge'
-require 'models/club'
require 'models/organization'
+require 'models/possession'
+require 'models/topic'
Company.has_many :accounts
@@ -503,4 +504,10 @@ class CalculationsTest < ActiveRecord::TestCase
Company.create!(:name => "test", :contracts => [Contract.new(:developer_id => 7)])
assert_equal [7], Company.joins(:contracts).pluck(:developer_id).map(&:to_i)
end
+
+ def test_pluck_with_reserved_words
+ Possession.create!(:where => "Over There")
+
+ assert_equal ["Over There"], Possession.pluck(:where)
+ end
end
diff --git a/activerecord/test/models/possession.rb b/activerecord/test/models/possession.rb
new file mode 100644
index 0000000000..ddf759113b
--- /dev/null
+++ b/activerecord/test/models/possession.rb
@@ -0,0 +1,3 @@
+class Possession < ActiveRecord::Base
+ self.table_name = 'having'
+end
diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb
index 1a993fef11..32982e4f82 100644
--- a/activerecord/test/schema/schema.rb
+++ b/activerecord/test/schema/schema.rb
@@ -281,6 +281,10 @@ ActiveRecord::Schema.define do
t.string :info
end
+ create_table :having, :force => true do |t|
+ t.string :where
+ end
+
create_table :guids, :force => true do |t|
t.column :key, :string
end