activerecord-sqlserver-adapter 6.0.0.rc2 → 6.1.0.0
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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +26 -0
- data/CHANGELOG.md +20 -41
- data/README.md +32 -3
- data/RUNNING_UNIT_TESTS.md +1 -1
- data/VERSION +1 -1
- data/activerecord-sqlserver-adapter.gemspec +1 -1
- data/lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb +0 -9
- data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +7 -2
- data/lib/active_record/connection_adapters/sqlserver/database_limits.rb +0 -4
- data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +28 -16
- data/lib/active_record/connection_adapters/sqlserver/quoting.rb +7 -7
- data/lib/active_record/connection_adapters/sqlserver/schema_creation.rb +22 -1
- data/lib/active_record/connection_adapters/sqlserver/schema_dumper.rb +9 -3
- data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +31 -8
- data/lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb +27 -7
- data/lib/active_record/connection_adapters/sqlserver/table_definition.rb +0 -1
- data/lib/active_record/connection_adapters/sqlserver/transaction.rb +2 -2
- data/lib/active_record/connection_adapters/sqlserver/type.rb +1 -0
- data/lib/active_record/connection_adapters/sqlserver/type/decimal_without_scale.rb +22 -0
- data/lib/active_record/connection_adapters/sqlserver/utils.rb +1 -1
- data/lib/active_record/connection_adapters/sqlserver_adapter.rb +100 -68
- data/lib/active_record/connection_adapters/sqlserver_column.rb +17 -0
- data/lib/active_record/sqlserver_base.rb +9 -15
- data/lib/active_record/tasks/sqlserver_database_tasks.rb +17 -14
- data/lib/arel/visitors/sqlserver.rb +111 -39
- data/test/cases/adapter_test_sqlserver.rb +48 -14
- data/test/cases/change_column_collation_test_sqlserver.rb +33 -0
- data/test/cases/coerced_tests.rb +598 -78
- data/test/cases/column_test_sqlserver.rb +5 -2
- data/test/cases/disconnected_test_sqlserver.rb +39 -0
- data/test/cases/execute_procedure_test_sqlserver.rb +9 -0
- data/test/cases/in_clause_test_sqlserver.rb +27 -0
- data/test/cases/lateral_test_sqlserver.rb +35 -0
- data/test/cases/migration_test_sqlserver.rb +51 -0
- data/test/cases/optimizer_hints_test_sqlserver.rb +72 -0
- data/test/cases/order_test_sqlserver.rb +7 -0
- data/test/cases/primary_keys_test_sqlserver.rb +103 -0
- data/test/cases/rake_test_sqlserver.rb +3 -2
- data/test/cases/schema_dumper_test_sqlserver.rb +20 -3
- data/test/migrations/create_clients_and_change_column_collation.rb +19 -0
- data/test/models/sqlserver/sst_string_collation.rb +3 -0
- data/test/schema/sqlserver_specific_schema.rb +17 -0
- data/test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic.dump +0 -0
- data/test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic_associations.dump +0 -0
- data/test/support/sql_counter_sqlserver.rb +14 -12
- metadata +32 -13
- data/.travis.yml +0 -23
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateClientsAndChangeColumnCollation < ActiveRecord::Migration[5.2]
|
4
|
+
def up
|
5
|
+
create_table :clients do |t|
|
6
|
+
t.string :name
|
7
|
+
t.string :code, collation: :SQL_Latin1_General_CP1_CS_AS
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
|
12
|
+
change_column :clients, :name, :string, collation: 'SQL_Latin1_General_CP1_CS_AS'
|
13
|
+
change_column :clients, :code, :string, collation: 'SQL_Latin1_General_CP1_CI_AS'
|
14
|
+
end
|
15
|
+
|
16
|
+
def down
|
17
|
+
drop_table :clients
|
18
|
+
end
|
19
|
+
end
|
@@ -95,6 +95,13 @@ ActiveRecord::Schema.define do
|
|
95
95
|
t.column :string_with_multiline_default, :string, default: "Some long default with a\nnew line."
|
96
96
|
end
|
97
97
|
|
98
|
+
create_table :sst_string_collation, collation: :SQL_Latin1_General_CP1_CI_AS, force: true do |t|
|
99
|
+
t.string :string_without_collation
|
100
|
+
t.varchar :string_default_collation, collation: :SQL_Latin1_General_CP1_CI_AS
|
101
|
+
t.varchar :string_with_collation, collation: :SQL_Latin1_General_CP1_CS_AS
|
102
|
+
t.varchar :varchar_with_collation, collation: :SQL_Latin1_General_CP1_CS_AS
|
103
|
+
end
|
104
|
+
|
98
105
|
create_table :sst_edge_schemas, force: true do |t|
|
99
106
|
t.string :description
|
100
107
|
t.column "crazy]]quote", :string
|
@@ -277,4 +284,14 @@ ActiveRecord::Schema.define do
|
|
277
284
|
field_2 int NOT NULL PRIMARY KEY,
|
278
285
|
)
|
279
286
|
SCHEMATESTMULTIPLESCHEMA
|
287
|
+
|
288
|
+
execute "IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'unique_key_dumped_table') DROP TABLE unique_key_dumped_table"
|
289
|
+
execute <<-SQLSERVERUNIQUEKEYS
|
290
|
+
CREATE TABLE unique_key_dumped_table (
|
291
|
+
id int IDENTITY(1,1) NOT NULL,
|
292
|
+
unique_field int DEFAULT 0 NOT NULL,
|
293
|
+
CONSTRAINT IX_UNIQUE_KEY UNIQUE (unique_field),
|
294
|
+
CONSTRAINT PK_UNIQUE_KEY PRIMARY KEY (id)
|
295
|
+
);
|
296
|
+
SQLSERVERUNIQUEKEYS
|
280
297
|
end
|
Binary file
|
@@ -11,17 +11,19 @@ module ARTest
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
14
|
+
# TODO: Delete the code below after all Rails 6.1 tests passing.
|
15
|
+
#
|
16
|
+
# ignored_sql = [
|
17
|
+
# /INFORMATION_SCHEMA\.(TABLES|VIEWS|COLUMNS|KEY_COLUMN_USAGE)/im,
|
18
|
+
# /sys.columns/i,
|
19
|
+
# /SELECT @@version/,
|
20
|
+
# /SELECT @@TRANCOUNT/,
|
21
|
+
# /(BEGIN|COMMIT|ROLLBACK|SAVE) TRANSACTION/,
|
22
|
+
# /SELECT CAST\(.* AS .*\) AS value/,
|
23
|
+
# /SELECT DATABASEPROPERTYEX/im
|
24
|
+
# ]
|
25
|
+
#
|
26
|
+
# sqlcounter = ObjectSpace.each_object(ActiveRecord::SQLCounter).to_a.first
|
27
|
+
# sqlcounter.instance_variable_set :@ignore, Regexp.union(ignored_sql.push(sqlcounter.ignore))
|
26
28
|
end
|
27
29
|
end
|
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: 6.0.0
|
4
|
+
version: 6.1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ken Collins
|
@@ -11,10 +11,10 @@ authors:
|
|
11
11
|
- Shawn Balestracci
|
12
12
|
- Joe Rafaniello
|
13
13
|
- Tom Ward
|
14
|
-
autorequire:
|
14
|
+
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date:
|
17
|
+
date: 2021-06-04 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: activerecord
|
@@ -22,14 +22,14 @@ dependencies:
|
|
22
22
|
requirements:
|
23
23
|
- - "~>"
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 6.
|
25
|
+
version: 6.1.0
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
28
|
version_requirements: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 6.
|
32
|
+
version: 6.1.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: tiny_tds
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,9 +54,9 @@ extra_rdoc_files: []
|
|
54
54
|
files:
|
55
55
|
- ".editorconfig"
|
56
56
|
- ".github/issue_template.md"
|
57
|
+
- ".github/workflows/ci.yml"
|
57
58
|
- ".gitignore"
|
58
59
|
- ".rubocop.yml"
|
59
|
-
- ".travis.yml"
|
60
60
|
- CHANGELOG.md
|
61
61
|
- CODE_OF_CONDUCT.md
|
62
62
|
- Dockerfile.ci
|
@@ -104,6 +104,7 @@ files:
|
|
104
104
|
- lib/active_record/connection_adapters/sqlserver/type/datetime2.rb
|
105
105
|
- lib/active_record/connection_adapters/sqlserver/type/datetimeoffset.rb
|
106
106
|
- lib/active_record/connection_adapters/sqlserver/type/decimal.rb
|
107
|
+
- lib/active_record/connection_adapters/sqlserver/type/decimal_without_scale.rb
|
107
108
|
- lib/active_record/connection_adapters/sqlserver/type/float.rb
|
108
109
|
- lib/active_record/connection_adapters/sqlserver/type/integer.rb
|
109
110
|
- lib/active_record/connection_adapters/sqlserver/type/json.rb
|
@@ -143,10 +144,12 @@ files:
|
|
143
144
|
- test/bin/install-openssl.sh
|
144
145
|
- test/bin/setup.sh
|
145
146
|
- test/cases/adapter_test_sqlserver.rb
|
147
|
+
- test/cases/change_column_collation_test_sqlserver.rb
|
146
148
|
- test/cases/change_column_null_test_sqlserver.rb
|
147
149
|
- test/cases/coerced_tests.rb
|
148
150
|
- test/cases/column_test_sqlserver.rb
|
149
151
|
- test/cases/connection_test_sqlserver.rb
|
152
|
+
- test/cases/disconnected_test_sqlserver.rb
|
150
153
|
- test/cases/execute_procedure_test_sqlserver.rb
|
151
154
|
- test/cases/fetch_test_sqlserver.rb
|
152
155
|
- test/cases/fully_qualified_identifier_test_sqlserver.rb
|
@@ -154,9 +157,12 @@ files:
|
|
154
157
|
- test/cases/in_clause_test_sqlserver.rb
|
155
158
|
- test/cases/index_test_sqlserver.rb
|
156
159
|
- test/cases/json_test_sqlserver.rb
|
160
|
+
- test/cases/lateral_test_sqlserver.rb
|
157
161
|
- test/cases/migration_test_sqlserver.rb
|
162
|
+
- test/cases/optimizer_hints_test_sqlserver.rb
|
158
163
|
- test/cases/order_test_sqlserver.rb
|
159
164
|
- test/cases/pessimistic_locking_test_sqlserver.rb
|
165
|
+
- test/cases/primary_keys_test_sqlserver.rb
|
160
166
|
- test/cases/rake_test_sqlserver.rb
|
161
167
|
- test/cases/schema_dumper_test_sqlserver.rb
|
162
168
|
- test/cases/schema_test_sqlserver.rb
|
@@ -170,6 +176,7 @@ files:
|
|
170
176
|
- test/config.yml
|
171
177
|
- test/debug.rb
|
172
178
|
- test/fixtures/1px.gif
|
179
|
+
- test/migrations/create_clients_and_change_column_collation.rb
|
173
180
|
- test/migrations/create_clients_and_change_column_null.rb
|
174
181
|
- test/migrations/transaction_table/1_table_will_never_be_created.rb
|
175
182
|
- test/models/sqlserver/booking.rb
|
@@ -188,6 +195,7 @@ files:
|
|
188
195
|
- test/models/sqlserver/quoted_view_1.rb
|
189
196
|
- test/models/sqlserver/quoted_view_2.rb
|
190
197
|
- test/models/sqlserver/sst_memory.rb
|
198
|
+
- test/models/sqlserver/sst_string_collation.rb
|
191
199
|
- test/models/sqlserver/string_default.rb
|
192
200
|
- test/models/sqlserver/string_defaults_big_view.rb
|
193
201
|
- test/models/sqlserver/string_defaults_view.rb
|
@@ -204,6 +212,8 @@ files:
|
|
204
212
|
- test/support/connection_reflection.rb
|
205
213
|
- test/support/core_ext/query_cache.rb
|
206
214
|
- test/support/load_schema_sqlserver.rb
|
215
|
+
- test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic.dump
|
216
|
+
- test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic_associations.dump
|
207
217
|
- test/support/minitest_sqlserver.rb
|
208
218
|
- test/support/paths_sqlserver.rb
|
209
219
|
- test/support/rake_helpers.rb
|
@@ -214,9 +224,9 @@ licenses:
|
|
214
224
|
- MIT
|
215
225
|
metadata:
|
216
226
|
bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
|
217
|
-
changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v6.0.0
|
218
|
-
source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v6.0.0
|
219
|
-
post_install_message:
|
227
|
+
changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v6.1.0.0/CHANGELOG.md
|
228
|
+
source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v6.1.0.0
|
229
|
+
post_install_message:
|
220
230
|
rdoc_options: []
|
221
231
|
require_paths:
|
222
232
|
- lib
|
@@ -227,12 +237,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
227
237
|
version: 2.5.0
|
228
238
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
239
|
requirements:
|
230
|
-
- - "
|
240
|
+
- - ">="
|
231
241
|
- !ruby/object:Gem::Version
|
232
|
-
version:
|
242
|
+
version: '0'
|
233
243
|
requirements: []
|
234
|
-
rubygems_version: 3.
|
235
|
-
signing_key:
|
244
|
+
rubygems_version: 3.2.3
|
245
|
+
signing_key:
|
236
246
|
specification_version: 4
|
237
247
|
summary: ActiveRecord SQL Server Adapter.
|
238
248
|
test_files:
|
@@ -242,10 +252,12 @@ test_files:
|
|
242
252
|
- test/bin/install-openssl.sh
|
243
253
|
- test/bin/setup.sh
|
244
254
|
- test/cases/adapter_test_sqlserver.rb
|
255
|
+
- test/cases/change_column_collation_test_sqlserver.rb
|
245
256
|
- test/cases/change_column_null_test_sqlserver.rb
|
246
257
|
- test/cases/coerced_tests.rb
|
247
258
|
- test/cases/column_test_sqlserver.rb
|
248
259
|
- test/cases/connection_test_sqlserver.rb
|
260
|
+
- test/cases/disconnected_test_sqlserver.rb
|
249
261
|
- test/cases/execute_procedure_test_sqlserver.rb
|
250
262
|
- test/cases/fetch_test_sqlserver.rb
|
251
263
|
- test/cases/fully_qualified_identifier_test_sqlserver.rb
|
@@ -253,9 +265,12 @@ test_files:
|
|
253
265
|
- test/cases/in_clause_test_sqlserver.rb
|
254
266
|
- test/cases/index_test_sqlserver.rb
|
255
267
|
- test/cases/json_test_sqlserver.rb
|
268
|
+
- test/cases/lateral_test_sqlserver.rb
|
256
269
|
- test/cases/migration_test_sqlserver.rb
|
270
|
+
- test/cases/optimizer_hints_test_sqlserver.rb
|
257
271
|
- test/cases/order_test_sqlserver.rb
|
258
272
|
- test/cases/pessimistic_locking_test_sqlserver.rb
|
273
|
+
- test/cases/primary_keys_test_sqlserver.rb
|
259
274
|
- test/cases/rake_test_sqlserver.rb
|
260
275
|
- test/cases/schema_dumper_test_sqlserver.rb
|
261
276
|
- test/cases/schema_test_sqlserver.rb
|
@@ -269,6 +284,7 @@ test_files:
|
|
269
284
|
- test/config.yml
|
270
285
|
- test/debug.rb
|
271
286
|
- test/fixtures/1px.gif
|
287
|
+
- test/migrations/create_clients_and_change_column_collation.rb
|
272
288
|
- test/migrations/create_clients_and_change_column_null.rb
|
273
289
|
- test/migrations/transaction_table/1_table_will_never_be_created.rb
|
274
290
|
- test/models/sqlserver/booking.rb
|
@@ -287,6 +303,7 @@ test_files:
|
|
287
303
|
- test/models/sqlserver/quoted_view_1.rb
|
288
304
|
- test/models/sqlserver/quoted_view_2.rb
|
289
305
|
- test/models/sqlserver/sst_memory.rb
|
306
|
+
- test/models/sqlserver/sst_string_collation.rb
|
290
307
|
- test/models/sqlserver/string_default.rb
|
291
308
|
- test/models/sqlserver/string_defaults_big_view.rb
|
292
309
|
- test/models/sqlserver/string_defaults_view.rb
|
@@ -303,6 +320,8 @@ test_files:
|
|
303
320
|
- test/support/connection_reflection.rb
|
304
321
|
- test/support/core_ext/query_cache.rb
|
305
322
|
- test/support/load_schema_sqlserver.rb
|
323
|
+
- test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic.dump
|
324
|
+
- test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic_associations.dump
|
306
325
|
- test/support/minitest_sqlserver.rb
|
307
326
|
- test/support/paths_sqlserver.rb
|
308
327
|
- test/support/rake_helpers.rb
|
data/.travis.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
sudo: required
|
2
|
-
cache: bundler
|
3
|
-
services:
|
4
|
-
- docker
|
5
|
-
env:
|
6
|
-
global:
|
7
|
-
- COMPOSE_FILE: docker-compose.ci.yml
|
8
|
-
before_install:
|
9
|
-
- sudo rm /usr/local/bin/docker-compose
|
10
|
-
- sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
11
|
-
- sudo chmod +x /usr/local/bin/docker-compose
|
12
|
-
install:
|
13
|
-
- docker-compose build --build-arg TARGET_VERSION=$TARGET_VERSION
|
14
|
-
script:
|
15
|
-
- docker-compose run ci
|
16
|
-
matrix:
|
17
|
-
include:
|
18
|
-
- name: 2.5.8
|
19
|
-
env: TARGET_VERSION=2.5.8
|
20
|
-
- name: 2.6.6
|
21
|
-
env: TARGET_VERSION=2.6.6
|
22
|
-
- name: 2.7.1
|
23
|
-
env: TARGET_VERSION=2.7.1
|