activerecord-sqlserver-adapter 7.1.2 → 7.1.3

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: f3a248aa6570f730031990568b0f9efb68b92995fd218e43e03d806192756e29
4
- data.tar.gz: a6c68a2c9320d5c510cb223fa6d175946e099503a42e4f3d40cb4c39cda386c2
3
+ metadata.gz: b304aee82f2ca78fe1db797b127b31a73b95df1dfb670a7232a68d57b6d9846e
4
+ data.tar.gz: bb52aecdc34253336fdeafb2fad5d26a3cb48ea7dfd2a453c3b87f07a423c0a6
5
5
  SHA512:
6
- metadata.gz: 34ac63c0508d2874b4e9b535688138749472ed6817ace45ffa887c7fb0b40739d276da48a6f4962e12ae6f1e8547fc66d004740e8cbdf77f745386b060456111
7
- data.tar.gz: 46c1c6351facef6559cdaacf9e7f6ab99b6e788a73e2d7701b72de6d957c680270b1e774fffdcf1ab7e9af1a4616de17e0a8ac3f9745b9792b4ee0c521485df6
6
+ metadata.gz: 34a017ac93ad7e077f41e4897185ccf20820774e1b5ee3c49988fc58d3b0febf422e6989155100b06eab3b2bcfcd79fab35ec83a31d4c9b0a266fc54f06da652
7
+ data.tar.gz: e9fa8fc3869bc0cc20eac834eef6737421d0ff4cfc27a1064843c89a3fd4447f02c5b35338661740c55cbd7caf687151aa469fc2092c01a048ac4967612c88ad
@@ -1,7 +1,7 @@
1
1
  sudo chown -R vscode:vscode /usr/local/bundle
2
2
 
3
- # Wait for 5 seconds to make sure SQL Server came up.
4
- sleep 5
3
+ # Wait for 10 seconds to make sure SQL Server came up.
4
+ sleep 10
5
5
 
6
6
  # Setup test databases and users.
7
7
  /opt/mssql-tools18/bin/sqlcmd -C -S sqlserver -U sa -P "MSSQLadmin!" <<SQL
@@ -27,6 +27,8 @@ services:
27
27
  restart: unless-stopped
28
28
  networks:
29
29
  - default
30
+ volumes:
31
+ - sqlserver-data:/var/opt/mssql
30
32
  ports:
31
33
  - "1433:1433"
32
34
  environment:
@@ -35,3 +37,6 @@ services:
35
37
 
36
38
  networks:
37
39
  default:
40
+
41
+ volumes:
42
+ sqlserver-data:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## v7.1.3
2
+
3
+ #### Fixed
4
+
5
+ - [#1152](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1152) Fix Composite Key Inserts with Triggers
6
+
1
7
  ## v7.1.2
2
8
 
3
9
  #### Fixed
data/README.md CHANGED
@@ -13,7 +13,7 @@ Interested in older versions? We follow a rational versioning policy that tracks
13
13
 
14
14
  | Adapter Version | Rails Version | Support | Branch |
15
15
  |-----------------|---------------|---------|--------------------------------------------------------------------------------------------------|
16
- | `7.1.2` | `7.1.x` | Active | [main](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/main) |
16
+ | `7.1.3` | `7.1.x` | Active | [main](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/main) |
17
17
  | `7.0.5.1` | `7.0.x` | Active | [7-0-stable](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/7-0-stable) |
18
18
  | `6.1.3.0` | `6.1.x` | Active | [6-1-stable](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/6-1-stable) |
19
19
  | `6.0.3` | `6.0.x` | Ended | [6-0-stable](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/6-0-stable) |
@@ -199,7 +199,7 @@ utilize the [`.devcontainer`](https://github.com/rails-sqlserver/activerecord-sq
199
199
 
200
200
  ```bash
201
201
  $ npm install -g @devcontainers/cli
202
- $ cd rails
202
+ $ cd activerecord-sqlserver-adapter
203
203
  $ devcontainer up --workspace-folder .
204
204
  $ devcontainer exec --workspace-folder . bash
205
205
  ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 7.1.2
1
+ 7.1.3
@@ -278,13 +278,13 @@ module ActiveRecord
278
278
  exclude_output_inserted = exclude_output_inserted_table_name?(table_name, sql)
279
279
 
280
280
  if exclude_output_inserted
281
- quoted_pk = SQLServer::Utils.extract_identifiers(pk).quoted
281
+ quoted_pk = Array(pk).map { |subkey| SQLServer::Utils.extract_identifiers(subkey).quoted }
282
282
 
283
283
  id_sql_type = exclude_output_inserted.is_a?(TrueClass) ? "bigint" : exclude_output_inserted
284
284
  <<~SQL.squish
285
- DECLARE @ssaIdInsertTable table (#{quoted_pk} #{id_sql_type});
286
- #{sql.dup.insert sql.index(/ (DEFAULT )?VALUES/i), " OUTPUT INSERTED.#{quoted_pk} INTO @ssaIdInsertTable"}
287
- SELECT CAST(#{quoted_pk} AS #{id_sql_type}) FROM @ssaIdInsertTable
285
+ DECLARE @ssaIdInsertTable table (#{quoted_pk.map { |subkey| "#{subkey} #{id_sql_type}"}.join(", ") });
286
+ #{sql.dup.insert sql.index(/ (DEFAULT )?VALUES/i), " OUTPUT #{ quoted_pk.map { |subkey| "INSERTED.#{subkey}" }.join(", ") } INTO @ssaIdInsertTable"}
287
+ SELECT #{quoted_pk.map {|subkey| "CAST(#{subkey} AS #{id_sql_type}) #{subkey}"}.join(", ")} FROM @ssaIdInsertTable
288
288
  SQL
289
289
  else
290
290
  returning_columns = returning || Array(pk)
@@ -28,4 +28,14 @@ class SQLServerTriggerTest < ActiveRecord::TestCase
28
28
  _(obj.id).must_be :present?
29
29
  _(obj.id.to_s).must_equal SSTestTriggerHistory.first.id_source
30
30
  end
31
+
32
+ it "can insert into a table with composite pk with output inserted - with a true setting for table name" do
33
+ exclude_output_inserted_table_names["sst_table_with_composite_pk_trigger"] = true
34
+ assert SSTestTriggerHistory.all.empty?
35
+ obj = SSTestTriggerCompositePk.create! pk_col_one: 123, pk_col_two: 42, event_name: "test trigger"
36
+ _(obj.event_name).must_equal "test trigger"
37
+ _(obj.pk_col_one).must_equal 123
38
+ _(obj.pk_col_two).must_equal 42
39
+ _(obj.pk_col_one.to_s).must_equal SSTestTriggerHistory.first.id_source
40
+ end
31
41
  end
@@ -7,3 +7,7 @@ end
7
7
  class SSTestTriggerUuid < ActiveRecord::Base
8
8
  self.table_name = "sst_table_with_uuid_trigger"
9
9
  end
10
+
11
+ class SSTestTriggerCompositePk < ActiveRecord::Base
12
+ self.table_name = "sst_table_with_composite_pk_trigger"
13
+ end
@@ -232,6 +232,23 @@ ActiveRecord::Schema.define do
232
232
  SELECT id AS id_source, event_name FROM INSERTED
233
233
  SQL
234
234
 
235
+ execute "IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sst_table_with_composite_pk_trigger') DROP TABLE sst_table_with_composite_pk_trigger"
236
+ execute <<-SQL
237
+ CREATE TABLE sst_table_with_composite_pk_trigger(
238
+ pk_col_one int NOT NULL,
239
+ pk_col_two int NOT NULL,
240
+ event_name nvarchar(255),
241
+ CONSTRAINT PK_sst_table_with_composite_pk_trigger PRIMARY KEY (pk_col_one, pk_col_two)
242
+ )
243
+ SQL
244
+ execute <<-SQL
245
+ CREATE TRIGGER sst_table_with_composite_pk_trigger_t ON sst_table_with_composite_pk_trigger
246
+ FOR INSERT
247
+ AS
248
+ INSERT INTO sst_table_with_trigger_history (id_source, event_name)
249
+ SELECT pk_col_one AS id_source, event_name FROM INSERTED
250
+ SQL
251
+
235
252
  # Another schema.
236
253
 
237
254
  create_table :sst_schema_columns, force: true do |t|
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: 7.1.2
4
+ version: 7.1.3
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-01-23 00:00:00.000000000 Z
18
+ date: 2024-02-15 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: activerecord
@@ -239,8 +239,8 @@ licenses:
239
239
  - MIT
240
240
  metadata:
241
241
  bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
242
- changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v7.1.2/CHANGELOG.md
243
- source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v7.1.2
242
+ changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v7.1.3/CHANGELOG.md
243
+ source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v7.1.3
244
244
  post_install_message:
245
245
  rdoc_options: []
246
246
  require_paths:
@@ -256,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
256
256
  - !ruby/object:Gem::Version
257
257
  version: '0'
258
258
  requirements: []
259
- rubygems_version: 3.4.7
259
+ rubygems_version: 3.4.22
260
260
  signing_key:
261
261
  specification_version: 4
262
262
  summary: ActiveRecord SQL Server Adapter.