Skip to content

Commit bb7d519

Browse files
committed
Merge pull request #145 from ManageIQ/detailed_database_version
Add methods for sqlserver's productversion, productlevel, edition and include them in inspect.
2 parents 03bbb98 + bf755b5 commit bb7d519

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

lib/active_record/connection_adapters/sqlserver_adapter.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,8 +323,20 @@ def version
323323
self.class::VERSION
324324
end
325325

326+
def product_level
327+
@product_level ||= info_schema_query { select_value("SELECT CAST(SERVERPROPERTY('productlevel') AS VARCHAR(128))")}
328+
end
329+
330+
def product_version
331+
@product_version ||= info_schema_query { select_value("SELECT CAST(SERVERPROPERTY('productversion') AS VARCHAR(128))")}
332+
end
333+
334+
def edition
335+
@edition ||= info_schema_query { select_value("SELECT CAST(SERVERPROPERTY('edition') AS VARCHAR(128))")}
336+
end
337+
326338
def inspect
327-
"#<#{self.class} version: #{version}, year: #{@database_year}, connection_options: #{@connection_options.inspect}>"
339+
"#<#{self.class} version: #{version}, year: #{@database_year}, product_level: #{product_level.inspect}, product_version: #{product_version.inspect}, edition: #{edition.inspect}, connection_options: #{@connection_options.inspect}>"
328340
end
329341

330342
def auto_connect

test/cases/adapter_test_sqlserver.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,30 @@ def setup
4141
assert_match(/version\: \d.\d/,@connection.inspect)
4242
end
4343

44+
should 'include database product level in inspect' do
45+
assert_match(/product_level\: "\w+/, @connection.inspect)
46+
end
47+
48+
should 'include database product version in inspect' do
49+
assert_match(/product_version\: "\d+/, @connection.inspect)
50+
end
51+
52+
should 'include database edition in inspect' do
53+
assert_match(/edition\: "\w+/, @connection.inspect)
54+
end
55+
56+
should 'set database product level' do
57+
assert_match(/\w+/, @connection.product_level)
58+
end
59+
60+
should 'set database product version' do
61+
assert_match(/\d+/, @connection.product_version)
62+
end
63+
64+
should 'set database edition' do
65+
assert_match(/\w+/, @connection.edition)
66+
end
67+
4468
should 'support migrations' do
4569
assert @connection.supports_migrations?
4670
end

0 commit comments

Comments
 (0)