From 72737e8c07d84675559f215ec10c74684d08ec96 Mon Sep 17 00:00:00 2001 From: Aidan Haran Date: Tue, 24 Mar 2020 17:08:19 +0000 Subject: [PATCH] Quoted table names containing square brackets need to be regex escaped Use method from Rails master --- .../sqlserver/core_ext/query_methods.rb | 26 +++++++++++++++++++ .../connection_adapters/sqlserver_adapter.rb | 1 + 2 files changed, 27 insertions(+) create mode 100644 lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb diff --git a/lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb b/lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb new file mode 100644 index 000000000..b9f4529dd --- /dev/null +++ b/lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb @@ -0,0 +1,26 @@ +require 'active_record/relation' +require 'active_record/version' + +module ActiveRecord + module ConnectionAdapters + module SQLServer + module CoreExt + module QueryMethods + + private + + # Copy of original from Rails master. This patch can be removed when adapter supports Rails 6. + def table_name_matches?(from) + table_name = Regexp.escape(table.name) + quoted_table_name = Regexp.escape(connection.quote_table_name(table.name)) + /(?:\A|(?