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 +4 -4
- data/CHANGELOG.md +7 -0
- data/VERSION +1 -1
- data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +6 -6
- data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +1 -1
- data/test/cases/schema_test_sqlserver.rb +4 -0
- data/test/cases/view_test_sqlserver.rb +9 -3
- data/test/fixtures/sst_customers_view.yml +6 -0
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55b3eb63b017029ece8397fb34c2eaf883b62e0ac96966e3655b384abd67f2f8
|
4
|
+
data.tar.gz: 235155e68ee4bc3843406f7ed776889c252abd2c95c684dbab5ed4d964fb1648
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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
|
-
|
229
|
-
|
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(
|
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-
|
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
|
52
|
-
it "
|
53
|
-
assert_difference("SSTestCustomersView.count",
|
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
|
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.
|
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:
|
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.
|
245
|
-
source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.0.
|
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.
|
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
|