diff --git a/CHANGELOG b/CHANGELOG index ce82ca249..20b079da7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,9 @@ MASTER +* Default value detection in column_definitions is kinder to badly formatted, or long winded user + defined functions, for default values. Resolves ticket #8 [Ken Collins] + * Make sure bigint SQL Server data type can be used and converted back to Bignum as expected. [Ken Collins] diff --git a/lib/active_record/connection_adapters/sqlserver_adapter.rb b/lib/active_record/connection_adapters/sqlserver_adapter.rb index 23c0dfde4..0227e2432 100644 --- a/lib/active_record/connection_adapters/sqlserver_adapter.rb +++ b/lib/active_record/connection_adapters/sqlserver_adapter.rb @@ -1081,7 +1081,8 @@ def column_definitions(table_name) when nil, '(null)', '(NULL)' nil else - ci[:default_value].match(/\A\(+N?'?(.*?)'?\)+\Z/)[1] + match_data = ci[:default_value].match(/\A\(+N?'?(.*?)'?\)+\Z/) + match_data ? match_data[1] : nil end ci[:null] = ci[:is_nullable].to_i == 1 ; ci.delete(:is_nullable) ci