activerecord-sqlserver-adapter 8.0.10 → 8.1.0
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/.devcontainer/Dockerfile +1 -1
- data/.github/workflows/ci.yml +34 -3
- data/CHANGELOG.md +14 -68
- data/Dockerfile.ci +1 -1
- data/Gemfile +7 -9
- data/Guardfile +2 -2
- data/README.md +33 -13
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/activerecord-sqlserver-adapter.gemspec +15 -16
- data/compose.ci.yaml +8 -1
- data/lib/active_record/connection_adapters/sqlserver/core_ext/attribute_methods.rb +1 -1
- data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +1 -2
- data/lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb +1 -1
- data/lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb +4 -4
- data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +118 -83
- data/lib/active_record/connection_adapters/sqlserver/database_tasks.rb +3 -4
- data/lib/active_record/connection_adapters/sqlserver/quoting.rb +7 -7
- data/lib/active_record/connection_adapters/sqlserver/schema_creation.rb +24 -12
- data/lib/active_record/connection_adapters/sqlserver/schema_dumper.rb +17 -8
- data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +162 -156
- data/lib/active_record/connection_adapters/sqlserver/showplan/printer_table.rb +2 -2
- data/lib/active_record/connection_adapters/sqlserver/showplan.rb +5 -5
- data/lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb +2 -7
- data/lib/active_record/connection_adapters/sqlserver/table_definition.rb +3 -1
- data/lib/active_record/connection_adapters/sqlserver/type/data.rb +3 -3
- data/lib/active_record/connection_adapters/sqlserver/type/date.rb +3 -3
- data/lib/active_record/connection_adapters/sqlserver/type/datetime.rb +3 -4
- data/lib/active_record/connection_adapters/sqlserver/type/smalldatetime.rb +1 -1
- data/lib/active_record/connection_adapters/sqlserver/type/time.rb +4 -6
- data/lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb +1 -1
- data/lib/active_record/connection_adapters/sqlserver/type/uuid.rb +0 -2
- data/lib/active_record/connection_adapters/sqlserver/utils.rb +10 -12
- data/lib/active_record/connection_adapters/sqlserver_adapter.rb +118 -66
- data/lib/active_record/connection_adapters/sqlserver_column.rb +17 -9
- data/lib/active_record/tasks/sqlserver_database_tasks.rb +5 -5
- data/lib/arel/visitors/sqlserver.rb +55 -26
- data/test/cases/active_schema_test_sqlserver.rb +45 -23
- data/test/cases/adapter_test_sqlserver.rb +72 -59
- data/test/cases/coerced_tests.rb +365 -161
- data/test/cases/column_test_sqlserver.rb +328 -316
- data/test/cases/connection_test_sqlserver.rb +15 -11
- data/test/cases/enum_test_sqlserver.rb +8 -9
- data/test/cases/execute_procedure_test_sqlserver.rb +1 -1
- data/test/cases/fetch_test_sqlserver.rb +1 -1
- data/test/cases/helper_sqlserver.rb +7 -3
- data/test/cases/index_test_sqlserver.rb +8 -6
- data/test/cases/insert_all_test_sqlserver.rb +3 -28
- data/test/cases/json_test_sqlserver.rb +8 -8
- data/test/cases/lateral_test_sqlserver.rb +2 -2
- data/test/cases/migration_test_sqlserver.rb +12 -12
- data/test/cases/pessimistic_locking_test_sqlserver.rb +6 -6
- data/test/cases/primary_keys_test_sqlserver.rb +4 -4
- data/test/cases/rake_test_sqlserver.rb +15 -7
- data/test/cases/schema_dumper_test_sqlserver.rb +109 -113
- data/test/cases/schema_test_sqlserver.rb +7 -7
- data/test/cases/transaction_test_sqlserver.rb +6 -8
- data/test/cases/trigger_test_sqlserver.rb +1 -1
- data/test/cases/utils_test_sqlserver.rb +3 -3
- data/test/cases/view_test_sqlserver.rb +12 -8
- data/test/cases/virtual_column_test_sqlserver.rb +113 -0
- data/test/migrations/create_clients_and_change_column_collation.rb +2 -2
- data/test/models/sqlserver/edge_schema.rb +2 -2
- data/test/schema/sqlserver_specific_schema.rb +49 -37
- data/test/support/coerceable_test_sqlserver.rb +10 -10
- data/test/support/connection_reflection.rb +0 -5
- data/test/support/core_ext/backtrace_cleaner.rb +36 -0
- data/test/support/query_assertions.rb +6 -6
- data/test/support/rake_helpers.rb +6 -10
- metadata +12 -107
|
@@ -7,36 +7,36 @@ ActiveRecord::Schema.define do
|
|
|
7
7
|
|
|
8
8
|
create_table :sst_datatypes_migration, force: true do |t|
|
|
9
9
|
# Simple Rails conventions.
|
|
10
|
-
t.integer
|
|
11
|
-
t.bigint
|
|
12
|
-
t.boolean
|
|
13
|
-
t.decimal
|
|
14
|
-
t.float
|
|
15
|
-
t.string
|
|
16
|
-
t.text
|
|
17
|
-
t.datetime
|
|
18
|
-
t.datetime
|
|
10
|
+
t.integer :integer_col
|
|
11
|
+
t.bigint :bigint_col
|
|
12
|
+
t.boolean :boolean_col
|
|
13
|
+
t.decimal :decimal_col
|
|
14
|
+
t.float :float_col
|
|
15
|
+
t.string :string_col
|
|
16
|
+
t.text :text_col
|
|
17
|
+
t.datetime :datetime_nil_precision_col, precision: nil
|
|
18
|
+
t.datetime :datetime_col # Precision defaults to 6
|
|
19
19
|
t.timestamp :timestamp_col # Precision defaults to 6
|
|
20
|
-
t.time
|
|
21
|
-
t.date
|
|
22
|
-
t.binary
|
|
20
|
+
t.time :time_col
|
|
21
|
+
t.date :date_col
|
|
22
|
+
t.binary :binary_col
|
|
23
23
|
# Our type methods.
|
|
24
|
-
t.real
|
|
25
|
-
t.money
|
|
26
|
-
t.smalldatetime
|
|
27
|
-
t.datetime2
|
|
24
|
+
t.real :real_col
|
|
25
|
+
t.money :money_col
|
|
26
|
+
t.smalldatetime :smalldatetime_col
|
|
27
|
+
t.datetime2 :datetime2_col
|
|
28
28
|
t.datetimeoffset :datetimeoffset
|
|
29
|
-
t.smallmoney
|
|
30
|
-
t.char
|
|
31
|
-
t.varchar
|
|
32
|
-
t.text_basic
|
|
33
|
-
t.nchar
|
|
34
|
-
t.ntext
|
|
35
|
-
t.binary_basic
|
|
36
|
-
t.binary_basic
|
|
37
|
-
t.varbinary
|
|
38
|
-
t.uuid
|
|
39
|
-
t.ss_timestamp
|
|
29
|
+
t.smallmoney :smallmoney_col
|
|
30
|
+
t.char :char_col
|
|
31
|
+
t.varchar :varchar_col
|
|
32
|
+
t.text_basic :text_basic_col
|
|
33
|
+
t.nchar :nchar_col
|
|
34
|
+
t.ntext :ntext_col
|
|
35
|
+
t.binary_basic :binary_basic_col
|
|
36
|
+
t.binary_basic :binary_basic_16_col, limit: 16
|
|
37
|
+
t.varbinary :varbinary_col
|
|
38
|
+
t.uuid :uuid_col
|
|
39
|
+
t.ss_timestamp :sstimestamp_col
|
|
40
40
|
if supports_json?
|
|
41
41
|
t.json :json_col
|
|
42
42
|
else
|
|
@@ -48,7 +48,7 @@ ActiveRecord::Schema.define do
|
|
|
48
48
|
|
|
49
49
|
if ENV["IN_MEMORY_OLTP"] && supports_in_memory_oltp?
|
|
50
50
|
create_table "sst_memory", force: true, id: false,
|
|
51
|
-
|
|
51
|
+
options: "WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)" do |t|
|
|
52
52
|
t.primary_key_nonclustered :id
|
|
53
53
|
t.string :name
|
|
54
54
|
t.timestamps
|
|
@@ -63,8 +63,8 @@ ActiveRecord::Schema.define do
|
|
|
63
63
|
|
|
64
64
|
create_table "sst_uuids", force: true, id: :uuid do |t|
|
|
65
65
|
t.string :name
|
|
66
|
-
t.uuid
|
|
67
|
-
t.uuid
|
|
66
|
+
t.uuid :other_uuid, default: "NEWID()"
|
|
67
|
+
t.uuid :uuid_nil_default, default: nil
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
create_table "sst_my$strange_table", force: true do |t|
|
|
@@ -85,7 +85,7 @@ ActiveRecord::Schema.define do
|
|
|
85
85
|
execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'sst_quoted-view1') DROP VIEW [sst_quoted-view1]"
|
|
86
86
|
execute "CREATE VIEW [sst_quoted-view1] AS SELECT * FROM [sst_quoted-table]"
|
|
87
87
|
execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'sst_quoted-view2') DROP VIEW [sst_quoted-view2]"
|
|
88
|
-
execute "CREATE VIEW [sst_quoted-view2] AS \n /*#{
|
|
88
|
+
execute "CREATE VIEW [sst_quoted-view2] AS \n /*#{"x" * 4000}}*/ \n SELECT * FROM [sst_quoted-table]"
|
|
89
89
|
|
|
90
90
|
create_table :sst_string_defaults, force: true do |t|
|
|
91
91
|
t.column :string_with_null_default, :string, default: nil
|
|
@@ -138,21 +138,33 @@ ActiveRecord::Schema.define do
|
|
|
138
138
|
)
|
|
139
139
|
TINYITPKTABLE
|
|
140
140
|
|
|
141
|
-
|
|
142
|
-
|
|
141
|
+
begin
|
|
142
|
+
execute "DROP DEFAULT [sst_getdateobject];"
|
|
143
|
+
rescue
|
|
144
|
+
nil
|
|
145
|
+
end
|
|
146
|
+
begin
|
|
147
|
+
execute "CREATE DEFAULT [sst_getdateobject] AS getdate();"
|
|
148
|
+
rescue
|
|
149
|
+
nil
|
|
150
|
+
end
|
|
143
151
|
create_table "sst_defaultobjects", force: true do |t|
|
|
144
152
|
t.string :name
|
|
145
|
-
t.date
|
|
153
|
+
t.date :date
|
|
146
154
|
end
|
|
147
155
|
execute "sp_bindefault 'sst_getdateobject', 'sst_defaultobjects.date'"
|
|
148
156
|
|
|
149
|
-
|
|
157
|
+
begin
|
|
158
|
+
execute "DROP PROCEDURE my_getutcdate"
|
|
159
|
+
rescue
|
|
160
|
+
nil
|
|
161
|
+
end
|
|
150
162
|
execute <<-SQL
|
|
151
163
|
CREATE PROCEDURE my_getutcdate AS
|
|
152
164
|
SELECT GETUTCDATE() utcdate
|
|
153
165
|
SQL
|
|
154
166
|
|
|
155
|
-
create_table
|
|
167
|
+
create_table "A Table With Spaces", force: true do |t|
|
|
156
168
|
t.string :name
|
|
157
169
|
end
|
|
158
170
|
|
|
@@ -195,7 +207,7 @@ ActiveRecord::Schema.define do
|
|
|
195
207
|
execute <<-STRINGDEFAULTSBIGVIEW
|
|
196
208
|
CREATE VIEW sst_string_defaults_big_view AS
|
|
197
209
|
SELECT id, string_with_pretend_null_one as pretend_null
|
|
198
|
-
/*#{
|
|
210
|
+
/*#{"x" * 4000}}*/
|
|
199
211
|
FROM sst_string_defaults
|
|
200
212
|
STRINGDEFAULTSBIGVIEW
|
|
201
213
|
|
|
@@ -20,32 +20,32 @@ module ARTest
|
|
|
20
20
|
|
|
21
21
|
def coerce_all_tests!
|
|
22
22
|
instance_methods(false).each do |method|
|
|
23
|
-
next unless method.to_s
|
|
23
|
+
next unless method.to_s.start_with?("test")
|
|
24
24
|
|
|
25
25
|
undef_method(method)
|
|
26
26
|
end
|
|
27
|
-
|
|
27
|
+
$stdout.puts "🙉 🙈 🙊 Undefined all tests: #{name}"
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
private
|
|
31
31
|
|
|
32
32
|
def coerced_test_warning(test_to_coerce)
|
|
33
|
-
if test_to_coerce.is_a?(Regexp)
|
|
34
|
-
|
|
33
|
+
method = if test_to_coerce.is_a?(Regexp)
|
|
34
|
+
instance_methods(false).select { |m| m =~ test_to_coerce }
|
|
35
35
|
else
|
|
36
|
-
|
|
36
|
+
test_to_coerce
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
Array(method).each do |m|
|
|
40
40
|
result = if m && method_defined?(m)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
alias_method("original_#{test_to_coerce.inspect.tr('/\:"', "")}", m)
|
|
42
|
+
undef_method(m)
|
|
43
|
+
end
|
|
44
44
|
|
|
45
45
|
if result.blank?
|
|
46
|
-
|
|
46
|
+
$stdout.puts "🐳 Unfound coerced test: #{name}##{m}"
|
|
47
47
|
else
|
|
48
|
-
|
|
48
|
+
$stdout.puts "🐵 Undefined coerced test: #{name}##{m}"
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
51
|
end
|
|
@@ -15,11 +15,6 @@ module ARTest
|
|
|
15
15
|
connection.instance_variable_get :@connection_parameters
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
def connection_tds_73
|
|
19
|
-
rc = connection.raw_connection
|
|
20
|
-
rc.respond_to?(:tds_73?) && rc.tds_73?
|
|
21
|
-
end
|
|
22
|
-
|
|
23
18
|
def connection_sqlserver_azure?
|
|
24
19
|
connection.sqlserver_azure?
|
|
25
20
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Need to handle `ActiveRecord` lines like they are in the source rather than in the Rails gem.
|
|
4
|
+
module SQLServer
|
|
5
|
+
module BacktraceCleaner
|
|
6
|
+
extend ActiveSupport::Concern
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def add_gem_filter
|
|
11
|
+
gems_paths = (Gem.path | [Gem.default_dir]).map { |p| Regexp.escape(p) }
|
|
12
|
+
return if gems_paths.empty?
|
|
13
|
+
|
|
14
|
+
gems_regexp = %r{\A(#{gems_paths.join("|")})/(bundler/)?gems/([^/]+)-([\w.]+)/(.*)}
|
|
15
|
+
gems_result = '\3 (\4) \5'
|
|
16
|
+
|
|
17
|
+
add_filter do |line|
|
|
18
|
+
if line.match?(/activerecord/)
|
|
19
|
+
line
|
|
20
|
+
else
|
|
21
|
+
line.sub(gems_regexp, gems_result)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def add_gem_silencer
|
|
27
|
+
add_silencer do |line|
|
|
28
|
+
ActiveSupport::BacktraceCleaner::FORMATTED_GEMS_PATTERN.match?(line) && !/activerecord/.match?(line)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
ActiveSupport.on_load(:active_record) do
|
|
35
|
+
ActiveSupport::BacktraceCleaner.prepend(SQLServer::BacktraceCleaner)
|
|
36
|
+
end
|
|
@@ -16,13 +16,13 @@ module ARTest
|
|
|
16
16
|
if count
|
|
17
17
|
assert_equal count, queries.size, "#{queries.size} instead of #{count} queries were executed. Queries: #{queries.join("\n\n")}"
|
|
18
18
|
else
|
|
19
|
-
assert_operator queries.size, :>=, 1, "1 or more queries expected, but none were executed.#{
|
|
19
|
+
assert_operator queries.size, :>=, 1, "1 or more queries expected, but none were executed.#{"\nQueries:\n#{queries.join("\n")}" unless queries.empty?}"
|
|
20
20
|
end
|
|
21
21
|
result
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
def assert_queries_and_values_match(match, bound_values=[], count: nil, &block)
|
|
25
|
+
def assert_queries_and_values_match(match, bound_values = [], count: nil, &block)
|
|
26
26
|
ActiveRecord::Base.lease_connection.materialize_transactions
|
|
27
27
|
|
|
28
28
|
counter = ActiveRecord::Assertions::QueryAssertions::SQLCounter.new
|
|
@@ -35,9 +35,9 @@ module ARTest
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
if count
|
|
38
|
-
assert_equal count, matched_queries.size, "#{matched_queries.size} instead of #{count} queries were executed.#{
|
|
38
|
+
assert_equal count, matched_queries.size, "#{matched_queries.size} instead of #{count} queries were executed.#{"\nQueries:\n#{counter.log.join("\n")}" unless count.log.empty?}"
|
|
39
39
|
else
|
|
40
|
-
assert_operator matched_queries.size, :>=, 1, "1 or more queries expected, but none were executed.#{
|
|
40
|
+
assert_operator matched_queries.size, :>=, 1, "1 or more queries expected, but none were executed.#{"\nQueries:\n#{counter.log.join("\n")}" unless counter.log.empty?}"
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
result
|
|
@@ -53,7 +53,7 @@ module ARTest
|
|
|
53
53
|
grouped_queries = [[]]
|
|
54
54
|
|
|
55
55
|
queries.each do |query|
|
|
56
|
-
if
|
|
56
|
+
if /SAVE TRANSACTION \S+/.match?(query)
|
|
57
57
|
grouped_queries << [query]
|
|
58
58
|
else
|
|
59
59
|
grouped_queries.last << query
|
|
@@ -61,7 +61,7 @@ module ARTest
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
grouped_queries.each do |group|
|
|
64
|
-
group.append "/* release savepoint placeholder for testing */" if
|
|
64
|
+
group.append "/* release savepoint placeholder for testing */" if /SAVE TRANSACTION \S+/.match?(group.first)
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
grouped_queries.flatten
|
|
@@ -6,11 +6,9 @@ SQLSERVER_COERCED = "test/cases/coerced_tests.rb"
|
|
|
6
6
|
def env_ar_test_files
|
|
7
7
|
return unless ENV["TEST_FILES_AR"] && !ENV["TEST_FILES_AR"].empty?
|
|
8
8
|
|
|
9
|
-
@env_ar_test_files ||=
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}.sort
|
|
13
|
-
end
|
|
9
|
+
@env_ar_test_files ||= ENV["TEST_FILES_AR"].split(",").map { |file|
|
|
10
|
+
File.join ARTest::SQLServer.root_activerecord, file.strip
|
|
11
|
+
}.sort
|
|
14
12
|
end
|
|
15
13
|
|
|
16
14
|
def env_test_files
|
|
@@ -24,11 +22,9 @@ def sqlserver_cases
|
|
|
24
22
|
end
|
|
25
23
|
|
|
26
24
|
def ar_cases
|
|
27
|
-
@ar_cases ||=
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}.sort
|
|
31
|
-
end
|
|
25
|
+
@ar_cases ||= Dir.glob("#{ARTest::SQLServer.root_activerecord}/test/cases/**/*_test.rb").reject { |x|
|
|
26
|
+
x.include?("/adapters/") || x.include?("/encryption/performance")
|
|
27
|
+
}.sort
|
|
32
28
|
end
|
|
33
29
|
|
|
34
30
|
def test_files
|
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.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ken Collins
|
|
@@ -22,28 +22,28 @@ dependencies:
|
|
|
22
22
|
requirements:
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 8.0.
|
|
25
|
+
version: 8.1.0.rc1
|
|
26
26
|
type: :runtime
|
|
27
27
|
prerelease: false
|
|
28
28
|
version_requirements: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - "~>"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 8.0.
|
|
32
|
+
version: 8.1.0.rc1
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: tiny_tds
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
|
-
- - "
|
|
37
|
+
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '0'
|
|
39
|
+
version: '3.0'
|
|
40
40
|
type: :runtime
|
|
41
41
|
prerelease: false
|
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
|
-
- - "
|
|
44
|
+
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '0'
|
|
46
|
+
version: '3.0'
|
|
47
47
|
description: ActiveRecord SQL Server Adapter. SQL Server 2012 and upward.
|
|
48
48
|
email:
|
|
49
49
|
- ken@metaskills.net
|
|
@@ -184,6 +184,7 @@ files:
|
|
|
184
184
|
- test/cases/utils_test_sqlserver.rb
|
|
185
185
|
- test/cases/uuid_test_sqlserver.rb
|
|
186
186
|
- test/cases/view_test_sqlserver.rb
|
|
187
|
+
- test/cases/virtual_column_test_sqlserver.rb
|
|
187
188
|
- test/config.yml
|
|
188
189
|
- test/debug.rb
|
|
189
190
|
- test/fixtures/1px.gif
|
|
@@ -226,6 +227,7 @@ files:
|
|
|
226
227
|
- test/schema/sqlserver_specific_schema.rb
|
|
227
228
|
- test/support/coerceable_test_sqlserver.rb
|
|
228
229
|
- test/support/connection_reflection.rb
|
|
230
|
+
- test/support/core_ext/backtrace_cleaner.rb
|
|
229
231
|
- test/support/core_ext/query_cache.rb
|
|
230
232
|
- test/support/load_schema_sqlserver.rb
|
|
231
233
|
- test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump
|
|
@@ -243,8 +245,8 @@ licenses:
|
|
|
243
245
|
- MIT
|
|
244
246
|
metadata:
|
|
245
247
|
bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
|
|
246
|
-
changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v8.0
|
|
247
|
-
source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.0
|
|
248
|
+
changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v8.1.0/CHANGELOG.md
|
|
249
|
+
source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.1.0
|
|
248
250
|
rdoc_options: []
|
|
249
251
|
require_paths:
|
|
250
252
|
- lib
|
|
@@ -262,101 +264,4 @@ requirements: []
|
|
|
262
264
|
rubygems_version: 3.6.7
|
|
263
265
|
specification_version: 4
|
|
264
266
|
summary: ActiveRecord SQL Server Adapter.
|
|
265
|
-
test_files:
|
|
266
|
-
- test/appveyor/dbsetup.ps1
|
|
267
|
-
- test/appveyor/dbsetup.sql
|
|
268
|
-
- test/bin/install-freetds.sh
|
|
269
|
-
- test/bin/install-openssl.sh
|
|
270
|
-
- test/bin/setup.sh
|
|
271
|
-
- test/cases/active_schema_test_sqlserver.rb
|
|
272
|
-
- test/cases/adapter_test_sqlserver.rb
|
|
273
|
-
- test/cases/change_column_collation_test_sqlserver.rb
|
|
274
|
-
- test/cases/change_column_index_test_sqlserver.rb
|
|
275
|
-
- test/cases/change_column_null_test_sqlserver.rb
|
|
276
|
-
- test/cases/coerced_tests.rb
|
|
277
|
-
- test/cases/column_test_sqlserver.rb
|
|
278
|
-
- test/cases/connection_test_sqlserver.rb
|
|
279
|
-
- test/cases/dbconsole.rb
|
|
280
|
-
- test/cases/disconnected_test_sqlserver.rb
|
|
281
|
-
- test/cases/eager_load_too_many_ids_test_sqlserver.rb
|
|
282
|
-
- test/cases/enum_test_sqlserver.rb
|
|
283
|
-
- test/cases/execute_procedure_test_sqlserver.rb
|
|
284
|
-
- test/cases/fetch_test_sqlserver.rb
|
|
285
|
-
- test/cases/fully_qualified_identifier_test_sqlserver.rb
|
|
286
|
-
- test/cases/helper_sqlserver.rb
|
|
287
|
-
- test/cases/in_clause_test_sqlserver.rb
|
|
288
|
-
- test/cases/index_test_sqlserver.rb
|
|
289
|
-
- test/cases/insert_all_test_sqlserver.rb
|
|
290
|
-
- test/cases/json_test_sqlserver.rb
|
|
291
|
-
- test/cases/lateral_test_sqlserver.rb
|
|
292
|
-
- test/cases/migration_test_sqlserver.rb
|
|
293
|
-
- test/cases/optimizer_hints_test_sqlserver.rb
|
|
294
|
-
- test/cases/order_test_sqlserver.rb
|
|
295
|
-
- test/cases/pessimistic_locking_test_sqlserver.rb
|
|
296
|
-
- test/cases/primary_keys_test_sqlserver.rb
|
|
297
|
-
- test/cases/rake_test_sqlserver.rb
|
|
298
|
-
- test/cases/schema_dumper_test_sqlserver.rb
|
|
299
|
-
- test/cases/schema_test_sqlserver.rb
|
|
300
|
-
- test/cases/showplan_test_sqlserver.rb
|
|
301
|
-
- test/cases/specific_schema_test_sqlserver.rb
|
|
302
|
-
- test/cases/temp_test_sqlserver.rb
|
|
303
|
-
- test/cases/temporary_table_test_sqlserver.rb
|
|
304
|
-
- test/cases/transaction_test_sqlserver.rb
|
|
305
|
-
- test/cases/trigger_test_sqlserver.rb
|
|
306
|
-
- test/cases/utils_test_sqlserver.rb
|
|
307
|
-
- test/cases/uuid_test_sqlserver.rb
|
|
308
|
-
- test/cases/view_test_sqlserver.rb
|
|
309
|
-
- test/config.yml
|
|
310
|
-
- test/debug.rb
|
|
311
|
-
- test/fixtures/1px.gif
|
|
312
|
-
- test/fixtures/sst_customers_view.yml
|
|
313
|
-
- test/migrations/create_clients_and_change_column_collation.rb
|
|
314
|
-
- test/migrations/create_clients_and_change_column_null.rb
|
|
315
|
-
- test/migrations/transaction_table/1_table_will_never_be_created.rb
|
|
316
|
-
- test/models/sqlserver/alien.rb
|
|
317
|
-
- test/models/sqlserver/booking.rb
|
|
318
|
-
- test/models/sqlserver/composite_pk.rb
|
|
319
|
-
- test/models/sqlserver/customers_view.rb
|
|
320
|
-
- test/models/sqlserver/datatype.rb
|
|
321
|
-
- test/models/sqlserver/datatype_migration.rb
|
|
322
|
-
- test/models/sqlserver/dollar_table_name.rb
|
|
323
|
-
- test/models/sqlserver/edge_schema.rb
|
|
324
|
-
- test/models/sqlserver/fk_has_fk.rb
|
|
325
|
-
- test/models/sqlserver/fk_has_pk.rb
|
|
326
|
-
- test/models/sqlserver/natural_pk_data.rb
|
|
327
|
-
- test/models/sqlserver/natural_pk_int_data.rb
|
|
328
|
-
- test/models/sqlserver/no_pk_data.rb
|
|
329
|
-
- test/models/sqlserver/object_default.rb
|
|
330
|
-
- test/models/sqlserver/quoted_table.rb
|
|
331
|
-
- test/models/sqlserver/quoted_view_1.rb
|
|
332
|
-
- test/models/sqlserver/quoted_view_2.rb
|
|
333
|
-
- test/models/sqlserver/recurring_task.rb
|
|
334
|
-
- test/models/sqlserver/sst_memory.rb
|
|
335
|
-
- test/models/sqlserver/sst_string_collation.rb
|
|
336
|
-
- test/models/sqlserver/string_default.rb
|
|
337
|
-
- test/models/sqlserver/string_defaults_big_view.rb
|
|
338
|
-
- test/models/sqlserver/string_defaults_view.rb
|
|
339
|
-
- test/models/sqlserver/table_with_spaces.rb
|
|
340
|
-
- test/models/sqlserver/tinyint_pk.rb
|
|
341
|
-
- test/models/sqlserver/trigger.rb
|
|
342
|
-
- test/models/sqlserver/trigger_history.rb
|
|
343
|
-
- test/models/sqlserver/upper.rb
|
|
344
|
-
- test/models/sqlserver/uppered.rb
|
|
345
|
-
- test/models/sqlserver/uuid.rb
|
|
346
|
-
- test/schema/datatypes/2012.sql
|
|
347
|
-
- test/schema/enable-in-memory-oltp.sql
|
|
348
|
-
- test/schema/sqlserver_specific_schema.rb
|
|
349
|
-
- test/support/coerceable_test_sqlserver.rb
|
|
350
|
-
- test/support/connection_reflection.rb
|
|
351
|
-
- test/support/core_ext/query_cache.rb
|
|
352
|
-
- test/support/load_schema_sqlserver.rb
|
|
353
|
-
- test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump
|
|
354
|
-
- test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic_associations.dump
|
|
355
|
-
- test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic.dump
|
|
356
|
-
- test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic_associations.dump
|
|
357
|
-
- test/support/minitest_sqlserver.rb
|
|
358
|
-
- test/support/paths_sqlserver.rb
|
|
359
|
-
- test/support/query_assertions.rb
|
|
360
|
-
- test/support/rake_helpers.rb
|
|
361
|
-
- test/support/table_definition_sqlserver.rb
|
|
362
|
-
- test/support/test_in_memory_oltp.rb
|
|
267
|
+
test_files: []
|