activerecord-sqlserver-adapter 2.3.3 → 2.3.4
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,6 +1,19 @@
|
|
1
1
|
|
2
2
|
MASTER
|
3
3
|
|
4
|
+
|
5
|
+
* 2.3.4
|
6
|
+
|
7
|
+
* For tables that named with schema(ex. rails.users), they could not get length of column.
|
8
|
+
column of varchar(40) gets length => nil. Ticket #27 & #15 [Ken Tachiya]
|
9
|
+
|
10
|
+
* Altered limited_update_conditions regex conditions, the .* would greedily fail
|
11
|
+
if the where_sql had WHERE in a table or field, etc. [Ransom Briggs]
|
12
|
+
|
13
|
+
* Changing test to allow ENV['ARUNIT_DB_NAME'] as the database name for the test units.
|
14
|
+
Matches up with AR conventions. [Ransom Briggs]
|
15
|
+
|
16
|
+
|
4
17
|
2.3.3
|
5
18
|
|
6
19
|
* Revert #ad83df82 and again cache column information at the connection's instance. The
|
@@ -159,7 +159,7 @@ module ActiveRecord
|
|
159
159
|
class SQLServerAdapter < AbstractAdapter
|
160
160
|
|
161
161
|
ADAPTER_NAME = 'SQLServer'.freeze
|
162
|
-
VERSION = '2.3.
|
162
|
+
VERSION = '2.3.4'.freeze
|
163
163
|
DATABASE_VERSION_REGEXP = /Microsoft SQL Server\s+(\d{4})/
|
164
164
|
SUPPORTED_VERSIONS = [2000,2005,2008].freeze
|
165
165
|
LIMITABLE_TYPES = ['string','integer','float','char','nchar','varchar','nvarchar'].freeze
|
@@ -522,7 +522,7 @@ module ActiveRecord
|
|
522
522
|
end
|
523
523
|
|
524
524
|
def limited_update_conditions(where_sql, quoted_table_name, quoted_primary_key)
|
525
|
-
match_data = where_sql.match(
|
525
|
+
match_data = where_sql.match(/^(.*?[\]\) ])WHERE[\[\( ]/)
|
526
526
|
limit = match_data[1]
|
527
527
|
where_sql.sub!(limit,'')
|
528
528
|
"WHERE #{quoted_primary_key} IN (SELECT #{limit} #{quoted_primary_key} FROM #{quoted_table_name} #{where_sql})"
|
@@ -1042,7 +1042,7 @@ module ActiveRecord
|
|
1042
1042
|
columns.NUMERIC_PRECISION as numeric_precision,
|
1043
1043
|
CASE
|
1044
1044
|
WHEN columns.DATA_TYPE IN ('nchar','nvarchar') THEN columns.CHARACTER_MAXIMUM_LENGTH
|
1045
|
-
ELSE COL_LENGTH(columns.TABLE_NAME, columns.COLUMN_NAME)
|
1045
|
+
ELSE COL_LENGTH(columns.TABLE_SCHEMA+'.'+columns.TABLE_NAME, columns.COLUMN_NAME)
|
1046
1046
|
END as length,
|
1047
1047
|
CASE
|
1048
1048
|
WHEN columns.IS_NULLABLE = 'YES' THEN 1
|
@@ -128,6 +128,15 @@ class AdapterTestSqlserver < ActiveRecord::TestCase
|
|
128
128
|
assert !@connection.send(:insert_sql?,'UPDATE...')
|
129
129
|
assert !@connection.send(:insert_sql?,'SELECT...')
|
130
130
|
end
|
131
|
+
|
132
|
+
context 'for #limited_update_conditions' do
|
133
|
+
|
134
|
+
should 'only match up to the first WHERE' do
|
135
|
+
where_sql = "TOP 1 WHERE ([posts].author_id = 1 and [posts].columnWHEREname = 2) ORDER BY posts.id"
|
136
|
+
assert_equal "WHERE bar IN (SELECT TOP 1 bar FROM foo WHERE ([posts].author_id = 1 and [posts].columnWHEREname = 2) ORDER BY posts.id)", @connection.limited_update_conditions(where_sql, 'foo', 'bar')
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
131
140
|
|
132
141
|
context 'for #sql_for_association_limiting?' do
|
133
142
|
|
@@ -16,7 +16,7 @@ class ExecuteProcedureTestSqlserver < ActiveRecord::TestCase
|
|
16
16
|
tables = @klass.execute_procedure :sp_tables, 'sql_server_chronics'
|
17
17
|
table_info = tables.first
|
18
18
|
assert_equal 1, tables.size
|
19
|
-
assert_equal 'activerecord_unittest', table_info[:TABLE_QUALIFIER], "Table Info: #{table_info.inspect}"
|
19
|
+
assert_equal (ENV['ARUNIT_DB_NAME'] || 'activerecord_unittest'), table_info[:TABLE_QUALIFIER], "Table Info: #{table_info.inspect}"
|
20
20
|
assert_equal 'TABLE', table_info[:TABLE_TYPE], "Table Info: #{table_info.inspect}"
|
21
21
|
end
|
22
22
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-sqlserver-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ken Collins
|
@@ -13,7 +13,7 @@ autorequire:
|
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
15
|
|
16
|
-
date: 2010-02-
|
16
|
+
date: 2010-02-17 00:00:00 -05:00
|
17
17
|
default_executable:
|
18
18
|
dependencies: []
|
19
19
|
|