activerecord-sqlserver-adapter 8.0.0 → 8.0.2
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/.devcontainer/devcontainer.json +1 -1
- data/.github/workflows/ci.yml +4 -10
- data/CHANGELOG.md +15 -3
- data/README.md +1 -1
- data/VERSION +1 -1
- data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +8 -4
- data/lib/active_record/connection_adapters/sqlserver_adapter.rb +1 -0
- data/test/cases/adapter_test_sqlserver.rb +9 -0
- data/test/cases/coerced_tests.rb +3 -0
- data/test/cases/schema_test_sqlserver.rb +6 -0
- metadata +6 -6
- /data/.devcontainer/{docker-compose.yml → compose.yaml} +0 -0
- /data/{docker-compose.ci.yml → compose.ci.yaml} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cebd5142b6e4cd7fc42be58fc02ba1be8cef17425812d28991643dec2a079743
|
|
4
|
+
data.tar.gz: dcf926a50cc90a36bb6d41b6adae4eabae84b92d3d4844c6661a9c0d60efd478
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e4158590963a45ac2bd13ae2a8200554693a0ea9a5a2fd68ff17ec07ed25d8c03dd11efcbdb28b6dc0d56c7bd88df77e57c11a87ee375096077da78647ce80c0
|
|
7
|
+
data.tar.gz: 42a84013b9b6949f04d4eb99aa01b6727d2556dc2764b57454661f680eb4fe62541ce8fc05c74c7f7154c271601caf004fd864482d19115b1fc9cac152a4774a
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// For format details, see https://aka.ms/devcontainer.json.
|
|
2
2
|
{
|
|
3
3
|
"name": "ActiveRecord SQL Server Adapter project development",
|
|
4
|
-
"dockerComposeFile": "
|
|
4
|
+
"dockerComposeFile": "compose.yaml",
|
|
5
5
|
"service": "activerecord-sqlserver-adapter",
|
|
6
6
|
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
|
7
7
|
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
name: CI
|
|
2
2
|
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main ]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [ main ]
|
|
8
|
-
schedule:
|
|
9
|
-
- cron: '0 4 * * 1'
|
|
3
|
+
on: [push, pull_request]
|
|
10
4
|
|
|
11
5
|
jobs:
|
|
12
6
|
test:
|
|
@@ -14,14 +8,14 @@ jobs:
|
|
|
14
8
|
runs-on: ubuntu-20.04 # TODO: Change back to 'ubuntu-latest' when https://github.com/microsoft/mssql-docker/issues/899 resolved.
|
|
15
9
|
|
|
16
10
|
env:
|
|
17
|
-
COMPOSE_FILE:
|
|
11
|
+
COMPOSE_FILE: compose.ci.yaml
|
|
18
12
|
|
|
19
13
|
strategy:
|
|
20
14
|
fail-fast: false
|
|
21
15
|
matrix:
|
|
22
16
|
ruby:
|
|
23
|
-
- 3.3.
|
|
24
|
-
- 3.2.
|
|
17
|
+
- 3.3.6
|
|
18
|
+
- 3.2.6
|
|
25
19
|
|
|
26
20
|
steps:
|
|
27
21
|
- name: Checkout code
|
data/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
|
+
## v8.0.2
|
|
2
|
+
|
|
3
|
+
#### Fixed
|
|
4
|
+
|
|
5
|
+
- [#1272](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1272) Fix parsing of raw table name from SQL with extra parentheses
|
|
6
|
+
|
|
7
|
+
## v8.0.1
|
|
8
|
+
|
|
9
|
+
#### Fixed
|
|
10
|
+
|
|
11
|
+
- [#1262](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1262) Fix distinct alias when multiple databases used.
|
|
12
|
+
|
|
1
13
|
## v8.0.0
|
|
2
14
|
|
|
3
15
|
#### Changed
|
|
4
16
|
|
|
5
|
-
- [#1216](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1216) Refactor adapter interface to match abstract adapter
|
|
6
|
-
- [#1225](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1225) Drop support to Ruby 3.1
|
|
17
|
+
- [#1216](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1216) Refactor adapter interface to match abstract adapter.
|
|
18
|
+
- [#1225](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1225) Drop support to Ruby 3.1.
|
|
7
19
|
|
|
8
20
|
#### Fixed
|
|
9
21
|
|
|
10
|
-
- [#1215](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1215) Fix mismatched foreign key errors
|
|
22
|
+
- [#1215](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1215) Fix mismatched foreign key errors.
|
|
11
23
|
|
|
12
24
|
Please check [7-2-stable](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/7-2-stable/CHANGELOG.md) for previous changes.
|
data/README.md
CHANGED
|
@@ -18,7 +18,7 @@ See [Rubygems](https://rubygems.org/gems/activerecord-sqlserver-adapter/versions
|
|
|
18
18
|
|
|
19
19
|
| Adapter Version | Rails Version | Support | Branch |
|
|
20
20
|
|-----------------|---------------|----------------|-------------------------------------------------------------------------------------------------|
|
|
21
|
-
| `8.0.
|
|
21
|
+
| `8.0.x` | `8.0.x` | Active | [main](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/main) |
|
|
22
22
|
| `7.2.x` | `7.2.x` | Active | [7-2-stable](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/7-2-stable) |
|
|
23
23
|
| `7.1.x` | `7.1.x` | Active | [7-1-stable](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/7-1-stable) |
|
|
24
24
|
| `7.0.x` | `7.0.x` | Ended | [7-0-stable](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/7-0-stable) |
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
8.0.
|
|
1
|
+
8.0.2
|
|
@@ -347,12 +347,16 @@ module ActiveRecord
|
|
|
347
347
|
|
|
348
348
|
def columns_for_distinct(columns, orders)
|
|
349
349
|
order_columns = orders.reject(&:blank?).map { |s|
|
|
350
|
-
s = s
|
|
350
|
+
s = visitor.compile(s) unless s.is_a?(String)
|
|
351
351
|
s.gsub(/\s+(?:ASC|DESC)\b/i, "")
|
|
352
352
|
.gsub(/\s+NULLS\s+(?:FIRST|LAST)\b/i, "")
|
|
353
|
-
|
|
353
|
+
}
|
|
354
|
+
.reject(&:blank?)
|
|
355
|
+
.reject { |s| columns.include?(s) }
|
|
354
356
|
|
|
355
|
-
|
|
357
|
+
order_columns_aliased = order_columns.map.with_index { |column, i| "#{column} AS alias_#{i}" }
|
|
358
|
+
|
|
359
|
+
(order_columns_aliased << super).join(", ")
|
|
356
360
|
end
|
|
357
361
|
|
|
358
362
|
def update_table_definition(table_name, base)
|
|
@@ -707,7 +711,7 @@ module ActiveRecord
|
|
|
707
711
|
elsif s.match?(/^\s*UPDATE\s+.*/i)
|
|
708
712
|
s.match(/UPDATE\s+([^\(\s]+)\s*/i)[1]
|
|
709
713
|
else
|
|
710
|
-
s.match(/FROM\s+((\[[^\(\]]+\])|[^\(\s]+)\s*/i)[1]
|
|
714
|
+
s.match(/FROM[\s|\(]+((\[[^\(\]]+\])|[^\(\s]+)\s*/i)[1]
|
|
711
715
|
end.strip
|
|
712
716
|
end
|
|
713
717
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
require "tiny_tds"
|
|
4
4
|
require "base64"
|
|
5
5
|
require "active_record"
|
|
6
|
+
require "active_record/connection_adapters/statement_pool"
|
|
6
7
|
require "arel_sqlserver"
|
|
7
8
|
require "active_record/connection_adapters/sqlserver/core_ext/active_record"
|
|
8
9
|
require "active_record/connection_adapters/sqlserver/core_ext/explain"
|
|
@@ -616,4 +616,13 @@ class AdapterTestSQLServer < ActiveRecord::TestCase
|
|
|
616
616
|
assert_equal Task.where("starting < ?", DateTime.current).count, 1
|
|
617
617
|
end
|
|
618
618
|
end
|
|
619
|
+
|
|
620
|
+
describe "distinct select query" do
|
|
621
|
+
it "generated SQL does not contain unnecessary alias projection" do
|
|
622
|
+
sqls = capture_sql do
|
|
623
|
+
Post.includes(:comments).joins(:comments).first
|
|
624
|
+
end
|
|
625
|
+
assert_no_match(/AS alias_0/, sqls.first)
|
|
626
|
+
end
|
|
627
|
+
end
|
|
619
628
|
end
|
data/test/cases/coerced_tests.rb
CHANGED
|
@@ -1183,6 +1183,9 @@ module ActiveRecord
|
|
|
1183
1183
|
end
|
|
1184
1184
|
end
|
|
1185
1185
|
|
|
1186
|
+
# SQL Server does not support 'restrict' for 'on_update' or 'on_delete'.
|
|
1187
|
+
coerce_tests! :test_remove_foreign_key_with_restrict_action
|
|
1188
|
+
|
|
1186
1189
|
# Error message depends on the database adapter.
|
|
1187
1190
|
coerce_tests! :test_add_foreign_key_with_if_not_exists_not_set
|
|
1188
1191
|
def test_add_foreign_key_with_if_not_exists_not_set_coerced
|
|
@@ -101,5 +101,11 @@ class SchemaTestSQLServer < ActiveRecord::TestCase
|
|
|
101
101
|
assert_equal "[with].[select notation]", connection.send(:get_raw_table_name, "INSERT INTO [with].[select notation] SELECT * FROM [table_name]")
|
|
102
102
|
end
|
|
103
103
|
end
|
|
104
|
+
|
|
105
|
+
describe 'CREATE VIEW statements' do
|
|
106
|
+
it do
|
|
107
|
+
assert_equal "test_table_as", connection.send(:get_raw_table_name, "CREATE VIEW test_views ( test_table_a_id, test_table_b_id ) AS SELECT test_table_as.id as test_table_a_id, test_table_bs.id as test_table_b_id FROM (test_table_as with(nolock) LEFT JOIN test_table_bs with(nolock) ON (test_table_as.id = test_table_bs.test_table_a_id))")
|
|
108
|
+
end
|
|
109
|
+
end
|
|
104
110
|
end
|
|
105
111
|
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: 8.0.
|
|
4
|
+
version: 8.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ken Collins
|
|
@@ -15,7 +15,7 @@ authors:
|
|
|
15
15
|
autorequire:
|
|
16
16
|
bindir: bin
|
|
17
17
|
cert_chain: []
|
|
18
|
-
date:
|
|
18
|
+
date: 2025-01-08 00:00:00.000000000 Z
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
21
|
name: activerecord
|
|
@@ -55,8 +55,8 @@ extra_rdoc_files: []
|
|
|
55
55
|
files:
|
|
56
56
|
- ".devcontainer/Dockerfile"
|
|
57
57
|
- ".devcontainer/boot.sh"
|
|
58
|
+
- ".devcontainer/compose.yaml"
|
|
58
59
|
- ".devcontainer/devcontainer.json"
|
|
59
|
-
- ".devcontainer/docker-compose.yml"
|
|
60
60
|
- ".editorconfig"
|
|
61
61
|
- ".github/issue_template.md"
|
|
62
62
|
- ".github/workflows/ci.yml"
|
|
@@ -74,7 +74,7 @@ files:
|
|
|
74
74
|
- VERSION
|
|
75
75
|
- activerecord-sqlserver-adapter.gemspec
|
|
76
76
|
- appveyor.yml
|
|
77
|
-
-
|
|
77
|
+
- compose.ci.yaml
|
|
78
78
|
- guides/RELEASING.md
|
|
79
79
|
- lib/active_record/connection_adapters/sqlserver/core_ext/abstract_adapter.rb
|
|
80
80
|
- lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb
|
|
@@ -238,8 +238,8 @@ licenses:
|
|
|
238
238
|
- MIT
|
|
239
239
|
metadata:
|
|
240
240
|
bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
|
|
241
|
-
changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v8.0.
|
|
242
|
-
source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.0.
|
|
241
|
+
changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v8.0.2/CHANGELOG.md
|
|
242
|
+
source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.0.2
|
|
243
243
|
post_install_message:
|
|
244
244
|
rdoc_options: []
|
|
245
245
|
require_paths:
|
|
File without changes
|
|
File without changes
|