aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRick Olson <technoweenie@gmail.com>2007-10-20 21:17:31 +0000
committerRick Olson <technoweenie@gmail.com>2007-10-20 21:17:31 +0000
commit7042163d7633c1d453bcbed127d42ea27da6b939 (patch)
tree4ae064b8dbfb4433fd0ded03999574a0082138a7 /activerecord
parentc9fecf20ffb051ebc9270bfd787fd2964349d19a (diff)
downloadrails-7042163d7633c1d453bcbed127d42ea27da6b939.tar.gz
rails-7042163d7633c1d453bcbed127d42ea27da6b939.tar.bz2
rails-7042163d7633c1d453bcbed127d42ea27da6b939.zip
Ensure that mysql quotes table names with database names correctly. Closes #9911 [crayz]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7980 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG4
-rwxr-xr-xactiverecord/lib/active_record/connection_adapters/mysql_adapter.rb2
-rw-r--r--activerecord/test/active_schema_test_mysql.rb4
3 files changed, 9 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index 4b962e43a8..796c7274a7 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,9 @@
*SVN*
+* Ensure that mysql quotes table names with database names correctly. Closes #9911 [crayz]
+
+ "foo.bar" => "`foo`.`bar`"
+
* Complete the assimilation of Sexy Migrations from ErrFree [Chris Wanstrath, PJ Hyett]
http://errtheblog.com/post/2381
diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
index 6ef7bb5b1a..65faa80065 100755
--- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -209,7 +209,7 @@ module ActiveRecord
end
def quote_table_name(name) #:nodoc:
- quote_column_name(name)
+ quote_column_name(name).gsub('.', '`.`')
end
def quote_string(string) #:nodoc:
diff --git a/activerecord/test/active_schema_test_mysql.rb b/activerecord/test/active_schema_test_mysql.rb
index aa1d712409..673c86c7ce 100644
--- a/activerecord/test/active_schema_test_mysql.rb
+++ b/activerecord/test/active_schema_test_mysql.rb
@@ -32,6 +32,10 @@ class ActiveSchemaTest < Test::Unit::TestCase
assert_equal "ALTER TABLE `people` ADD `key` varchar(32)", add_column(:people, :key, :string, :limit => 32)
end
+ def test_drop_table_with_specific_database
+ assert_equal "DROP TABLE `otherdb`.`people`", drop_table('otherdb.people')
+ end
+
private
def method_missing(method_symbol, *arguments)
ActiveRecord::Base.connection.send(method_symbol, *arguments)