activerecord-sqlserver-adapter 7.1.2 → 7.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.devcontainer/boot.sh +2 -2
- data/.devcontainer/docker-compose.yml +5 -0
- data/CHANGELOG.md +6 -0
- data/README.md +2 -2
- data/VERSION +1 -1
- data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +4 -4
- data/test/cases/trigger_test_sqlserver.rb +10 -0
- data/test/models/sqlserver/trigger.rb +4 -0
- data/test/schema/sqlserver_specific_schema.rb +17 -0
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b304aee82f2ca78fe1db797b127b31a73b95df1dfb670a7232a68d57b6d9846e
|
4
|
+
data.tar.gz: bb52aecdc34253336fdeafb2fad5d26a3cb48ea7dfd2a453c3b87f07a423c0a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34a017ac93ad7e077f41e4897185ccf20820774e1b5ee3c49988fc58d3b0febf422e6989155100b06eab3b2bcfcd79fab35ec83a31d4c9b0a266fc54f06da652
|
7
|
+
data.tar.gz: e9fa8fc3869bc0cc20eac834eef6737421d0ff4cfc27a1064843c89a3fd4447f02c5b35338661740c55cbd7caf687151aa469fc2092c01a048ac4967612c88ad
|
data/.devcontainer/boot.sh
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
sudo chown -R vscode:vscode /usr/local/bundle
|
2
2
|
|
3
|
-
# Wait for
|
4
|
-
sleep
|
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
|
data/CHANGELOG.md
CHANGED
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.
|
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
|
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.
|
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(
|
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.#{
|
287
|
-
SELECT CAST(#{
|
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
|
@@ -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.
|
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-
|
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.
|
243
|
-
source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v7.1.
|
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.
|
259
|
+
rubygems_version: 3.4.22
|
260
260
|
signing_key:
|
261
261
|
specification_version: 4
|
262
262
|
summary: ActiveRecord SQL Server Adapter.
|