aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/active_schema_test_mysql.rb
diff options
context:
space:
mode:
authorEmili Parreno <emili@eparreno.com>2010-05-08 12:35:39 +0100
committerPratik Naik <pratiknaik@gmail.com>2010-05-08 12:39:46 +0100
commit5b95730edc33ee97f53da26a3868eb983305a771 (patch)
treeec4f10dd6d8c2048b1a6770d62bb11fc6bfd0702 /activerecord/test/cases/active_schema_test_mysql.rb
parent9aaef5935660ba13531512fb7def4b8bdf14511d (diff)
downloadrails-5b95730edc33ee97f53da26a3868eb983305a771.tar.gz
rails-5b95730edc33ee97f53da26a3868eb983305a771.tar.bz2
rails-5b95730edc33ee97f53da26a3868eb983305a771.zip
Add index length support for MySQL [#1852 state:resolved]
Example: add_index(:accounts, :name, :name => 'by_name', :length => 10) => CREATE INDEX by_name ON accounts(name(10)) add_index(:accounts, [:name, :surname], :name => 'by_name_surname', :length => {:name => 10, :surname => 15}) => CREATE INDEX by_name_surname ON accounts(name(10), surname(15)) Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'activerecord/test/cases/active_schema_test_mysql.rb')
-rw-r--r--activerecord/test/cases/active_schema_test_mysql.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/activerecord/test/cases/active_schema_test_mysql.rb b/activerecord/test/cases/active_schema_test_mysql.rb
index 9aff538ce9..f4d123be15 100644
--- a/activerecord/test/cases/active_schema_test_mysql.rb
+++ b/activerecord/test/cases/active_schema_test_mysql.rb
@@ -15,6 +15,23 @@ class ActiveSchemaTest < ActiveRecord::TestCase
end
end
+ def test_add_index
+ expected = "CREATE INDEX `index_people_on_last_name` ON `people` (`last_name`)"
+ assert_equal expected, add_index(:people, :last_name, :length => nil)
+
+ expected = "CREATE INDEX `index_people_on_last_name` ON `people` (`last_name`(10))"
+ assert_equal expected, add_index(:people, :last_name, :length => 10)
+
+ expected = "CREATE INDEX `index_people_on_last_name_and_first_name` ON `people` (`last_name`(15), `first_name`(15))"
+ assert_equal expected, add_index(:people, [:last_name, :first_name], :length => 15)
+
+ expected = "CREATE INDEX `index_people_on_last_name_and_first_name` ON `people` (`last_name`(15), `first_name`)"
+ assert_equal expected, add_index(:people, [:last_name, :first_name], :length => {:last_name => 15})
+
+ expected = "CREATE INDEX `index_people_on_last_name_and_first_name` ON `people` (`last_name`(15), `first_name`(10))"
+ assert_equal expected, add_index(:people, [:last_name, :first_name], :length => {:last_name => 15, :first_name => 10})
+ end
+
def test_drop_table
assert_equal "DROP TABLE `people`", drop_table(:people)
end