File tree Expand file tree Collapse file tree 2 files changed +21
-5
lines changed
lib/active_record/connection_adapters/sqlserver Expand file tree Collapse file tree 2 files changed +21
-5
lines changed Original file line number Diff line number Diff line change @@ -56,15 +56,15 @@ def rollback_db_transaction
5656 do_execute 'IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION'
5757 end
5858
59- def create_savepoint
60- disable_auto_reconnect { do_execute "SAVE TRANSACTION #{ current_savepoint_name } " }
59+ def create_savepoint ( name = current_savepoint_name )
60+ disable_auto_reconnect { do_execute "SAVE TRANSACTION #{ name } " }
6161 end
6262
63- def release_savepoint
63+ def release_savepoint ( name = current_savepoint_name )
6464 end
6565
66- def rollback_to_savepoint
67- disable_auto_reconnect { do_execute "ROLLBACK TRANSACTION #{ current_savepoint_name } " }
66+ def rollback_to_savepoint ( name = current_savepoint_name )
67+ disable_auto_reconnect { do_execute "ROLLBACK TRANSACTION #{ name } " }
6868 end
6969
7070 def add_limit_offset! ( _sql , _options )
Original file line number Diff line number Diff line change @@ -46,3 +46,19 @@ def assert_no_ships
4646
4747end
4848
49+ class TransactionTest < ActiveRecord ::TestCase
50+ include SqlserverCoercedTest
51+
52+ COERCED_TESTS = [ :test_releasing_named_savepoints ]
53+
54+ def test_coerced_releasing_named_savepoints
55+ Topic . transaction do
56+ Topic . connection . create_savepoint ( "another" )
57+ Topic . connection . release_savepoint ( "another" )
58+
59+ # The origin rails test tries to re-release the savepoint, but
60+ # since sqlserver doesn't have the concept of releasing, it doesn't
61+ # fail, so we just omit that part here
62+ end
63+ end
64+ end
You can’t perform that action at this time.
0 commit comments