Skip to content

Commit 32ff392

Browse files
committed
Leave quoted column names as is. Resolves ticket #36 [Vince Puzzella]
1 parent cfad9bf commit 32ff392

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

CHANGELOG

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
MASTER
33

4+
* Leave quoted column names as is. Resolves ticket #36 [Vince Puzzella]
5+
46
* Changing add_limit! in ActiveRecord::Base for SQLServer so that it passes through any scoped :order
57
parameters. Resolves ticket #35 [Murray Steele]
68

lib/active_record/connection_adapters/sqlserver_adapter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ def quote_string(string)
309309
end
310310

311311
def quote_column_name(column_name)
312-
column_name.to_s.split('.').map{ |name| "[#{name}]" }.join('.')
312+
column_name.to_s.split('.').map{ |name| name =~ /^\[.*\]$/ ? name : "[#{name}]" }.join('.')
313313
end
314314

315315
def quote_table_name(table_name)

test/cases/adapter_test_sqlserver.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,11 @@ def setup
372372
assert_equal '[foo].[bar]', @connection.quote_column_name('foo.bar')
373373
end
374374

375+
should 'not quote already quoted column names with brackets' do
376+
assert_equal '[foo]', @connection.quote_column_name('[foo]')
377+
assert_equal '[foo].[bar]', @connection.quote_column_name('[foo].[bar]')
378+
end
379+
375380
should 'quote table names like columns' do
376381
assert_equal '[foo].[bar]', @connection.quote_column_name('foo.bar')
377382
assert_equal '[foo].[bar].[baz]', @connection.quote_column_name('foo.bar.baz')

0 commit comments

Comments
 (0)