diff options
author | Mauricio Linhares <mauricio.linhares@gmail.com> | 2014-01-29 01:56:20 -0300 |
---|---|---|
committer | Mauricio Linhares <mauricio.linhares@gmail.com> | 2014-01-29 12:37:00 -0300 |
commit | 66e533f9b13f2ea1f56a19246af55621cc368489 (patch) | |
tree | 7f63409243031eaaea72dad8b32ab1f980238a64 /activerecord/test | |
parent | f142527eb30626904cb1e655a1a28801f08b8acf (diff) | |
download | rails-66e533f9b13f2ea1f56a19246af55621cc368489.tar.gz rails-66e533f9b13f2ea1f56a19246af55621cc368489.tar.bz2 rails-66e533f9b13f2ea1f56a19246af55621cc368489.zip |
Correctly send the string given to lock! and reload(:lock) to the lock scope - fixes #13788
As per the documentation at lock!, if the :lock option is a string it should use the given SQL to generate the lock statement.
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/locking_test.rb | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/activerecord/test/cases/locking_test.rb b/activerecord/test/cases/locking_test.rb index a16ed963fe..c373dc1511 100644 --- a/activerecord/test/cases/locking_test.rb +++ b/activerecord/test/cases/locking_test.rb @@ -431,6 +431,17 @@ unless current_adapter?(:SybaseAdapter, :OpenBaseAdapter) || in_memory_db? assert_equal old, person.reload.first_name end + if current_adapter?(:PostgreSQLAdapter) + def test_lock_sending_custom_lock_statement + Person.transaction do + person = Person.find(1) + assert_sql(/LIMIT 1 FOR SHARE NOWAIT/) do + person.lock!('FOR SHARE NOWAIT') + end + end + end + end + if current_adapter?(:PostgreSQLAdapter, :OracleAdapter) def test_no_locks_no_wait first, second = duel { Person.find 1 } |