activerecord-sqlserver-adapter 2.3.22 → 2.3.23

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
@@ -1,4 +1,13 @@
1
1
 
2
+ * 2.3.23 *
3
+
4
+ * Create a #configure_connection method that can be overridden. Think "SET TEXTSIZE...".
5
+
6
+ * Fixed the #finish_statement_handle to cancel the TinyTDS connection if needed.
7
+
8
+ * Fix the #indexes method to fail gracefully if sp_helptext permissions fail.
9
+
10
+
2
11
  * 2.3.22 *
3
12
 
4
13
  * Make #rollback_db_transaction smarter.
@@ -147,7 +147,7 @@ module ActiveRecord
147
147
  class SQLServerAdapter < AbstractAdapter
148
148
 
149
149
  ADAPTER_NAME = 'SQLServer'.freeze
150
- VERSION = '2.3.22'.freeze
150
+ VERSION = '2.3.23'.freeze
151
151
  DATABASE_VERSION_REGEXP = /Microsoft SQL Server\s+(\d{4})/
152
152
  SUPPORTED_VERSIONS = [2000,2005,2008].freeze
153
153
  LIMITABLE_TYPES = ['string','integer','float','char','nchar','varchar','nvarchar'].to_set.freeze
@@ -612,7 +612,8 @@ module ActiveRecord
612
612
 
613
613
  def indexes(table_name, name = nil)
614
614
  unquoted_table_name = unqualify_table_name(table_name)
615
- select("EXEC sp_helpindex #{quote_table_name(unquoted_table_name)}",name).inject([]) do |indexes,index|
615
+ data = select("EXEC sp_helpindex #{quote_table_name(unquoted_table_name)}",name) rescue []
616
+ data.inject([]) do |indexes,index|
616
617
  index = index.with_indifferent_access
617
618
  if index[:index_description] =~ /primary key/
618
619
  indexes
@@ -867,10 +868,18 @@ module ActiveRecord
867
868
  connection.open
868
869
  end
869
870
  end
871
+ configure_connection
870
872
  rescue
871
873
  raise unless @auto_connecting
872
874
  end
873
875
 
876
+ # Override this method so every connection can be configured to your needs.
877
+ # For example:
878
+ # do_execute "SET TEXTSIZE #{64.megabytes}"
879
+ # do_execute "SET CONCAT_NULL_YIELDS_NULL ON"
880
+ def configure_connection
881
+ end
882
+
874
883
  def lost_connection_exceptions
875
884
  exceptions = LOST_CONNECTION_EXCEPTIONS[@connection_options[:mode]]
876
885
  @lost_connection_exceptions ||= exceptions ? exceptions.map(&:constantize) : []
@@ -934,6 +943,7 @@ module ActiveRecord
934
943
  def finish_statement_handle(handle)
935
944
  case @connection_options[:mode]
936
945
  when :dblib
946
+ handle.cancel if handle
937
947
  when :odbc
938
948
  handle.drop if handle && handle.respond_to?(:drop) && !handle.finished?
939
949
  when :adonet
@@ -23,6 +23,7 @@ require 'active_record/version'
23
23
  GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly?)
24
24
 
25
25
  ActiveRecord::Migration.verbose = false
26
+ ActiveRecord::ConnectionAdapters::SQLServerAdapter.log_info_schema_queries = true
26
27
 
27
28
  # Defining our classes in one place as well as soem core tests that need coercing date/time types.
28
29
 
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: 47
4
+ hash: 45
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 3
9
- - 22
10
- version: 2.3.22
9
+ - 23
10
+ version: 2.3.23
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-10-04 00:00:00 -04:00
22
+ date: 2011-10-23 00:00:00 -04:00
23
23
  default_executable:
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency