From 30e3eff77c39d99d87c671bfca95d30d287b511a Mon Sep 17 00:00:00 2001 From: Don Bowman Date: Sun, 1 Sep 2019 12:42:40 -0400 Subject: [PATCH] fix: make select...for update locks be a no-op on cockroachdb In Cockroachdb there is no select for update (see https://github.com/cockroachdb/cockroach/issues/6583) But it is not needed, make it a no-op. --- .../connection_adapters/cockroachdb/lock.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 lib/core_ext/active_record/connection_adapters/cockroachdb/lock.rb diff --git a/lib/core_ext/active_record/connection_adapters/cockroachdb/lock.rb b/lib/core_ext/active_record/connection_adapters/cockroachdb/lock.rb new file mode 100644 index 000000000000..f95cba0f0ced --- /dev/null +++ b/lib/core_ext/active_record/connection_adapters/cockroachdb/lock.rb @@ -0,0 +1,12 @@ +# Cockroachdb does not implement the locking of select...for update. +# but, it doesn't need it since it uses serialised updates. So +# we make it a no-op +# https://github.com/cockroachdb/activerecord-cockroachdb-adapter/issues/21 +module ActiveRecord + class Base + def lock!(lock = true) + super(lock) unless self.class.connection.class.to_s == 'ActiveRecord::ConnectionAdapters::CockroachDBAdapter' + end + end +end +