activerecord-sqlserver-adapter 8.0.12 → 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 +13 -84
- data/Dockerfile.ci +1 -1
- data/Gemfile +9 -12
- 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 +170 -172
- 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 +119 -67
- 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 -61
- data/test/cases/change_column_null_test_sqlserver.rb +16 -46
- 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 +8 -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 -39
- 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 +13 -108
|
@@ -2,31 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
require "cases/helper_sqlserver"
|
|
4
4
|
require "migrations/create_clients_and_change_column_null"
|
|
5
|
-
require "cases/migration/helper"
|
|
6
5
|
|
|
7
6
|
class ChangeColumnNullTestSqlServer < ActiveRecord::TestCase
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
before do
|
|
8
|
+
@old_verbose = ActiveRecord::Migration.verbose
|
|
9
|
+
ActiveRecord::Migration.verbose = false
|
|
10
|
+
CreateClientsAndChangeColumnNull.new.up
|
|
12
11
|
end
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
CreateClientsAndChangeColumnNull.new.up
|
|
19
|
-
end
|
|
13
|
+
after do
|
|
14
|
+
CreateClientsAndChangeColumnNull.new.down
|
|
15
|
+
ActiveRecord::Migration.verbose = @old_verbose
|
|
16
|
+
end
|
|
20
17
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
end
|
|
18
|
+
def find_column(table, name)
|
|
19
|
+
table.find { |column| column.name == name }
|
|
20
|
+
end
|
|
25
21
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
let(:clients_table) { connection.columns("clients") }
|
|
23
|
+
let(:name_column) { find_column(clients_table, "name") }
|
|
24
|
+
let(:code_column) { find_column(clients_table, "code") }
|
|
25
|
+
let(:value_column) { find_column(clients_table, "value") }
|
|
29
26
|
|
|
27
|
+
describe "#change_column_null" do
|
|
30
28
|
it "does not change the column limit" do
|
|
31
29
|
_(name_column.limit).must_equal 15
|
|
32
30
|
end
|
|
@@ -43,32 +41,4 @@ class ChangeColumnNullTestSqlServer < ActiveRecord::TestCase
|
|
|
43
41
|
_(value_column.scale).must_equal 8
|
|
44
42
|
end
|
|
45
43
|
end
|
|
46
|
-
|
|
47
|
-
it "datetime2 column" do
|
|
48
|
-
add_column :test_models, :expiry_date, :datetime, precision: 6, null: true
|
|
49
|
-
|
|
50
|
-
_(find_column(:test_models, :expiry_date).sql_type).must_equal "datetime2(6)"
|
|
51
|
-
_(find_column(:test_models, :expiry_date).null).must_equal true
|
|
52
|
-
|
|
53
|
-
connection.change_column_null(:test_models, :expiry_date, false)
|
|
54
|
-
|
|
55
|
-
_(find_column(:test_models, :expiry_date).sql_type).must_equal "datetime2(6)"
|
|
56
|
-
_(find_column(:test_models, :expiry_date).null).must_equal false
|
|
57
|
-
ensure
|
|
58
|
-
remove_column("test_models", "expiry_date")
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
it "datetime column" do
|
|
62
|
-
add_column :test_models, :expiry_date, :datetime, precision: nil, null: true
|
|
63
|
-
|
|
64
|
-
_(find_column(:test_models, :expiry_date).sql_type).must_equal "datetime"
|
|
65
|
-
_(find_column(:test_models, :expiry_date).null).must_equal true
|
|
66
|
-
|
|
67
|
-
connection.change_column_null(:test_models, :expiry_date, false)
|
|
68
|
-
|
|
69
|
-
_(find_column(:test_models, :expiry_date).sql_type).must_equal "datetime"
|
|
70
|
-
_(find_column(:test_models, :expiry_date).null).must_equal false
|
|
71
|
-
ensure
|
|
72
|
-
remove_column("test_models", "expiry_date")
|
|
73
|
-
end
|
|
74
44
|
end
|