activerecord-sqlserver-adapter 3.0.10 → 3.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG
CHANGED
@@ -106,7 +106,7 @@ module ActiveRecord
|
|
106
106
|
end
|
107
107
|
|
108
108
|
def remove_index!(table_name, index_name)
|
109
|
-
do_execute "DROP INDEX #{
|
109
|
+
do_execute "DROP INDEX #{quote_column_name(index_name)} ON #{quote_table_name(table_name)}"
|
110
110
|
end
|
111
111
|
|
112
112
|
def type_to_sql(type, limit = nil, precision = nil, scale = nil)
|
@@ -18,12 +18,13 @@ module ActiveRecord
|
|
18
18
|
|
19
19
|
def self.sqlserver_connection(config) #:nodoc:
|
20
20
|
config = config.dup.symbolize_keys!
|
21
|
-
config.reverse_merge! :mode => :
|
21
|
+
config.reverse_merge! :mode => :dblib, :host => 'localhost', :username => 'sa', :password => ''
|
22
22
|
mode = config[:mode].to_s.downcase.underscore.to_sym
|
23
23
|
case mode
|
24
24
|
when :dblib
|
25
25
|
raise ArgumentError, 'Missing :dataserver configuration.' unless config.has_key?(:dataserver)
|
26
26
|
require_library_or_gem 'tiny_tds'
|
27
|
+
warn("TinyTds v0.4.3 or higher required. Using #{TinyTds::VERSION}") unless TinyTds::Client.instance_methods.include?("active?")
|
27
28
|
when :odbc
|
28
29
|
raise ArgumentError, 'Missing :dsn configuration.' unless config.has_key?(:dsn)
|
29
30
|
if RUBY_VERSION < '1.9'
|
@@ -164,9 +165,9 @@ module ActiveRecord
|
|
164
165
|
include Sqlserver::Errors
|
165
166
|
|
166
167
|
ADAPTER_NAME = 'SQLServer'.freeze
|
167
|
-
VERSION = '3.0.
|
168
|
+
VERSION = '3.0.11'.freeze
|
168
169
|
DATABASE_VERSION_REGEXP = /Microsoft SQL Server\s+"?(\d{4}|\w+)"?/
|
169
|
-
SUPPORTED_VERSIONS = [2005,2008,2011].freeze
|
170
|
+
SUPPORTED_VERSIONS = [2005,2008,2010,2011].freeze
|
170
171
|
|
171
172
|
attr_reader :database_version, :database_year,
|
172
173
|
:connection_supports_native_types
|
@@ -181,8 +182,13 @@ module ActiveRecord
|
|
181
182
|
super(@connection, logger)
|
182
183
|
@database_version = info_schema_query { select_value('SELECT @@version') }
|
183
184
|
@database_year = begin
|
184
|
-
|
185
|
-
|
185
|
+
if @database_version =~ /Microsoft SQL Azure/i
|
186
|
+
@sqlserver_azure = true
|
187
|
+
@database_version.match(/\s(\d{4})\s/)[1].to_i
|
188
|
+
else
|
189
|
+
year = DATABASE_VERSION_REGEXP.match(@database_version)[1]
|
190
|
+
year == "Denali" ? 2011 : year.to_i
|
191
|
+
end
|
186
192
|
rescue
|
187
193
|
0
|
188
194
|
end
|
@@ -229,15 +235,10 @@ module ActiveRecord
|
|
229
235
|
# === Abstract Adapter (Connection Management) ================== #
|
230
236
|
|
231
237
|
def active?
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
true
|
237
|
-
else :adonet
|
238
|
-
true
|
239
|
-
end
|
240
|
-
return false if !connected
|
238
|
+
case @connection_options[:mode]
|
239
|
+
when :dblib
|
240
|
+
return @connection.active?
|
241
|
+
end
|
241
242
|
raw_connection_do("SELECT 1")
|
242
243
|
true
|
243
244
|
rescue *lost_connection_exceptions
|
@@ -294,6 +295,10 @@ module ActiveRecord
|
|
294
295
|
@database_year == 2011
|
295
296
|
end
|
296
297
|
|
298
|
+
def sqlserver_azure?
|
299
|
+
@sqlserver_azure && @database_year == 2010
|
300
|
+
end
|
301
|
+
|
297
302
|
def version
|
298
303
|
self.class::VERSION
|
299
304
|
end
|
@@ -315,11 +320,11 @@ module ActiveRecord
|
|
315
320
|
end
|
316
321
|
|
317
322
|
def native_time_database_type
|
318
|
-
|
323
|
+
sqlserver_2005? ? 'datetime' : 'time'
|
319
324
|
end
|
320
325
|
|
321
326
|
def native_date_database_type
|
322
|
-
|
327
|
+
sqlserver_2005? ? 'datetime' : 'date'
|
323
328
|
end
|
324
329
|
|
325
330
|
def native_binary_database_type
|
@@ -366,11 +371,22 @@ module ActiveRecord
|
|
366
371
|
:appname => appname,
|
367
372
|
:login_timeout => login_timeout,
|
368
373
|
:timeout => timeout,
|
369
|
-
:encoding => encoding
|
374
|
+
:encoding => encoding,
|
375
|
+
:azure => config[:azure]
|
370
376
|
}).tap do |client|
|
371
|
-
|
372
|
-
|
373
|
-
|
377
|
+
if config[:azure]
|
378
|
+
client.execute("SET ANSI_NULLS ON").do
|
379
|
+
client.execute("SET CURSOR_CLOSE_ON_COMMIT OFF").do
|
380
|
+
client.execute("SET ANSI_NULL_DFLT_ON ON").do
|
381
|
+
client.execute("SET IMPLICIT_TRANSACTIONS OFF").do
|
382
|
+
client.execute("SET ANSI_PADDING ON").do
|
383
|
+
client.execute("SET QUOTED_IDENTIFIER ON")
|
384
|
+
client.execute("SET ANSI_WARNINGS ON").do
|
385
|
+
else
|
386
|
+
client.execute("SET ANSI_DEFAULTS ON").do
|
387
|
+
client.execute("SET CURSOR_CLOSE_ON_COMMIT OFF").do
|
388
|
+
client.execute("SET IMPLICIT_TRANSACTIONS OFF").do
|
389
|
+
end
|
374
390
|
end
|
375
391
|
when :odbc
|
376
392
|
odbc = ['::ODBC','::ODBC_UTF8','::ODBC_NONE'].detect{ |odbc_ns| odbc_ns.constantize rescue nil }.constantize
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-sqlserver-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 3.0.
|
9
|
+
- 11
|
10
|
+
version: 3.0.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ken Collins
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2011-
|
22
|
+
date: 2011-04-01 00:00:00 -04:00
|
23
23
|
default_executable:
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
108
|
requirements: []
|
109
109
|
|
110
110
|
rubyforge_project: activerecord-sqlserver-adapter
|
111
|
-
rubygems_version: 1.
|
111
|
+
rubygems_version: 1.6.2
|
112
112
|
signing_key:
|
113
113
|
specification_version: 3
|
114
114
|
summary: SQL Server 2005 and 2008 Adapter For ActiveRecord.
|