activerecord-sqlserver-adapter 8.0.0 → 8.0.2

Sign up to get free protection for your applications and to get access to all the features.
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