activerecord-sqlserver-adapter 8.0.6 → 8.0.7

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: 34f478c68720d0070576ee92aeaaaf4d32ed24a9edf746d575ddc1b7633c02f4
4
- data.tar.gz: 5c9bbd2821b3d0431d93e74b07dc1a729fa5a90ee213e2a53f93e8b8d67034fa
3
+ metadata.gz: 55b3eb63b017029ece8397fb34c2eaf883b62e0ac96966e3655b384abd67f2f8
4
+ data.tar.gz: 235155e68ee4bc3843406f7ed776889c252abd2c95c684dbab5ed4d964fb1648
5
5
  SHA512:
6
- metadata.gz: 50dd731f8f49995aed5492cda26255234bb0c4b941cd67c26f9d8e7ca3e3ffe13d9d6470f3769617604388d9c92d3df99b21a2169d3c1c9c8c75906fe9d6d7bc
7
- data.tar.gz: 66461bd72eaa9fd3cfb8235c6566f199eefae9e716ac59ed00908e3ddd19f99ec467c5fe83a9d1bf3ed3a8f7642e35c6267e6f6168344d9e1339bb950bc79e24
6
+ metadata.gz: d2cc2806e29ffe9b3fc35f4ec0689f62b8c37927fb2733ca3b84ac0caaa3c7e7508bf7171d7d44b9e40c3634187b1850f5cc3471d6b332c69f4b39b550547181
7
+ data.tar.gz: 2bbcf53461556e7cb28462a37cf903d064cf9528129fb025a4c072dd95dca0dcbcbccf6b5f9bfc538bd032abf97fee942019060d4b738646f2c90bbffc9b17dd
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## v8.0.7
2
+
3
+ #### Fixed
4
+
5
+ - [#1334](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1334) Enable identity insert on view's base table for fixtures.
6
+ - [#1339](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1339) Fix `insert_all`/`upsert_all` for table names containing numbers.
7
+
1
8
  ## v8.0.6
2
9
 
3
10
  #### Fixed
data/VERSION CHANGED
@@ -1 +1 @@
1
- 8.0.6
1
+ 8.0.7
@@ -15,9 +15,6 @@ module ActiveRecord
15
15
 
16
16
  def perform_query(raw_connection, sql, binds, type_casted_binds, prepare:, notification_payload:, batch:)
17
17
  result = if id_insert_table_name = query_requires_identity_insert?(sql)
18
- # If the table name is a view, we need to get the base table name for enabling identity insert.
19
- id_insert_table_name = view_table_name(id_insert_table_name) if view_exists?(id_insert_table_name)
20
-
21
18
  with_identity_insert_enabled(id_insert_table_name, raw_connection) do
22
19
  internal_exec_sql_query(sql, raw_connection)
23
20
  end
@@ -225,11 +222,14 @@ module ActiveRecord
225
222
  end
226
223
 
227
224
  def with_identity_insert_enabled(table_name, conn)
228
- table_name = quote_table_name(table_name)
229
- set_identity_insert(table_name, conn, true)
225
+ # If the table name is a view, we need to get the base table name for enabling identity insert.
226
+ table_name = view_table_name(table_name) if view_exists?(table_name)
227
+ quoted_table_name = quote_table_name(table_name)
228
+
229
+ set_identity_insert(quoted_table_name, conn, true)
230
230
  yield
231
231
  ensure
232
- set_identity_insert(table_name, conn, false)
232
+ set_identity_insert(quoted_table_name, conn, false)
233
233
  end
234
234
 
235
235
  def use_database(database = nil)
@@ -721,7 +721,7 @@ module ActiveRecord
721
721
  elsif s.match?(/^\s*UPDATE\s+.*/i)
722
722
  s.match(/UPDATE\s+([^\(\s]+)\s*/i)[1]
723
723
  elsif s.match?(/^\s*MERGE INTO.*/i)
724
- s.match(/^\s*MERGE\s+INTO\s+(\[?[a-z_ -]+\]?\.?\[?[a-z_ -]+\]?)\s+(AS|WITH|USING)/i)[1]
724
+ s.match(/^\s*MERGE\s+INTO\s+(\[?[a-z0-9_ -]+\]?\.?\[?[a-z0-9_ -]+\]?)\s+(AS|WITH|USING)/i)[1]
725
725
  else
726
726
  s.match(/FROM[\s|\(]+((\[[^\(\]]+\])|[^\(\s]+)\s*/i)[1]
727
727
  end.strip
@@ -118,6 +118,10 @@ class SchemaTestSQLServer < ActiveRecord::TestCase
118
118
  it do
119
119
  assert_equal "[with].[select notation]", connection.send(:get_raw_table_name, "MERGE INTO [with].[select notation] AS target")
120
120
  end
121
+
122
+ it do
123
+ assert_equal "[with_numbers_1234]", connection.send(:get_raw_table_name, "MERGE INTO [with_numbers_1234] AS target")
124
+ end
121
125
  end
122
126
 
123
127
  describe 'CREATE VIEW statements' do
@@ -48,11 +48,17 @@ class ViewTestSQLServer < ActiveRecord::TestCase
48
48
  end
49
49
  end
50
50
 
51
- describe 'identity insert' do
52
- it "identity insert works with views" do
53
- assert_difference("SSTestCustomersView.count", 1) do
51
+ describe "identity insert" do
52
+ it "creates table record through a view" do
53
+ assert_difference("SSTestCustomersView.count", 2) do
54
54
  SSTestCustomersView.create!(id: 5, name: "Bob")
55
+ SSTestCustomersView.create!(id: 6, name: "Tim")
55
56
  end
56
57
  end
58
+
59
+ it "creates table records through a view using fixtures" do
60
+ ActiveRecord::FixtureSet.create_fixtures(File.join(ARTest::SQLServer.test_root_sqlserver, "fixtures"), ["sst_customers_view"])
61
+ assert_equal SSTestCustomersView.all.count, 2
62
+ end
57
63
  end
58
64
  end
@@ -0,0 +1,6 @@
1
+ david:
2
+ name: "David"
3
+ balance: 2,004
4
+ aidan:
5
+ name: "Aidan"
6
+ balance: 10,191
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.6
4
+ version: 8.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
@@ -12,10 +12,9 @@ authors:
12
12
  - Joe Rafaniello
13
13
  - Tom Ward
14
14
  - Aidan Haran
15
- autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
- date: 2025-05-13 00:00:00.000000000 Z
17
+ date: 1980-01-02 00:00:00.000000000 Z
19
18
  dependencies:
20
19
  - !ruby/object:Gem::Dependency
21
20
  name: activerecord
@@ -186,6 +185,7 @@ files:
186
185
  - test/config.yml
187
186
  - test/debug.rb
188
187
  - test/fixtures/1px.gif
188
+ - test/fixtures/sst_customers_view.yml
189
189
  - test/migrations/create_clients_and_change_column_collation.rb
190
190
  - test/migrations/create_clients_and_change_column_null.rb
191
191
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
@@ -241,9 +241,8 @@ licenses:
241
241
  - MIT
242
242
  metadata:
243
243
  bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
244
- changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v8.0.6/CHANGELOG.md
245
- source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.0.6
246
- post_install_message:
244
+ changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v8.0.7/CHANGELOG.md
245
+ source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.0.7
247
246
  rdoc_options: []
248
247
  require_paths:
249
248
  - lib
@@ -258,8 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
257
  - !ruby/object:Gem::Version
259
258
  version: '0'
260
259
  requirements: []
261
- rubygems_version: 3.5.21
262
- signing_key:
260
+ rubygems_version: 3.6.7
263
261
  specification_version: 4
264
262
  summary: ActiveRecord SQL Server Adapter.
265
263
  test_files:
@@ -307,6 +305,7 @@ test_files:
307
305
  - test/config.yml
308
306
  - test/debug.rb
309
307
  - test/fixtures/1px.gif
308
+ - test/fixtures/sst_customers_view.yml
310
309
  - test/migrations/create_clients_and_change_column_collation.rb
311
310
  - test/migrations/create_clients_and_change_column_null.rb
312
311
  - test/migrations/transaction_table/1_table_will_never_be_created.rb