]> source.dussan.org Git - redmine.git/commitdiff
Fixed dead locks with SQLServer.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 7 Jan 2015 20:57:52 +0000 (20:57 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 7 Jan 2015 20:57:52 +0000 (20:57 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@13844 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/nested_set/issue_nested_set.rb

index 5a6af9440f277eb0d174cff25658c0a3039e4f66..9d525293f0f887f2fc88b7765bbefd52f519fd1f 100644 (file)
@@ -153,8 +153,8 @@ module Redmine
         if self.class.connection.adapter_name =~ /sqlserver/i
           lock = "WITH (ROWLOCK HOLDLOCK UPDLOCK)"
         end
-        sets_to_lock = [id, parent_id].compact
-        self.class.reorder(:id).where("root_id IN (SELECT root_id FROM #{self.class.table_name} WHERE id IN (?))", sets_to_lock).lock(lock).ids
+        sets_to_lock = [root_id, parent.try(:root_id)].compact.uniq
+        self.class.reorder(:id).where(:root_id => sets_to_lock).lock(lock).ids
       end
 
       def nested_set_scope