From c70ae89d313833c299762708ff080d8d8a5f700e Mon Sep 17 00:00:00 2001 From: Kali Donovan Date: Thu, 5 Feb 2015 16:00:03 -0800 Subject: [PATCH 1/2] Handle leading spaces in the SQL --- .../connection_adapters/makara_abstract_adapter.rb | 8 ++++---- .../connection_adapters/makara_abstract_adapter_spec.rb | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/active_record/connection_adapters/makara_abstract_adapter.rb b/lib/active_record/connection_adapters/makara_abstract_adapter.rb index 082cc840..d7d06cfa 100644 --- a/lib/active_record/connection_adapters/makara_abstract_adapter.rb +++ b/lib/active_record/connection_adapters/makara_abstract_adapter.rb @@ -100,10 +100,10 @@ def custom_error_message?(connection, message) hijack_method :execute, :select_rows, :exec_query send_to_all :connect, :disconnect!, :reconnect!, :verify!, :clear_cache!, :reset! - SQL_MASTER_MATCHERS = [/^select.+for update$/i, /select.+lock in share mode$/i].map(&:freeze).freeze - SQL_SLAVE_MATCHERS = [/^select\s/i].map(&:freeze).freeze - SQL_ALL_MATCHERS = [/^set\s/i].map(&:freeze).freeze - SQL_SKIP_STICKINESS_MATCHERS = [/^show\s([\w]+\s)?(field|table|database|schema|view|index)(es|s)?/i, /^(set|describe|explain|pragma)\s/i].map(&:freeze).freeze + SQL_MASTER_MATCHERS = [/^\s*select.+for update$/i, /select.+lock in share mode$/i].map(&:freeze).freeze + SQL_SLAVE_MATCHERS = [/^\s*select\s/i].map(&:freeze).freeze + SQL_ALL_MATCHERS = [/^\s*set\s/i].map(&:freeze).freeze + SQL_SKIP_STICKINESS_MATCHERS = [/^\s*show\s([\w]+\s)?(field|table|database|schema|view|index)(es|s)?/i, /^(set|describe|explain|pragma)\s/i].map(&:freeze).freeze def sql_master_matchers diff --git a/spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb b/spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb index d4fab9fe..3a436518 100644 --- a/spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb +++ b/spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb @@ -21,7 +21,9 @@ 'set @@things' => true, 'commit' => true, 'select * from felines' => false, + ' select * from felines' => false, 'select * from users for update' => true, + ' select * from users for update' => true, 'select * from users lock in share mode' => true, 'select * from users where name = "for update"' => false, 'select * from users where name = "lock in share mode"' => false From 976091d7e5598f1d07ae6ab53d50f98885080a92 Mon Sep 17 00:00:00 2001 From: Kali Donovan Date: Thu, 5 Feb 2015 16:52:10 -0800 Subject: [PATCH 2/2] CR: fixing missed regex --- .../connection_adapters/makara_abstract_adapter.rb | 2 +- spec/middleware_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/active_record/connection_adapters/makara_abstract_adapter.rb b/lib/active_record/connection_adapters/makara_abstract_adapter.rb index d7d06cfa..f160a305 100644 --- a/lib/active_record/connection_adapters/makara_abstract_adapter.rb +++ b/lib/active_record/connection_adapters/makara_abstract_adapter.rb @@ -103,7 +103,7 @@ def custom_error_message?(connection, message) SQL_MASTER_MATCHERS = [/^\s*select.+for update$/i, /select.+lock in share mode$/i].map(&:freeze).freeze SQL_SLAVE_MATCHERS = [/^\s*select\s/i].map(&:freeze).freeze SQL_ALL_MATCHERS = [/^\s*set\s/i].map(&:freeze).freeze - SQL_SKIP_STICKINESS_MATCHERS = [/^\s*show\s([\w]+\s)?(field|table|database|schema|view|index)(es|s)?/i, /^(set|describe|explain|pragma)\s/i].map(&:freeze).freeze + SQL_SKIP_STICKINESS_MATCHERS = [/^\s*show\s([\w]+\s)?(field|table|database|schema|view|index)(es|s)?/i, /^\s*(set|describe|explain|pragma)\s/i].map(&:freeze).freeze def sql_master_matchers diff --git a/spec/middleware_spec.rb b/spec/middleware_spec.rb index 5f2b5521..e7579b00 100644 --- a/spec/middleware_spec.rb +++ b/spec/middleware_spec.rb @@ -56,7 +56,7 @@ status, headers, body = middleware.call(env) - expect(headers['Set-Cookie']).to eq("#{key}=#{Makara::Context.get_current}--200; path=/; max-age=5") + expect(headers['Set-Cookie']).to eq("#{key}=#{Makara::Context.get_current}--200; path=/; max-age=5; HttpOnly") end it 'should preserve the same context if the previous request was a redirect' do