- Enable partial writes (default)
$ ARCONN=oracle bin/test test/cases/attribute_methods_test.rb:120
Using oracle
Run options: --seed 2180
# Running:
E
Error:
AttributeMethodsTest#test_integers_as_nil:
NotImplementedError: NotImplementedError
/home/yahonda/git/oracle-enhanced/lib/active_record/connection_adapters/oracle_enhanced/database_statements.rb:252:in `empty_insert_statement_value'
/home/yahonda/git/rails/activerecord/lib/active_record/persistence.rb:182:in `_insert_record'
/home/yahonda/git/rails/activerecord/lib/active_record/persistence.rb:724:in `_create_record'
/home/yahonda/git/rails/activerecord/lib/active_record/counter_cache.rb:180:in `_create_record'
/home/yahonda/git/rails/activerecord/lib/active_record/locking/optimistic.rb:77:in `_create_record'
/home/yahonda/git/rails/activerecord/lib/active_record/attribute_methods/dirty.rb:135:in `_create_record'
/home/yahonda/git/rails/activerecord/lib/active_record/callbacks.rb:342:in `block in _create_record'
/home/yahonda/git/rails/activesupport/lib/active_support/callbacks.rb:132:in `run_callbacks'
/home/yahonda/git/rails/activesupport/lib/active_support/callbacks.rb:816:in `_run_create_callbacks'
/home/yahonda/git/rails/activerecord/lib/active_record/callbacks.rb:342:in `_create_record'
/home/yahonda/git/rails/activerecord/lib/active_record/timestamp.rb:95:in `_create_record'
/home/yahonda/git/rails/activerecord/lib/active_record/persistence.rb:698:in `create_or_update'
/home/yahonda/git/rails/activerecord/lib/active_record/callbacks.rb:338:in `block in create_or_update'
/home/yahonda/git/rails/activesupport/lib/active_support/callbacks.rb:98:in `run_callbacks'
/home/yahonda/git/rails/activesupport/lib/active_support/callbacks.rb:816:in `_run_save_callbacks'
/home/yahonda/git/rails/activerecord/lib/active_record/callbacks.rb:338:in `create_or_update'
/home/yahonda/git/rails/activerecord/lib/active_record/persistence.rb:264:in `save'
/home/yahonda/git/rails/activerecord/lib/active_record/validations.rb:46:in `save'
/home/yahonda/git/rails/activerecord/lib/active_record/transactions.rb:310:in `block (2 levels) in save'
/home/yahonda/git/rails/activerecord/lib/active_record/transactions.rb:386:in `block in with_transaction_returning_status'
/home/yahonda/git/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:254:in `block in transaction'
/home/yahonda/git/rails/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:230:in `block in within_new_transaction'
/home/yahonda/.rbenv/versions/2.5.0/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
/home/yahonda/git/rails/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:227:in `within_new_transaction'
/home/yahonda/git/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:254:in `transaction'
/home/yahonda/git/rails/activerecord/lib/active_record/transactions.rb:212:in `transaction'
/home/yahonda/git/rails/activerecord/lib/active_record/transactions.rb:383:in `with_transaction_returning_status'
/home/yahonda/git/rails/activerecord/lib/active_record/transactions.rb:310:in `block in save'
/home/yahonda/git/rails/activerecord/lib/active_record/transactions.rb:325:in `rollback_active_record_state!'
/home/yahonda/git/rails/activerecord/lib/active_record/transactions.rb:309:in `save'
/home/yahonda/git/rails/activerecord/lib/active_record/suppressor.rb:44:in `save'
/home/yahonda/git/rails/activerecord/lib/active_record/persistence.rb:36:in `create'
/home/yahonda/git/rails/activerecord/test/cases/attribute_methods_test.rb:121:in `block in <class:AttributeMethodsTest>'
bin/test test/cases/attribute_methods_test.rb:120
Finished in 7.946230s, 0.1258 runs/s, 0.0000 assertions/s.
1 runs, 0 assertions, 0 failures, 1 errors, 0 skips
$
- Disable partial writes
[yahonda@li1885-190 activerecord (disable_partial_writes_for_auto_id)]$ git diff master
diff --git a/activerecord/test/models/auto_id.rb b/activerecord/test/models/auto_id.rb
index fd672603bb..19ec8e9943 100644
--- a/activerecord/test/models/auto_id.rb
+++ b/activerecord/test/models/auto_id.rb
@@ -1,6 +1,7 @@
# frozen_string_literal: true
class AutoId < ActiveRecord::Base
+ self.partial_writes = false
self.table_name = "auto_id_tests"
self.primary_key = "auto_id"
end
$
ARCONN=oracle bin/test test/cases/attribute_methods_test.rb:120
Using oracle
Run options: --seed 33252
Running:
.
Finished in 8.774488s, 0.1140 runs/s, 0.1140 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
$
- SQL statement generated after disabling partial writes
AutoId Create (40.3ms) INSERT INTO "AUTO_ID_TESTS" ("VALUE") VALUES (:a1) RETURNING "AUTO_ID" INTO :returning_id [["value", nil], ["returning_id", nil]]
Note: Here RETURNING ... INTO
is due to incorrect condition at poc_identity
AUTO_ID_TESTS
table definition
SQL> desc auto_id_tests
Name Null? Type
----------------------------------------- -------- ----------------------------
AUTO_ID NOT NULL NUMBER(38)
VALUE NUMBER(38)
SQL>