aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
diff options
context:
space:
mode:
authorKir Shatrov <shatrov@me.com>2017-06-18 11:14:52 -0400
committerKir Shatrov <shatrov@me.com>2017-06-20 13:18:53 -0400
commit4ee42379cc30a07a7d47b7be8c710dba0efa407a (patch)
tree19f5e734b0751771edcb80050524760353928031 /activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
parent09cb26bc1e653999827cf3eb955d42a2c932b3f5 (diff)
downloadrails-4ee42379cc30a07a7d47b7be8c710dba0efa407a.tar.gz
rails-4ee42379cc30a07a7d47b7be8c710dba0efa407a.tar.bz2
rails-4ee42379cc30a07a7d47b7be8c710dba0efa407a.zip
Use bulk INSERT to insert fixtures
Improves the performance from O(n) to O(1). Previously it would require 50 queries to insert 50 fixtures. Now it takes only one query. Disabled on sqlite which doesn't support multiple inserts.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
index 7233325d5a..ee2faf43b5 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -349,6 +349,12 @@ module ActiveRecord
end
end
+ def insert_fixtures(rows, table_name)
+ rows.each do |row|
+ insert_fixture(row, table_name)
+ end
+ end
+
private
def table_structure(table_name)