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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 926f65915d98bb3c271370883fa89891fc575b5c6801cd8c235386c078d34bf5
4
- data.tar.gz: 0a932a9d5edf0d3932e3f0ba44328ed77a033a1223f05699e8f4caa79116ac56
3
+ metadata.gz: cebd5142b6e4cd7fc42be58fc02ba1be8cef17425812d28991643dec2a079743
4
+ data.tar.gz: dcf926a50cc90a36bb6d41b6adae4eabae84b92d3d4844c6661a9c0d60efd478
5
5
  SHA512:
6
- metadata.gz: ee45540a8d2ae57dc69a35048f4ccfbf01bcfc91e177e57405b19ccb8a3279eef7b752c22dee20c4171c8bb4e2cb0fcaadb99cd6c25d139fd2ef53577a5cb23a
7
- data.tar.gz: 9184a7041e5de445103bcd47832352614897865f0ef49e83067b553786d089be73eb73c34dfaf3f102e02804ee7d8d40803d5582430ebfeecbe95f568b0b7cb7
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": "docker-compose.yml",
4
+ "dockerComposeFile": "compose.yaml",
5
5
  "service": "activerecord-sqlserver-adapter",
6
6
  "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
7
7
 
@@ -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: docker-compose.ci.yml
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.4
24
- - 3.2.5
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.0` | `8.0.x` | Active | [main](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/main) |
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.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.to_sql unless s.is_a?(String)
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
- }.reject(&:blank?).map.with_index { |column, i| "#{column} AS alias_#{i}" }
353
+ }
354
+ .reject(&:blank?)
355
+ .reject { |s| columns.include?(s) }
354
356
 
355
- (order_columns << super).join(", ")
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
@@ -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.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: 2024-11-11 00:00:00.000000000 Z
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
- - docker-compose.ci.yml
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.0/CHANGELOG.md
242
- source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.0.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