aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2016-02-12 23:49:05 +0900
committerRyuta Kamizono <kamipo@gmail.com>2016-03-08 08:51:26 +0900
commit51601f8889d08ee9336d6df9ea7598609578c40a (patch)
treed587ed0b2977f0617f59117cd2fda325c3df4daf /activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
parent70e7b87ddba726f5fd2eb7ef24b158baa8ea2193 (diff)
downloadrails-51601f8889d08ee9336d6df9ea7598609578c40a.tar.gz
rails-51601f8889d08ee9336d6df9ea7598609578c40a.tar.bz2
rails-51601f8889d08ee9336d6df9ea7598609578c40a.zip
Initialize `column.table_name` immediately for `column.serial?` correctly working
Currently the results of `column.serial?` is not correct. For `column.serial?` correctly working, initialize `column.table_name` immediately.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
index c65d33ccb3..cf2ad934a0 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -337,7 +337,8 @@ module ActiveRecord
end
# Returns an array of +Column+ objects for the table specified by +table_name+.
- def columns(table_name) #:nodoc:
+ def columns(table_name) # :nodoc:
+ table_name = table_name.to_s
table_structure(table_name).map do |field|
case field["dflt_value"]
when /^null$/i
@@ -351,7 +352,9 @@ module ActiveRecord
collation = field['collation']
sql_type = field['type']
type_metadata = fetch_type_metadata(sql_type)
- new_column(field['name'], field['dflt_value'], type_metadata, field['notnull'].to_i == 0, nil, collation)
+ new_column(field['name'], field['dflt_value'], type_metadata, field['notnull'].to_i == 0, nil, collation).tap do |column|
+ column.instance_variable_set(:@table_name, table_name)
+ end
end
end