aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorRizwan Reza <rizwanreza@gmail.com>2010-03-27 12:57:41 +0430
committerwycats <wycats@gmail.com>2010-03-27 01:33:42 -0700
commit41e5c7ed44fedb95636ef9b7a792c46ea03309bd (patch)
tree596ba598a895aa10b91890e842d0a4cee4bf653c /activerecord/test
parent68ade93cde3fcb3ac9fdfe0541d33d22c2c748d7 (diff)
downloadrails-41e5c7ed44fedb95636ef9b7a792c46ea03309bd.tar.gz
rails-41e5c7ed44fedb95636ef9b7a792c46ea03309bd.tar.bz2
rails-41e5c7ed44fedb95636ef9b7a792c46ea03309bd.zip
primary_key now supports :limit. [#876 state:resolved]
Signed-off-by: wycats <wycats@gmail.com>
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/schema_dumper_test.rb11
-rw-r--r--activerecord/test/schema/schema.rb4
2 files changed, 13 insertions, 2 deletions
diff --git a/activerecord/test/cases/schema_dumper_test.rb b/activerecord/test/cases/schema_dumper_test.rb
index 1c43e3c5b5..95039289c4 100644
--- a/activerecord/test/cases/schema_dumper_test.rb
+++ b/activerecord/test/cases/schema_dumper_test.rb
@@ -45,7 +45,7 @@ class SchemaDumperTest < ActiveRecord::TestCase
next if column_set.empty?
lengths = column_set.map do |column|
- if match = column.match(/t\.(?:integer|decimal|float|datetime|timestamp|time|date|text|binary|string|boolean)\s+"/)
+ if match = column.match(/t\.(?:integer|decimal|float|datetime|timestamp|time|date|text|binary|string|boolean|primary_key)\s+"/)
match[0].length
end
end
@@ -169,6 +169,13 @@ class SchemaDumperTest < ActiveRecord::TestCase
assert_match %r(:primary_key => "movieid"), match[1], "non-standard primary key not preserved"
end
+ def test_mysql_schema_dump_should_honor_primary_keys_limits
+ output = standard_dump
+ match = output.match(%r{create_table "primary_key_limit",.*?:id => false\b.*? do (.*?)\bend$}m)
+ assert_not_nil(match, output)
+ assert_match %r(t.primary_key\s+"id",\s+:limit => \d+$), match[1], "limit option not found on primary key"
+ end
+
if current_adapter?(:MysqlAdapter)
def test_schema_dump_should_not_add_default_value_for_mysql_text_field
output = standard_dump
@@ -211,7 +218,7 @@ class SchemaDumperTest < ActiveRecord::TestCase
if current_adapter?(:OracleAdapter)
assert_match %r{t.integer\s+"atoms_in_universe",\s+:precision => 38,\s+:scale => 0}, output
else
- assert_match %r{t.decimal\s+"atoms_in_universe",\s+:precision => 55,\s+:scale => 0}, output
+ assert_match %r{t.decimal\s+"atoms_in_universe",\s+:limit => 55,\s+:precision => 55,\s+:scale => 0}, output
end
end
diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb
index bec4291457..a1932ad16a 100644
--- a/activerecord/test/schema/schema.rb
+++ b/activerecord/test/schema/schema.rb
@@ -394,6 +394,10 @@ ActiveRecord::Schema.define do
t.integer :price
end
+ create_table :primary_key_limit, :force => true, :id => false do |t|
+ t.primary_key :id, :limit => 8
+ end
+
create_table :projects, :force => true do |t|
t.string :name
t.string :type