Module: ActiveRecord::ConnectionAdapters::CockroachDB::DatabaseStatements
- Included in:
- ActiveRecord::ConnectionAdapters::CockroachDBAdapter
- Defined in:
- lib/active_record/connection_adapters/cockroachdb/database_statements.rb
Instance Method Summary collapse
-
#insert_fixtures_set(fixture_set, tables_to_delete = []) ⇒ Object
Overridden to avoid using transactions for schema creation.
-
#transaction_isolation_levels ⇒ Object
Since CockroachDB will run all transactions with serializable isolation, READ UNCOMMITTED, READ COMMITTED, and REPEATABLE READ are all aliases for SERIALIZABLE.
Instance Method Details
#insert_fixtures_set(fixture_set, tables_to_delete = []) ⇒ Object
Overridden to avoid using transactions for schema creation.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/active_record/connection_adapters/cockroachdb/database_statements.rb', line 20 def insert_fixtures_set(fixture_set, tables_to_delete = []) fixture_inserts = build_fixture_statements(fixture_set) table_deletes = tables_to_delete.map { |table| "DELETE FROM #{quote_table_name(table)}" } statements = table_deletes + fixture_inserts with_multi_statements do disable_referential_integrity do execute_batch(statements, "Fixtures Load") end end end |
#transaction_isolation_levels ⇒ Object
Since CockroachDB will run all transactions with serializable isolation, READ UNCOMMITTED, READ COMMITTED, and REPEATABLE READ are all aliases for SERIALIZABLE. This lets the adapter support all isolation levels, but READ UNCOMMITTED has been removed from this list because the ActiveRecord transaction isolation test fails for READ UNCOMMITTED. See www.cockroachlabs.com/docs/v19.2/transactions.html#isolation-levels
11 12 13 14 15 16 17 |
# File 'lib/active_record/connection_adapters/cockroachdb/database_statements.rb', line 11 def transaction_isolation_levels { read_committed: "READ COMMITTED", repeatable_read: "REPEATABLE READ", serializable: "SERIALIZABLE" } end |