Skip to content

Commit 2f14a8e

Browse files
committed
[Rails3] Sync abstract adapter directory structure - DatabaseLimits
1 parent 8b5594b commit 2f14a8e

File tree

3 files changed

+55
-15
lines changed

3 files changed

+55
-15
lines changed

activerecord-sqlserver-adapter.gemspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ Gem::Specification.new do |s|
2121
"lib/activerecord-sqlserver-adapter.rb",
2222
"lib/active_record/connection_adapters/sqlserver_adapter.rb",
2323
"lib/active_record/connection_adapters/sqlserver_adapter/core_ext/active_record.rb",
24-
"lib/active_record/connection_adapters/sqlserver_adapter/core_ext/odbc.rb" ]
24+
"lib/active_record/connection_adapters/sqlserver_adapter/core_ext/odbc.rb",
25+
"lib/active_record/connection_adapters/sqlserver_adapter/database_limits.rb" ]
2526
s.test_files = [
2627
"test/cases/aaaa_create_tables_test_sqlserver.rb",
2728
"test/cases/adapter_test_sqlserver.rb",

lib/active_record/connection_adapters/sqlserver_adapter.rb

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
require 'active_record'
22
require 'active_record/connection_adapters/abstract_adapter'
33
require 'active_record/connection_adapters/sqlserver_adapter/core_ext/active_record'
4+
require 'active_record/connection_adapters/sqlserver_adapter/database_limits'
5+
require 'active_support/core_ext/kernel/requires'
46
require 'base64'
57

68
module ActiveRecord
@@ -13,7 +15,6 @@ def self.sqlserver_connection(config) #:nodoc:
1315
mode = config[:mode].to_s.downcase.underscore.to_sym
1416
case mode
1517
when :odbc
16-
require 'active_support/core_ext/kernel/requires'
1718
require_library_or_gem 'odbc' unless defined?(ODBC)
1819
require 'active_record/connection_adapters/sqlserver_adapter/core_ext/odbc'
1920
raise ArgumentError, 'Missing :dsn configuration.' unless config.has_key?(:dsn)
@@ -159,17 +160,10 @@ def simplified_datetime
159160

160161
end #SQLServerColumn
161162

162-
# In ODBC mode, the adapter requires Ruby ODBC and requires that you specify
163-
# a :dsn option. Ruby ODBC is available at http://www.ch-werner.de/rubyodbc/
164-
#
165-
# Options:
166-
#
167-
# * <tt>:username</tt> -- Defaults to sa.
168-
# * <tt>:password</tt> -- Defaults to blank string.
169-
# * <tt>:dsn</tt> -- An ODBC DSN. (required)
170-
#
171163
class SQLServerAdapter < AbstractAdapter
172164

165+
include SqlserverAdapter::DatabaseLimits
166+
173167
ADAPTER_NAME = 'SQLServer'.freeze
174168
VERSION = '3.0.0.beta1'.freeze
175169
DATABASE_VERSION_REGEXP = /Microsoft SQL Server\s+(\d{4})/
@@ -568,10 +562,6 @@ def native_database_types
568562
}
569563
end
570564

571-
def table_alias_length
572-
128
573-
end
574-
575565
def tables(name = nil)
576566
info_schema_query do
577567
select_values "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_NAME <> 'dtproperties'"
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
module ActiveRecord
2+
module ConnectionAdapters
3+
module SqlserverAdapter
4+
module DatabaseLimits
5+
6+
def table_alias_length
7+
128
8+
end
9+
10+
def column_name_length
11+
128
12+
end
13+
14+
def table_name_length
15+
128
16+
end
17+
18+
def index_name_length
19+
128
20+
end
21+
22+
def columns_per_table
23+
1024
24+
end
25+
26+
def indexes_per_table
27+
sqlserver_2000? ? 249 : 999
28+
end
29+
30+
def columns_per_multicolumn_index
31+
16
32+
end
33+
34+
def in_clause_length
35+
65536
36+
end
37+
38+
def sql_query_length
39+
65536 * 4096
40+
end
41+
42+
def joins_per_query
43+
256
44+
end
45+
46+
end
47+
end
48+
end
49+
end

0 commit comments

Comments
 (0)