activerecord 7.0.0 → 7.2.1

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 (289) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +515 -1268
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +31 -31
  5. data/examples/performance.rb +2 -2
  6. data/lib/active_record/aggregations.rb +16 -13
  7. data/lib/active_record/association_relation.rb +2 -2
  8. data/lib/active_record/associations/alias_tracker.rb +25 -19
  9. data/lib/active_record/associations/association.rb +35 -12
  10. data/lib/active_record/associations/association_scope.rb +16 -9
  11. data/lib/active_record/associations/belongs_to_association.rb +23 -8
  12. data/lib/active_record/associations/belongs_to_polymorphic_association.rb +3 -2
  13. data/lib/active_record/associations/builder/association.rb +3 -3
  14. data/lib/active_record/associations/builder/belongs_to.rb +22 -8
  15. data/lib/active_record/associations/builder/has_and_belongs_to_many.rb +3 -7
  16. data/lib/active_record/associations/builder/has_many.rb +3 -4
  17. data/lib/active_record/associations/builder/has_one.rb +3 -4
  18. data/lib/active_record/associations/builder/singular_association.rb +4 -0
  19. data/lib/active_record/associations/collection_association.rb +28 -17
  20. data/lib/active_record/associations/collection_proxy.rb +36 -13
  21. data/lib/active_record/associations/errors.rb +265 -0
  22. data/lib/active_record/associations/foreign_association.rb +10 -3
  23. data/lib/active_record/associations/has_many_association.rb +28 -18
  24. data/lib/active_record/associations/has_many_through_association.rb +10 -6
  25. data/lib/active_record/associations/has_one_association.rb +10 -3
  26. data/lib/active_record/associations/join_dependency/join_association.rb +27 -25
  27. data/lib/active_record/associations/join_dependency.rb +18 -14
  28. data/lib/active_record/associations/nested_error.rb +47 -0
  29. data/lib/active_record/associations/preloader/association.rb +33 -8
  30. data/lib/active_record/associations/preloader/branch.rb +7 -1
  31. data/lib/active_record/associations/preloader/through_association.rb +2 -4
  32. data/lib/active_record/associations/preloader.rb +13 -10
  33. data/lib/active_record/associations/singular_association.rb +7 -1
  34. data/lib/active_record/associations/through_association.rb +22 -11
  35. data/lib/active_record/associations.rb +378 -491
  36. data/lib/active_record/attribute_assignment.rb +1 -13
  37. data/lib/active_record/attribute_methods/before_type_cast.rb +17 -0
  38. data/lib/active_record/attribute_methods/composite_primary_key.rb +84 -0
  39. data/lib/active_record/attribute_methods/dirty.rb +53 -35
  40. data/lib/active_record/attribute_methods/primary_key.rb +45 -25
  41. data/lib/active_record/attribute_methods/query.rb +28 -16
  42. data/lib/active_record/attribute_methods/read.rb +8 -7
  43. data/lib/active_record/attribute_methods/serialization.rb +153 -70
  44. data/lib/active_record/attribute_methods/time_zone_conversion.rb +7 -6
  45. data/lib/active_record/attribute_methods/write.rb +6 -6
  46. data/lib/active_record/attribute_methods.rb +153 -40
  47. data/lib/active_record/attributes.rb +63 -48
  48. data/lib/active_record/autosave_association.rb +70 -38
  49. data/lib/active_record/base.rb +12 -8
  50. data/lib/active_record/callbacks.rb +16 -32
  51. data/lib/active_record/coders/column_serializer.rb +61 -0
  52. data/lib/active_record/coders/json.rb +1 -1
  53. data/lib/active_record/coders/yaml_column.rb +70 -34
  54. data/lib/active_record/connection_adapters/abstract/connection_handler.rb +124 -132
  55. data/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb +2 -0
  56. data/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb +4 -1
  57. data/lib/active_record/connection_adapters/abstract/connection_pool.rb +297 -88
  58. data/lib/active_record/connection_adapters/abstract/database_limits.rb +5 -0
  59. data/lib/active_record/connection_adapters/abstract/database_statements.rb +160 -45
  60. data/lib/active_record/connection_adapters/abstract/query_cache.rb +215 -63
  61. data/lib/active_record/connection_adapters/abstract/quoting.rb +83 -65
  62. data/lib/active_record/connection_adapters/abstract/savepoints.rb +4 -3
  63. data/lib/active_record/connection_adapters/abstract/schema_creation.rb +18 -4
  64. data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +163 -29
  65. data/lib/active_record/connection_adapters/abstract/schema_dumper.rb +14 -1
  66. data/lib/active_record/connection_adapters/abstract/schema_statements.rb +319 -135
  67. data/lib/active_record/connection_adapters/abstract/transaction.rb +367 -75
  68. data/lib/active_record/connection_adapters/abstract_adapter.rb +512 -126
  69. data/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +282 -119
  70. data/lib/active_record/connection_adapters/column.rb +9 -0
  71. data/lib/active_record/connection_adapters/mysql/column.rb +1 -0
  72. data/lib/active_record/connection_adapters/mysql/database_statements.rb +27 -140
  73. data/lib/active_record/connection_adapters/mysql/quoting.rb +64 -52
  74. data/lib/active_record/connection_adapters/mysql/schema_creation.rb +9 -0
  75. data/lib/active_record/connection_adapters/mysql/schema_definitions.rb +10 -1
  76. data/lib/active_record/connection_adapters/mysql/schema_dumper.rb +8 -2
  77. data/lib/active_record/connection_adapters/mysql/schema_statements.rb +45 -14
  78. data/lib/active_record/connection_adapters/mysql2/database_statements.rb +152 -0
  79. data/lib/active_record/connection_adapters/mysql2_adapter.rb +101 -68
  80. data/lib/active_record/connection_adapters/pool_config.rb +20 -10
  81. data/lib/active_record/connection_adapters/pool_manager.rb +19 -9
  82. data/lib/active_record/connection_adapters/postgresql/column.rb +16 -3
  83. data/lib/active_record/connection_adapters/postgresql/database_statements.rb +101 -48
  84. data/lib/active_record/connection_adapters/postgresql/oid/array.rb +1 -1
  85. data/lib/active_record/connection_adapters/postgresql/oid/cidr.rb +6 -0
  86. data/lib/active_record/connection_adapters/postgresql/oid/hstore.rb +2 -2
  87. data/lib/active_record/connection_adapters/postgresql/oid/interval.rb +1 -1
  88. data/lib/active_record/connection_adapters/postgresql/oid/money.rb +3 -2
  89. data/lib/active_record/connection_adapters/postgresql/oid/range.rb +11 -2
  90. data/lib/active_record/connection_adapters/postgresql/oid/timestamp_with_time_zone.rb +4 -2
  91. data/lib/active_record/connection_adapters/postgresql/oid/uuid.rb +14 -4
  92. data/lib/active_record/connection_adapters/postgresql/quoting.rb +94 -61
  93. data/lib/active_record/connection_adapters/postgresql/referential_integrity.rb +6 -10
  94. data/lib/active_record/connection_adapters/postgresql/schema_creation.rb +76 -6
  95. data/lib/active_record/connection_adapters/postgresql/schema_definitions.rb +151 -2
  96. data/lib/active_record/connection_adapters/postgresql/schema_dumper.rb +53 -0
  97. data/lib/active_record/connection_adapters/postgresql/schema_statements.rb +379 -66
  98. data/lib/active_record/connection_adapters/postgresql/utils.rb +9 -10
  99. data/lib/active_record/connection_adapters/postgresql_adapter.rb +370 -203
  100. data/lib/active_record/connection_adapters/schema_cache.rb +302 -79
  101. data/lib/active_record/connection_adapters/sqlite3/column.rb +62 -0
  102. data/lib/active_record/connection_adapters/sqlite3/database_statements.rb +60 -43
  103. data/lib/active_record/connection_adapters/sqlite3/quoting.rb +61 -46
  104. data/lib/active_record/connection_adapters/sqlite3/schema_creation.rb +22 -0
  105. data/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb +20 -0
  106. data/lib/active_record/connection_adapters/sqlite3/schema_dumper.rb +16 -0
  107. data/lib/active_record/connection_adapters/sqlite3/schema_statements.rb +64 -22
  108. data/lib/active_record/connection_adapters/sqlite3_adapter.rb +321 -110
  109. data/lib/active_record/connection_adapters/statement_pool.rb +7 -0
  110. data/lib/active_record/connection_adapters/trilogy/database_statements.rb +99 -0
  111. data/lib/active_record/connection_adapters/trilogy_adapter.rb +229 -0
  112. data/lib/active_record/connection_adapters.rb +124 -1
  113. data/lib/active_record/connection_handling.rb +98 -106
  114. data/lib/active_record/core.rb +220 -177
  115. data/lib/active_record/counter_cache.rb +68 -34
  116. data/lib/active_record/database_configurations/connection_url_resolver.rb +8 -2
  117. data/lib/active_record/database_configurations/database_config.rb +26 -5
  118. data/lib/active_record/database_configurations/hash_config.rb +52 -34
  119. data/lib/active_record/database_configurations/url_config.rb +37 -12
  120. data/lib/active_record/database_configurations.rb +88 -35
  121. data/lib/active_record/delegated_type.rb +40 -11
  122. data/lib/active_record/deprecator.rb +7 -0
  123. data/lib/active_record/destroy_association_async_job.rb +3 -1
  124. data/lib/active_record/disable_joins_association_relation.rb +1 -1
  125. data/lib/active_record/dynamic_matchers.rb +2 -2
  126. data/lib/active_record/encryption/auto_filtered_parameters.rb +66 -0
  127. data/lib/active_record/encryption/cipher/aes256_gcm.rb +4 -1
  128. data/lib/active_record/encryption/config.rb +25 -1
  129. data/lib/active_record/encryption/configurable.rb +13 -14
  130. data/lib/active_record/encryption/context.rb +10 -3
  131. data/lib/active_record/encryption/contexts.rb +8 -4
  132. data/lib/active_record/encryption/derived_secret_key_provider.rb +9 -3
  133. data/lib/active_record/encryption/deterministic_key_provider.rb +1 -1
  134. data/lib/active_record/encryption/encryptable_record.rb +47 -25
  135. data/lib/active_record/encryption/encrypted_attribute_type.rb +49 -14
  136. data/lib/active_record/encryption/encryptor.rb +25 -10
  137. data/lib/active_record/encryption/envelope_encryption_key_provider.rb +3 -3
  138. data/lib/active_record/encryption/extended_deterministic_queries.rb +83 -86
  139. data/lib/active_record/encryption/extended_deterministic_uniqueness_validator.rb +3 -3
  140. data/lib/active_record/encryption/key_generator.rb +12 -1
  141. data/lib/active_record/encryption/message.rb +1 -1
  142. data/lib/active_record/encryption/message_pack_message_serializer.rb +76 -0
  143. data/lib/active_record/encryption/message_serializer.rb +6 -0
  144. data/lib/active_record/encryption/null_encryptor.rb +4 -0
  145. data/lib/active_record/encryption/properties.rb +4 -4
  146. data/lib/active_record/encryption/read_only_null_encryptor.rb +4 -0
  147. data/lib/active_record/encryption/scheme.rb +23 -22
  148. data/lib/active_record/encryption.rb +1 -0
  149. data/lib/active_record/enum.rb +131 -27
  150. data/lib/active_record/errors.rb +151 -31
  151. data/lib/active_record/explain.rb +21 -12
  152. data/lib/active_record/explain_subscriber.rb +1 -1
  153. data/lib/active_record/fixture_set/model_metadata.rb +14 -4
  154. data/lib/active_record/fixture_set/render_context.rb +2 -0
  155. data/lib/active_record/fixture_set/table_row.rb +29 -8
  156. data/lib/active_record/fixtures.rb +169 -99
  157. data/lib/active_record/future_result.rb +47 -8
  158. data/lib/active_record/gem_version.rb +3 -3
  159. data/lib/active_record/inheritance.rb +34 -18
  160. data/lib/active_record/insert_all.rb +72 -22
  161. data/lib/active_record/integration.rb +13 -10
  162. data/lib/active_record/internal_metadata.rb +124 -20
  163. data/lib/active_record/locking/optimistic.rb +39 -24
  164. data/lib/active_record/locking/pessimistic.rb +8 -5
  165. data/lib/active_record/log_subscriber.rb +28 -27
  166. data/lib/active_record/marshalling.rb +56 -0
  167. data/lib/active_record/message_pack.rb +124 -0
  168. data/lib/active_record/middleware/database_selector/resolver.rb +4 -0
  169. data/lib/active_record/middleware/database_selector.rb +18 -13
  170. data/lib/active_record/middleware/shard_selector.rb +7 -5
  171. data/lib/active_record/migration/command_recorder.rb +110 -13
  172. data/lib/active_record/migration/compatibility.rb +174 -64
  173. data/lib/active_record/migration/default_strategy.rb +22 -0
  174. data/lib/active_record/migration/execution_strategy.rb +19 -0
  175. data/lib/active_record/migration/pending_migration_connection.rb +21 -0
  176. data/lib/active_record/migration.rb +292 -125
  177. data/lib/active_record/model_schema.rb +113 -112
  178. data/lib/active_record/nested_attributes.rb +35 -9
  179. data/lib/active_record/normalization.rb +163 -0
  180. data/lib/active_record/persistence.rb +177 -345
  181. data/lib/active_record/promise.rb +84 -0
  182. data/lib/active_record/query_cache.rb +19 -25
  183. data/lib/active_record/query_logs.rb +102 -51
  184. data/lib/active_record/query_logs_formatter.rb +41 -0
  185. data/lib/active_record/querying.rb +34 -9
  186. data/lib/active_record/railtie.rb +153 -100
  187. data/lib/active_record/railties/controller_runtime.rb +24 -10
  188. data/lib/active_record/railties/databases.rake +148 -152
  189. data/lib/active_record/railties/job_runtime.rb +23 -0
  190. data/lib/active_record/readonly_attributes.rb +32 -5
  191. data/lib/active_record/reflection.rb +278 -69
  192. data/lib/active_record/relation/batches/batch_enumerator.rb +20 -5
  193. data/lib/active_record/relation/batches.rb +198 -63
  194. data/lib/active_record/relation/calculations.rb +293 -108
  195. data/lib/active_record/relation/delegation.rb +31 -20
  196. data/lib/active_record/relation/finder_methods.rb +93 -18
  197. data/lib/active_record/relation/merger.rb +6 -6
  198. data/lib/active_record/relation/predicate_builder/array_handler.rb +2 -2
  199. data/lib/active_record/relation/predicate_builder/association_query_value.rb +38 -4
  200. data/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb +10 -7
  201. data/lib/active_record/relation/predicate_builder/relation_handler.rb +5 -1
  202. data/lib/active_record/relation/predicate_builder.rb +28 -16
  203. data/lib/active_record/relation/query_attribute.rb +25 -1
  204. data/lib/active_record/relation/query_methods.rb +625 -107
  205. data/lib/active_record/relation/record_fetch_warning.rb +3 -0
  206. data/lib/active_record/relation/spawn_methods.rb +5 -4
  207. data/lib/active_record/relation/where_clause.rb +7 -19
  208. data/lib/active_record/relation.rb +602 -96
  209. data/lib/active_record/result.rb +55 -52
  210. data/lib/active_record/runtime_registry.rb +63 -1
  211. data/lib/active_record/sanitization.rb +76 -30
  212. data/lib/active_record/schema.rb +39 -23
  213. data/lib/active_record/schema_dumper.rb +82 -30
  214. data/lib/active_record/schema_migration.rb +75 -24
  215. data/lib/active_record/scoping/default.rb +20 -12
  216. data/lib/active_record/scoping/named.rb +3 -2
  217. data/lib/active_record/scoping.rb +2 -1
  218. data/lib/active_record/secure_password.rb +60 -0
  219. data/lib/active_record/secure_token.rb +21 -3
  220. data/lib/active_record/serialization.rb +5 -0
  221. data/lib/active_record/signed_id.rb +29 -8
  222. data/lib/active_record/statement_cache.rb +7 -7
  223. data/lib/active_record/store.rb +16 -11
  224. data/lib/active_record/suppressor.rb +3 -1
  225. data/lib/active_record/table_metadata.rb +7 -3
  226. data/lib/active_record/tasks/database_tasks.rb +191 -121
  227. data/lib/active_record/tasks/mysql_database_tasks.rb +15 -6
  228. data/lib/active_record/tasks/postgresql_database_tasks.rb +17 -15
  229. data/lib/active_record/tasks/sqlite_database_tasks.rb +16 -7
  230. data/lib/active_record/test_fixtures.rb +174 -152
  231. data/lib/active_record/testing/query_assertions.rb +121 -0
  232. data/lib/active_record/timestamp.rb +31 -17
  233. data/lib/active_record/token_for.rb +123 -0
  234. data/lib/active_record/touch_later.rb +12 -7
  235. data/lib/active_record/transaction.rb +132 -0
  236. data/lib/active_record/transactions.rb +109 -27
  237. data/lib/active_record/translation.rb +1 -3
  238. data/lib/active_record/type/adapter_specific_registry.rb +1 -8
  239. data/lib/active_record/type/internal/timezone.rb +7 -2
  240. data/lib/active_record/type/serialized.rb +9 -7
  241. data/lib/active_record/type/time.rb +4 -0
  242. data/lib/active_record/type_caster/connection.rb +4 -4
  243. data/lib/active_record/validations/absence.rb +1 -1
  244. data/lib/active_record/validations/associated.rb +12 -6
  245. data/lib/active_record/validations/numericality.rb +5 -4
  246. data/lib/active_record/validations/presence.rb +5 -28
  247. data/lib/active_record/validations/uniqueness.rb +63 -14
  248. data/lib/active_record/validations.rb +12 -5
  249. data/lib/active_record/version.rb +1 -1
  250. data/lib/active_record.rb +266 -30
  251. data/lib/arel/alias_predication.rb +1 -1
  252. data/lib/arel/collectors/bind.rb +2 -0
  253. data/lib/arel/collectors/composite.rb +7 -0
  254. data/lib/arel/collectors/sql_string.rb +1 -1
  255. data/lib/arel/collectors/substitute_binds.rb +1 -1
  256. data/lib/arel/errors.rb +10 -0
  257. data/lib/arel/factory_methods.rb +4 -0
  258. data/lib/arel/filter_predications.rb +1 -1
  259. data/lib/arel/nodes/binary.rb +6 -7
  260. data/lib/arel/nodes/bound_sql_literal.rb +65 -0
  261. data/lib/arel/nodes/cte.rb +36 -0
  262. data/lib/arel/nodes/filter.rb +1 -1
  263. data/lib/arel/nodes/fragments.rb +35 -0
  264. data/lib/arel/nodes/homogeneous_in.rb +1 -9
  265. data/lib/arel/nodes/leading_join.rb +8 -0
  266. data/lib/arel/nodes/{and.rb → nary.rb} +9 -2
  267. data/lib/arel/nodes/node.rb +115 -5
  268. data/lib/arel/nodes/sql_literal.rb +13 -0
  269. data/lib/arel/nodes/table_alias.rb +4 -0
  270. data/lib/arel/nodes.rb +6 -2
  271. data/lib/arel/predications.rb +3 -1
  272. data/lib/arel/select_manager.rb +1 -1
  273. data/lib/arel/table.rb +9 -5
  274. data/lib/arel/tree_manager.rb +8 -3
  275. data/lib/arel/update_manager.rb +2 -1
  276. data/lib/arel/visitors/dot.rb +1 -0
  277. data/lib/arel/visitors/mysql.rb +17 -5
  278. data/lib/arel/visitors/postgresql.rb +1 -12
  279. data/lib/arel/visitors/to_sql.rb +112 -34
  280. data/lib/arel/visitors/visitor.rb +2 -2
  281. data/lib/arel.rb +21 -3
  282. data/lib/rails/generators/active_record/application_record/USAGE +8 -0
  283. data/lib/rails/generators/active_record/migration/templates/create_table_migration.rb.tt +4 -1
  284. data/lib/rails/generators/active_record/migration.rb +3 -1
  285. data/lib/rails/generators/active_record/model/USAGE +113 -0
  286. data/lib/rails/generators/active_record/model/model_generator.rb +15 -6
  287. metadata +59 -17
  288. data/lib/active_record/connection_adapters/legacy_pool_manager.rb +0 -35
  289. data/lib/active_record/null_relation.rb +0 -63
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 7.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-15 00:00:00.000000000 Z
11
+ date: 2024-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 7.0.0
19
+ version: 7.2.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 7.0.0
26
+ version: 7.2.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 7.0.0
33
+ version: 7.2.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 7.0.0
40
+ version: 7.2.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: timeout
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 0.4.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.4.0
41
55
  description: Databases on Rails. Build a persistent domain model by mapping database
42
56
  tables to Ruby classes. Strong conventions for associations, validations, aggregations,
43
57
  migrations, and testing come baked-in.
@@ -71,6 +85,7 @@ files:
71
85
  - lib/active_record/associations/collection_association.rb
72
86
  - lib/active_record/associations/collection_proxy.rb
73
87
  - lib/active_record/associations/disable_joins_association_scope.rb
88
+ - lib/active_record/associations/errors.rb
74
89
  - lib/active_record/associations/foreign_association.rb
75
90
  - lib/active_record/associations/has_many_association.rb
76
91
  - lib/active_record/associations/has_many_through_association.rb
@@ -80,6 +95,7 @@ files:
80
95
  - lib/active_record/associations/join_dependency/join_association.rb
81
96
  - lib/active_record/associations/join_dependency/join_base.rb
82
97
  - lib/active_record/associations/join_dependency/join_part.rb
98
+ - lib/active_record/associations/nested_error.rb
83
99
  - lib/active_record/associations/preloader.rb
84
100
  - lib/active_record/associations/preloader/association.rb
85
101
  - lib/active_record/associations/preloader/batch.rb
@@ -91,6 +107,7 @@ files:
91
107
  - lib/active_record/attribute_assignment.rb
92
108
  - lib/active_record/attribute_methods.rb
93
109
  - lib/active_record/attribute_methods/before_type_cast.rb
110
+ - lib/active_record/attribute_methods/composite_primary_key.rb
94
111
  - lib/active_record/attribute_methods/dirty.rb
95
112
  - lib/active_record/attribute_methods/primary_key.rb
96
113
  - lib/active_record/attribute_methods/query.rb
@@ -102,6 +119,7 @@ files:
102
119
  - lib/active_record/autosave_association.rb
103
120
  - lib/active_record/base.rb
104
121
  - lib/active_record/callbacks.rb
122
+ - lib/active_record/coders/column_serializer.rb
105
123
  - lib/active_record/coders/json.rb
106
124
  - lib/active_record/coders/yaml_column.rb
107
125
  - lib/active_record/connection_adapters.rb
@@ -123,7 +141,6 @@ files:
123
141
  - lib/active_record/connection_adapters/abstract_mysql_adapter.rb
124
142
  - lib/active_record/connection_adapters/column.rb
125
143
  - lib/active_record/connection_adapters/deduplicable.rb
126
- - lib/active_record/connection_adapters/legacy_pool_manager.rb
127
144
  - lib/active_record/connection_adapters/mysql/column.rb
128
145
  - lib/active_record/connection_adapters/mysql/database_statements.rb
129
146
  - lib/active_record/connection_adapters/mysql/explain_pretty_printer.rb
@@ -133,6 +150,7 @@ files:
133
150
  - lib/active_record/connection_adapters/mysql/schema_dumper.rb
134
151
  - lib/active_record/connection_adapters/mysql/schema_statements.rb
135
152
  - lib/active_record/connection_adapters/mysql/type_metadata.rb
153
+ - lib/active_record/connection_adapters/mysql2/database_statements.rb
136
154
  - lib/active_record/connection_adapters/mysql2_adapter.rb
137
155
  - lib/active_record/connection_adapters/pool_config.rb
138
156
  - lib/active_record/connection_adapters/pool_manager.rb
@@ -177,6 +195,7 @@ files:
177
195
  - lib/active_record/connection_adapters/postgresql_adapter.rb
178
196
  - lib/active_record/connection_adapters/schema_cache.rb
179
197
  - lib/active_record/connection_adapters/sql_type_metadata.rb
198
+ - lib/active_record/connection_adapters/sqlite3/column.rb
180
199
  - lib/active_record/connection_adapters/sqlite3/database_statements.rb
181
200
  - lib/active_record/connection_adapters/sqlite3/explain_pretty_printer.rb
182
201
  - lib/active_record/connection_adapters/sqlite3/quoting.rb
@@ -186,6 +205,8 @@ files:
186
205
  - lib/active_record/connection_adapters/sqlite3/schema_statements.rb
187
206
  - lib/active_record/connection_adapters/sqlite3_adapter.rb
188
207
  - lib/active_record/connection_adapters/statement_pool.rb
208
+ - lib/active_record/connection_adapters/trilogy/database_statements.rb
209
+ - lib/active_record/connection_adapters/trilogy_adapter.rb
189
210
  - lib/active_record/connection_handling.rb
190
211
  - lib/active_record/core.rb
191
212
  - lib/active_record/counter_cache.rb
@@ -195,10 +216,12 @@ files:
195
216
  - lib/active_record/database_configurations/hash_config.rb
196
217
  - lib/active_record/database_configurations/url_config.rb
197
218
  - lib/active_record/delegated_type.rb
219
+ - lib/active_record/deprecator.rb
198
220
  - lib/active_record/destroy_association_async_job.rb
199
221
  - lib/active_record/disable_joins_association_relation.rb
200
222
  - lib/active_record/dynamic_matchers.rb
201
223
  - lib/active_record/encryption.rb
224
+ - lib/active_record/encryption/auto_filtered_parameters.rb
202
225
  - lib/active_record/encryption/cipher.rb
203
226
  - lib/active_record/encryption/cipher/aes256_gcm.rb
204
227
  - lib/active_record/encryption/config.rb
@@ -220,6 +243,7 @@ files:
220
243
  - lib/active_record/encryption/key_generator.rb
221
244
  - lib/active_record/encryption/key_provider.rb
222
245
  - lib/active_record/encryption/message.rb
246
+ - lib/active_record/encryption/message_pack_message_serializer.rb
223
247
  - lib/active_record/encryption/message_serializer.rb
224
248
  - lib/active_record/encryption/null_encryptor.rb
225
249
  - lib/active_record/encryption/properties.rb
@@ -247,6 +271,8 @@ files:
247
271
  - lib/active_record/locking/optimistic.rb
248
272
  - lib/active_record/locking/pessimistic.rb
249
273
  - lib/active_record/log_subscriber.rb
274
+ - lib/active_record/marshalling.rb
275
+ - lib/active_record/message_pack.rb
250
276
  - lib/active_record/middleware/database_selector.rb
251
277
  - lib/active_record/middleware/database_selector/resolver.rb
252
278
  - lib/active_record/middleware/database_selector/resolver/session.rb
@@ -254,19 +280,25 @@ files:
254
280
  - lib/active_record/migration.rb
255
281
  - lib/active_record/migration/command_recorder.rb
256
282
  - lib/active_record/migration/compatibility.rb
283
+ - lib/active_record/migration/default_strategy.rb
284
+ - lib/active_record/migration/execution_strategy.rb
257
285
  - lib/active_record/migration/join_table.rb
286
+ - lib/active_record/migration/pending_migration_connection.rb
258
287
  - lib/active_record/model_schema.rb
259
288
  - lib/active_record/nested_attributes.rb
260
289
  - lib/active_record/no_touching.rb
261
- - lib/active_record/null_relation.rb
290
+ - lib/active_record/normalization.rb
262
291
  - lib/active_record/persistence.rb
292
+ - lib/active_record/promise.rb
263
293
  - lib/active_record/query_cache.rb
264
294
  - lib/active_record/query_logs.rb
295
+ - lib/active_record/query_logs_formatter.rb
265
296
  - lib/active_record/querying.rb
266
297
  - lib/active_record/railtie.rb
267
298
  - lib/active_record/railties/console_sandbox.rb
268
299
  - lib/active_record/railties/controller_runtime.rb
269
300
  - lib/active_record/railties/databases.rake
301
+ - lib/active_record/railties/job_runtime.rb
270
302
  - lib/active_record/readonly_attributes.rb
271
303
  - lib/active_record/reflection.rb
272
304
  - lib/active_record/relation.rb
@@ -298,6 +330,7 @@ files:
298
330
  - lib/active_record/scoping.rb
299
331
  - lib/active_record/scoping/default.rb
300
332
  - lib/active_record/scoping/named.rb
333
+ - lib/active_record/secure_password.rb
301
334
  - lib/active_record/secure_token.rb
302
335
  - lib/active_record/serialization.rb
303
336
  - lib/active_record/signed_id.rb
@@ -311,8 +344,11 @@ files:
311
344
  - lib/active_record/tasks/sqlite_database_tasks.rb
312
345
  - lib/active_record/test_databases.rb
313
346
  - lib/active_record/test_fixtures.rb
347
+ - lib/active_record/testing/query_assertions.rb
314
348
  - lib/active_record/timestamp.rb
349
+ - lib/active_record/token_for.rb
315
350
  - lib/active_record/touch_later.rb
351
+ - lib/active_record/transaction.rb
316
352
  - lib/active_record/transactions.rb
317
353
  - lib/active_record/translation.rb
318
354
  - lib/active_record/type.rb
@@ -356,20 +392,22 @@ files:
356
392
  - lib/arel/insert_manager.rb
357
393
  - lib/arel/math.rb
358
394
  - lib/arel/nodes.rb
359
- - lib/arel/nodes/and.rb
360
395
  - lib/arel/nodes/ascending.rb
361
396
  - lib/arel/nodes/binary.rb
362
397
  - lib/arel/nodes/bind_param.rb
398
+ - lib/arel/nodes/bound_sql_literal.rb
363
399
  - lib/arel/nodes/case.rb
364
400
  - lib/arel/nodes/casted.rb
365
401
  - lib/arel/nodes/comment.rb
366
402
  - lib/arel/nodes/count.rb
403
+ - lib/arel/nodes/cte.rb
367
404
  - lib/arel/nodes/delete_statement.rb
368
405
  - lib/arel/nodes/descending.rb
369
406
  - lib/arel/nodes/equality.rb
370
407
  - lib/arel/nodes/extract.rb
371
408
  - lib/arel/nodes/false.rb
372
409
  - lib/arel/nodes/filter.rb
410
+ - lib/arel/nodes/fragments.rb
373
411
  - lib/arel/nodes/full_outer_join.rb
374
412
  - lib/arel/nodes/function.rb
375
413
  - lib/arel/nodes/grouping.rb
@@ -379,8 +417,10 @@ files:
379
417
  - lib/arel/nodes/inner_join.rb
380
418
  - lib/arel/nodes/insert_statement.rb
381
419
  - lib/arel/nodes/join_source.rb
420
+ - lib/arel/nodes/leading_join.rb
382
421
  - lib/arel/nodes/matches.rb
383
422
  - lib/arel/nodes/named_function.rb
423
+ - lib/arel/nodes/nary.rb
384
424
  - lib/arel/nodes/node.rb
385
425
  - lib/arel/nodes/node_expression.rb
386
426
  - lib/arel/nodes/ordering.rb
@@ -417,12 +457,14 @@ files:
417
457
  - lib/arel/visitors/visitor.rb
418
458
  - lib/arel/window_predications.rb
419
459
  - lib/rails/generators/active_record.rb
460
+ - lib/rails/generators/active_record/application_record/USAGE
420
461
  - lib/rails/generators/active_record/application_record/application_record_generator.rb
421
462
  - lib/rails/generators/active_record/application_record/templates/application_record.rb.tt
422
463
  - lib/rails/generators/active_record/migration.rb
423
464
  - lib/rails/generators/active_record/migration/migration_generator.rb
424
465
  - lib/rails/generators/active_record/migration/templates/create_table_migration.rb.tt
425
466
  - lib/rails/generators/active_record/migration/templates/migration.rb.tt
467
+ - lib/rails/generators/active_record/model/USAGE
426
468
  - lib/rails/generators/active_record/model/model_generator.rb
427
469
  - lib/rails/generators/active_record/model/templates/abstract_base_class.rb.tt
428
470
  - lib/rails/generators/active_record/model/templates/model.rb.tt
@@ -434,12 +476,12 @@ licenses:
434
476
  - MIT
435
477
  metadata:
436
478
  bug_tracker_uri: https://github.com/rails/rails/issues
437
- changelog_uri: https://github.com/rails/rails/blob/v7.0.0/activerecord/CHANGELOG.md
438
- documentation_uri: https://api.rubyonrails.org/v7.0.0/
479
+ changelog_uri: https://github.com/rails/rails/blob/v7.2.1/activerecord/CHANGELOG.md
480
+ documentation_uri: https://api.rubyonrails.org/v7.2.1/
439
481
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
440
- source_code_uri: https://github.com/rails/rails/tree/v7.0.0/activerecord
482
+ source_code_uri: https://github.com/rails/rails/tree/v7.2.1/activerecord
441
483
  rubygems_mfa_required: 'true'
442
- post_install_message:
484
+ post_install_message:
443
485
  rdoc_options:
444
486
  - "--main"
445
487
  - README.rdoc
@@ -449,15 +491,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
449
491
  requirements:
450
492
  - - ">="
451
493
  - !ruby/object:Gem::Version
452
- version: 2.7.0
494
+ version: 3.1.0
453
495
  required_rubygems_version: !ruby/object:Gem::Requirement
454
496
  requirements:
455
497
  - - ">="
456
498
  - !ruby/object:Gem::Version
457
499
  version: '0'
458
500
  requirements: []
459
- rubygems_version: 3.2.32
460
- signing_key:
501
+ rubygems_version: 3.5.11
502
+ signing_key:
461
503
  specification_version: 4
462
504
  summary: Object-relational mapper framework (part of Rails).
463
505
  test_files: []
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveRecord
4
- module ConnectionAdapters
5
- class LegacyPoolManager # :nodoc:
6
- def initialize
7
- @name_to_pool_config = {}
8
- end
9
-
10
- def shard_names
11
- @name_to_pool_config.keys
12
- end
13
-
14
- def pool_configs(_ = nil)
15
- @name_to_pool_config.values
16
- end
17
-
18
- def remove_pool_config(_, shard)
19
- @name_to_pool_config.delete(shard)
20
- end
21
-
22
- def get_pool_config(_, shard)
23
- @name_to_pool_config[shard]
24
- end
25
-
26
- def set_pool_config(role, shard, pool_config)
27
- if pool_config
28
- @name_to_pool_config[shard] = pool_config
29
- else
30
- raise ArgumentError, "The `pool_config` for the :#{role} role and :#{shard} shard was `nil`. Please check your configuration. If you want your writing role to be something other than `:writing` set `config.active_record.writing_role` in your application configuration. The same setting should be applied for the `reading_role` if applicable."
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveRecord
4
- module NullRelation # :nodoc:
5
- def pluck(*column_names)
6
- []
7
- end
8
-
9
- def delete_all
10
- 0
11
- end
12
-
13
- def update_all(_updates)
14
- 0
15
- end
16
-
17
- def delete(_id_or_array)
18
- 0
19
- end
20
-
21
- def empty?
22
- true
23
- end
24
-
25
- def none?
26
- true
27
- end
28
-
29
- def any?
30
- false
31
- end
32
-
33
- def one?
34
- false
35
- end
36
-
37
- def many?
38
- false
39
- end
40
-
41
- def calculate(operation, _column_name)
42
- case operation
43
- when :count, :sum
44
- group_values.any? ? Hash.new : 0
45
- when :average, :minimum, :maximum
46
- group_values.any? ? Hash.new : nil
47
- end
48
- end
49
-
50
- def exists?(_conditions = :none)
51
- false
52
- end
53
-
54
- def or(other)
55
- other.spawn
56
- end
57
-
58
- private
59
- def exec_main_query(async: false)
60
- [].freeze
61
- end
62
- end
63
- end