activerecord-sqlserver-adapter-odbc-extended 8.0.10

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.
Files changed (102) hide show
  1. checksums.yaml +7 -0
  2. data/.github/issue_template.md +22 -0
  3. data/.github/workflows/ci.yml +32 -0
  4. data/.gitignore +9 -0
  5. data/.rubocop.yml +69 -0
  6. data/CHANGELOG.md +5 -0
  7. data/CODE_OF_CONDUCT.md +132 -0
  8. data/Dockerfile.ci +14 -0
  9. data/Gemfile +26 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +104 -0
  12. data/RUNNING_UNIT_TESTS.md +38 -0
  13. data/Rakefile +45 -0
  14. data/VERSION +1 -0
  15. data/activerecord-sqlserver-adapter-odbc-extended.gemspec +34 -0
  16. data/compose.ci.yaml +15 -0
  17. data/lib/active_record/connection_adapters/extended_sqlserver_adapter.rb +204 -0
  18. data/lib/active_record/connection_adapters/sqlserver/core_ext/odbc.rb +41 -0
  19. data/lib/active_record/connection_adapters/sqlserver/odbc_database_statements.rb +234 -0
  20. data/lib/active_record/connection_adapters/sqlserver/type/binary_ext.rb +25 -0
  21. data/lib/activerecord-sqlserver-adapter-odbc-extended.rb +12 -0
  22. data/test/appveyor/dbsetup.ps1 +27 -0
  23. data/test/appveyor/dbsetup.sql +11 -0
  24. data/test/cases/active_schema_test_sqlserver.rb +127 -0
  25. data/test/cases/adapter_test_sqlserver.rb +648 -0
  26. data/test/cases/change_column_collation_test_sqlserver.rb +33 -0
  27. data/test/cases/change_column_null_test_sqlserver.rb +44 -0
  28. data/test/cases/coerced_tests.rb +2796 -0
  29. data/test/cases/column_test_sqlserver.rb +848 -0
  30. data/test/cases/connection_test_sqlserver.rb +138 -0
  31. data/test/cases/dbconsole.rb +19 -0
  32. data/test/cases/disconnected_test_sqlserver.rb +42 -0
  33. data/test/cases/eager_load_too_many_ids_test_sqlserver.rb +18 -0
  34. data/test/cases/enum_test_sqlserver.rb +49 -0
  35. data/test/cases/execute_procedure_test_sqlserver.rb +57 -0
  36. data/test/cases/fetch_test_sqlserver.rb +88 -0
  37. data/test/cases/fully_qualified_identifier_test_sqlserver.rb +72 -0
  38. data/test/cases/helper_sqlserver.rb +61 -0
  39. data/test/cases/migration_test_sqlserver.rb +144 -0
  40. data/test/cases/order_test_sqlserver.rb +153 -0
  41. data/test/cases/pessimistic_locking_test_sqlserver.rb +102 -0
  42. data/test/cases/primary_keys_test_sqlserver.rb +103 -0
  43. data/test/cases/rake_test_sqlserver.rb +198 -0
  44. data/test/cases/schema_dumper_test_sqlserver.rb +296 -0
  45. data/test/cases/schema_test_sqlserver.rb +111 -0
  46. data/test/cases/trigger_test_sqlserver.rb +51 -0
  47. data/test/cases/utils_test_sqlserver.rb +129 -0
  48. data/test/cases/uuid_test_sqlserver.rb +54 -0
  49. data/test/cases/view_test_sqlserver.rb +58 -0
  50. data/test/config.yml +38 -0
  51. data/test/debug.rb +16 -0
  52. data/test/fixtures/1px.gif +0 -0
  53. data/test/migrations/create_clients_and_change_column_collation.rb +19 -0
  54. data/test/migrations/create_clients_and_change_column_null.rb +25 -0
  55. data/test/migrations/transaction_table/1_table_will_never_be_created.rb +11 -0
  56. data/test/models/sqlserver/alien.rb +5 -0
  57. data/test/models/sqlserver/booking.rb +5 -0
  58. data/test/models/sqlserver/composite_pk.rb +9 -0
  59. data/test/models/sqlserver/customers_view.rb +5 -0
  60. data/test/models/sqlserver/datatype.rb +5 -0
  61. data/test/models/sqlserver/datatype_migration.rb +10 -0
  62. data/test/models/sqlserver/dollar_table_name.rb +5 -0
  63. data/test/models/sqlserver/edge_schema.rb +13 -0
  64. data/test/models/sqlserver/fk_has_fk.rb +5 -0
  65. data/test/models/sqlserver/fk_has_pk.rb +5 -0
  66. data/test/models/sqlserver/natural_pk_data.rb +6 -0
  67. data/test/models/sqlserver/natural_pk_int_data.rb +5 -0
  68. data/test/models/sqlserver/no_pk_data.rb +5 -0
  69. data/test/models/sqlserver/object_default.rb +5 -0
  70. data/test/models/sqlserver/quoted_table.rb +9 -0
  71. data/test/models/sqlserver/quoted_view_1.rb +5 -0
  72. data/test/models/sqlserver/quoted_view_2.rb +5 -0
  73. data/test/models/sqlserver/sst_memory.rb +5 -0
  74. data/test/models/sqlserver/sst_string_collation.rb +3 -0
  75. data/test/models/sqlserver/string_default.rb +5 -0
  76. data/test/models/sqlserver/string_defaults_big_view.rb +5 -0
  77. data/test/models/sqlserver/string_defaults_view.rb +5 -0
  78. data/test/models/sqlserver/table_with_spaces.rb +5 -0
  79. data/test/models/sqlserver/tinyint_pk.rb +5 -0
  80. data/test/models/sqlserver/trigger.rb +17 -0
  81. data/test/models/sqlserver/trigger_history.rb +5 -0
  82. data/test/models/sqlserver/upper.rb +5 -0
  83. data/test/models/sqlserver/uppered.rb +5 -0
  84. data/test/models/sqlserver/uuid.rb +5 -0
  85. data/test/schema/datatypes/2012.sql +56 -0
  86. data/test/schema/enable-in-memory-oltp.sql +81 -0
  87. data/test/schema/sqlserver_specific_schema.rb +363 -0
  88. data/test/support/coerceable_test_sqlserver.rb +55 -0
  89. data/test/support/connection_reflection.rb +32 -0
  90. data/test/support/core_ext/query_cache.rb +38 -0
  91. data/test/support/load_schema_sqlserver.rb +29 -0
  92. data/test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump +0 -0
  93. data/test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic_associations.dump +0 -0
  94. data/test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic.dump +0 -0
  95. data/test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic_associations.dump +0 -0
  96. data/test/support/minitest_sqlserver.rb +3 -0
  97. data/test/support/paths_sqlserver.rb +50 -0
  98. data/test/support/query_assertions.rb +49 -0
  99. data/test/support/rake_helpers.rb +46 -0
  100. data/test/support/table_definition_sqlserver.rb +24 -0
  101. data/test/support/test_in_memory_oltp.rb +17 -0
  102. metadata +240 -0
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveRecord
4
+ module ConnectionAdapters
5
+ module SQLServer
6
+ class TableDefinition < ::ActiveRecord::ConnectionAdapters::TableDefinition
7
+ # SQL Server supports precision of 38 for decimal columns. In Rails the test schema includes a column
8
+ # with a precision of 55. This is a problem for SQL Server 2008. This method will override the default
9
+ # decimal method to limit the precision to 38 for the :atoms_in_universe column.
10
+ # See https://github.com/rails/rails/pull/51826/files#diff-2a57b61bbf9ee2c23938fc571d403799f68b4b530d65e2cde219a429bbf10af5L876
11
+ def decimal(*names, **options)
12
+ throw "This 'decimal' method should only be used in a test environment." unless defined?(ActiveSupport::TestCase)
13
+
14
+ names.each do |name|
15
+ options_for_name = options.dup
16
+ options_for_name[:precision] = 38 if name == :atoms_in_universe && options_for_name[:precision].to_i == 55
17
+
18
+ column(name, :decimal, **options_for_name)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ if ENV["IN_MEMORY_OLTP"]
4
+ require "config"
5
+ require "active_record"
6
+ require "support/config"
7
+ require "support/connection"
8
+
9
+ ARTest.connect
10
+
11
+ if ActiveRecord::Base.lease_connection.supports_in_memory_oltp?
12
+ puts "Configuring In-Memory OLTP..."
13
+ inmem_file = ARTest::SQLServer.test_root_sqlserver, "schema", "enable-in-memory-oltp.sql"
14
+ inmem_sql = File.read File.join(inmem_file)
15
+ ActiveRecord::Base.lease_connection.execute(inmem_sql)
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,240 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activerecord-sqlserver-adapter-odbc-extended
3
+ version: !ruby/object:Gem::Version
4
+ version: 8.0.10
5
+ platform: ruby
6
+ authors:
7
+ - Jyothish
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2025-11-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord-sqlserver-adapter
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 8.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 8.0.0
27
+ description: ActiveRecord SQL Server Adapter. SQL Server 2012 and upward.
28
+ email:
29
+ - jyothu.kr@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".github/issue_template.md"
35
+ - ".github/workflows/ci.yml"
36
+ - ".gitignore"
37
+ - ".rubocop.yml"
38
+ - CHANGELOG.md
39
+ - CODE_OF_CONDUCT.md
40
+ - Dockerfile.ci
41
+ - Gemfile
42
+ - LICENSE.txt
43
+ - README.md
44
+ - RUNNING_UNIT_TESTS.md
45
+ - Rakefile
46
+ - VERSION
47
+ - activerecord-sqlserver-adapter-odbc-extended.gemspec
48
+ - compose.ci.yaml
49
+ - lib/active_record/connection_adapters/extended_sqlserver_adapter.rb
50
+ - lib/active_record/connection_adapters/sqlserver/core_ext/odbc.rb
51
+ - lib/active_record/connection_adapters/sqlserver/odbc_database_statements.rb
52
+ - lib/active_record/connection_adapters/sqlserver/type/binary_ext.rb
53
+ - lib/activerecord-sqlserver-adapter-odbc-extended.rb
54
+ - test/appveyor/dbsetup.ps1
55
+ - test/appveyor/dbsetup.sql
56
+ - test/cases/active_schema_test_sqlserver.rb
57
+ - test/cases/adapter_test_sqlserver.rb
58
+ - test/cases/change_column_collation_test_sqlserver.rb
59
+ - test/cases/change_column_null_test_sqlserver.rb
60
+ - test/cases/coerced_tests.rb
61
+ - test/cases/column_test_sqlserver.rb
62
+ - test/cases/connection_test_sqlserver.rb
63
+ - test/cases/dbconsole.rb
64
+ - test/cases/disconnected_test_sqlserver.rb
65
+ - test/cases/eager_load_too_many_ids_test_sqlserver.rb
66
+ - test/cases/enum_test_sqlserver.rb
67
+ - test/cases/execute_procedure_test_sqlserver.rb
68
+ - test/cases/fetch_test_sqlserver.rb
69
+ - test/cases/fully_qualified_identifier_test_sqlserver.rb
70
+ - test/cases/helper_sqlserver.rb
71
+ - test/cases/migration_test_sqlserver.rb
72
+ - test/cases/order_test_sqlserver.rb
73
+ - test/cases/pessimistic_locking_test_sqlserver.rb
74
+ - test/cases/primary_keys_test_sqlserver.rb
75
+ - test/cases/rake_test_sqlserver.rb
76
+ - test/cases/schema_dumper_test_sqlserver.rb
77
+ - test/cases/schema_test_sqlserver.rb
78
+ - test/cases/trigger_test_sqlserver.rb
79
+ - test/cases/utils_test_sqlserver.rb
80
+ - test/cases/uuid_test_sqlserver.rb
81
+ - test/cases/view_test_sqlserver.rb
82
+ - test/config.yml
83
+ - test/debug.rb
84
+ - test/fixtures/1px.gif
85
+ - test/migrations/create_clients_and_change_column_collation.rb
86
+ - test/migrations/create_clients_and_change_column_null.rb
87
+ - test/migrations/transaction_table/1_table_will_never_be_created.rb
88
+ - test/models/sqlserver/alien.rb
89
+ - test/models/sqlserver/booking.rb
90
+ - test/models/sqlserver/composite_pk.rb
91
+ - test/models/sqlserver/customers_view.rb
92
+ - test/models/sqlserver/datatype.rb
93
+ - test/models/sqlserver/datatype_migration.rb
94
+ - test/models/sqlserver/dollar_table_name.rb
95
+ - test/models/sqlserver/edge_schema.rb
96
+ - test/models/sqlserver/fk_has_fk.rb
97
+ - test/models/sqlserver/fk_has_pk.rb
98
+ - test/models/sqlserver/natural_pk_data.rb
99
+ - test/models/sqlserver/natural_pk_int_data.rb
100
+ - test/models/sqlserver/no_pk_data.rb
101
+ - test/models/sqlserver/object_default.rb
102
+ - test/models/sqlserver/quoted_table.rb
103
+ - test/models/sqlserver/quoted_view_1.rb
104
+ - test/models/sqlserver/quoted_view_2.rb
105
+ - test/models/sqlserver/sst_memory.rb
106
+ - test/models/sqlserver/sst_string_collation.rb
107
+ - test/models/sqlserver/string_default.rb
108
+ - test/models/sqlserver/string_defaults_big_view.rb
109
+ - test/models/sqlserver/string_defaults_view.rb
110
+ - test/models/sqlserver/table_with_spaces.rb
111
+ - test/models/sqlserver/tinyint_pk.rb
112
+ - test/models/sqlserver/trigger.rb
113
+ - test/models/sqlserver/trigger_history.rb
114
+ - test/models/sqlserver/upper.rb
115
+ - test/models/sqlserver/uppered.rb
116
+ - test/models/sqlserver/uuid.rb
117
+ - test/schema/datatypes/2012.sql
118
+ - test/schema/enable-in-memory-oltp.sql
119
+ - test/schema/sqlserver_specific_schema.rb
120
+ - test/support/coerceable_test_sqlserver.rb
121
+ - test/support/connection_reflection.rb
122
+ - test/support/core_ext/query_cache.rb
123
+ - test/support/load_schema_sqlserver.rb
124
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump
125
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic_associations.dump
126
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic.dump
127
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic_associations.dump
128
+ - test/support/minitest_sqlserver.rb
129
+ - test/support/paths_sqlserver.rb
130
+ - test/support/query_assertions.rb
131
+ - test/support/rake_helpers.rb
132
+ - test/support/table_definition_sqlserver.rb
133
+ - test/support/test_in_memory_oltp.rb
134
+ homepage: http://github.com/cloudvolumes/activerecord-sqlserver-adapter-odbc-extended
135
+ licenses:
136
+ - MIT
137
+ metadata:
138
+ homepage_uri: http://github.com/cloudvolumes/activerecord-sqlserver-adapter-odbc-extended
139
+ source_code_uri: https://github.com/cloudvolumes/activerecord-sqlserver-adapter-odbc-extended/tree/v8.0.10
140
+ changelog_uri: https://github.com/cloudvolumes/activerecord-sqlserver-adapter-odbc-extended/blob/v8.0.10/CHANGELOG.md
141
+ post_install_message:
142
+ rdoc_options: []
143
+ require_paths:
144
+ - lib
145
+ required_ruby_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: 3.2.0
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ requirements: []
156
+ rubygems_version: 3.4.19
157
+ signing_key:
158
+ specification_version: 4
159
+ summary: ActiveRecord SQL Server Adapter with ODBC support.
160
+ test_files:
161
+ - test/appveyor/dbsetup.ps1
162
+ - test/appveyor/dbsetup.sql
163
+ - test/cases/active_schema_test_sqlserver.rb
164
+ - test/cases/adapter_test_sqlserver.rb
165
+ - test/cases/change_column_collation_test_sqlserver.rb
166
+ - test/cases/change_column_null_test_sqlserver.rb
167
+ - test/cases/coerced_tests.rb
168
+ - test/cases/column_test_sqlserver.rb
169
+ - test/cases/connection_test_sqlserver.rb
170
+ - test/cases/dbconsole.rb
171
+ - test/cases/disconnected_test_sqlserver.rb
172
+ - test/cases/eager_load_too_many_ids_test_sqlserver.rb
173
+ - test/cases/enum_test_sqlserver.rb
174
+ - test/cases/execute_procedure_test_sqlserver.rb
175
+ - test/cases/fetch_test_sqlserver.rb
176
+ - test/cases/fully_qualified_identifier_test_sqlserver.rb
177
+ - test/cases/helper_sqlserver.rb
178
+ - test/cases/migration_test_sqlserver.rb
179
+ - test/cases/order_test_sqlserver.rb
180
+ - test/cases/pessimistic_locking_test_sqlserver.rb
181
+ - test/cases/primary_keys_test_sqlserver.rb
182
+ - test/cases/rake_test_sqlserver.rb
183
+ - test/cases/schema_dumper_test_sqlserver.rb
184
+ - test/cases/schema_test_sqlserver.rb
185
+ - test/cases/trigger_test_sqlserver.rb
186
+ - test/cases/utils_test_sqlserver.rb
187
+ - test/cases/uuid_test_sqlserver.rb
188
+ - test/cases/view_test_sqlserver.rb
189
+ - test/config.yml
190
+ - test/debug.rb
191
+ - test/fixtures/1px.gif
192
+ - test/migrations/create_clients_and_change_column_collation.rb
193
+ - test/migrations/create_clients_and_change_column_null.rb
194
+ - test/migrations/transaction_table/1_table_will_never_be_created.rb
195
+ - test/models/sqlserver/alien.rb
196
+ - test/models/sqlserver/booking.rb
197
+ - test/models/sqlserver/composite_pk.rb
198
+ - test/models/sqlserver/customers_view.rb
199
+ - test/models/sqlserver/datatype.rb
200
+ - test/models/sqlserver/datatype_migration.rb
201
+ - test/models/sqlserver/dollar_table_name.rb
202
+ - test/models/sqlserver/edge_schema.rb
203
+ - test/models/sqlserver/fk_has_fk.rb
204
+ - test/models/sqlserver/fk_has_pk.rb
205
+ - test/models/sqlserver/natural_pk_data.rb
206
+ - test/models/sqlserver/natural_pk_int_data.rb
207
+ - test/models/sqlserver/no_pk_data.rb
208
+ - test/models/sqlserver/object_default.rb
209
+ - test/models/sqlserver/quoted_table.rb
210
+ - test/models/sqlserver/quoted_view_1.rb
211
+ - test/models/sqlserver/quoted_view_2.rb
212
+ - test/models/sqlserver/sst_memory.rb
213
+ - test/models/sqlserver/sst_string_collation.rb
214
+ - test/models/sqlserver/string_default.rb
215
+ - test/models/sqlserver/string_defaults_big_view.rb
216
+ - test/models/sqlserver/string_defaults_view.rb
217
+ - test/models/sqlserver/table_with_spaces.rb
218
+ - test/models/sqlserver/tinyint_pk.rb
219
+ - test/models/sqlserver/trigger.rb
220
+ - test/models/sqlserver/trigger_history.rb
221
+ - test/models/sqlserver/upper.rb
222
+ - test/models/sqlserver/uppered.rb
223
+ - test/models/sqlserver/uuid.rb
224
+ - test/schema/datatypes/2012.sql
225
+ - test/schema/enable-in-memory-oltp.sql
226
+ - test/schema/sqlserver_specific_schema.rb
227
+ - test/support/coerceable_test_sqlserver.rb
228
+ - test/support/connection_reflection.rb
229
+ - test/support/core_ext/query_cache.rb
230
+ - test/support/load_schema_sqlserver.rb
231
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump
232
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic_associations.dump
233
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic.dump
234
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic_associations.dump
235
+ - test/support/minitest_sqlserver.rb
236
+ - test/support/paths_sqlserver.rb
237
+ - test/support/query_assertions.rb
238
+ - test/support/rake_helpers.rb
239
+ - test/support/table_definition_sqlserver.rb
240
+ - test/support/test_in_memory_oltp.rb