activerecord 7.1.0 → 7.1.2
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 +95 -0
- data/README.rdoc +1 -0
- data/lib/active_record/associations.rb +14 -14
- data/lib/active_record/attribute_methods/dirty.rb +13 -9
- data/lib/active_record/callbacks.rb +2 -2
- data/lib/active_record/connection_adapters/abstract/database_statements.rb +5 -3
- data/lib/active_record/connection_adapters/abstract/schema_statements.rb +1 -3
- data/lib/active_record/connection_adapters/abstract_adapter.rb +13 -4
- data/lib/active_record/connection_adapters/mysql2/database_statements.rb +3 -0
- data/lib/active_record/connection_adapters/postgresql/column.rb +14 -2
- data/lib/active_record/connection_adapters/postgresql/database_statements.rb +4 -1
- data/lib/active_record/connection_adapters/postgresql/oid/money.rb +3 -2
- data/lib/active_record/connection_adapters/postgresql/oid/timestamp_with_time_zone.rb +1 -1
- data/lib/active_record/connection_adapters/postgresql/schema_statements.rb +14 -6
- data/lib/active_record/connection_adapters/postgresql_adapter.rb +32 -32
- data/lib/active_record/connection_adapters/sqlite3/database_statements.rb +10 -3
- data/lib/active_record/connection_adapters/trilogy/database_statements.rb +1 -0
- data/lib/active_record/core.rb +25 -24
- data/lib/active_record/encryption/extended_deterministic_queries.rb +0 -15
- data/lib/active_record/enum.rb +6 -9
- data/lib/active_record/gem_version.rb +1 -1
- data/lib/active_record/insert_all.rb +3 -3
- data/lib/active_record/internal_metadata.rb +3 -1
- data/lib/active_record/migration/command_recorder.rb +4 -1
- data/lib/active_record/migration/pending_migration_connection.rb +21 -0
- data/lib/active_record/migration.rb +6 -3
- data/lib/active_record/model_schema.rb +5 -5
- data/lib/active_record/nested_attributes.rb +7 -9
- data/lib/active_record/normalization.rb +8 -0
- data/lib/active_record/promise.rb +1 -1
- data/lib/active_record/railtie.rb +1 -1
- data/lib/active_record/railties/databases.rake +5 -5
- data/lib/active_record/reflection.rb +12 -0
- data/lib/active_record/relation/calculations.rb +16 -8
- data/lib/active_record/relation/query_methods.rb +1 -1
- data/lib/active_record/schema_migration.rb +1 -1
- data/lib/active_record/timestamp.rb +1 -1
- data/lib/arel/nodes/homogeneous_in.rb +1 -1
- metadata +10 -9
@@ -93,7 +93,8 @@ module ActiveRecord
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
# Same as
|
96
|
+
# Same as #count, but performs the query asynchronously and returns an
|
97
|
+
# ActiveRecord::Promise.
|
97
98
|
def async_count(column_name = nil)
|
98
99
|
async.count(column_name)
|
99
100
|
end
|
@@ -106,7 +107,8 @@ module ActiveRecord
|
|
106
107
|
calculate(:average, column_name)
|
107
108
|
end
|
108
109
|
|
109
|
-
# Same as
|
110
|
+
# Same as #average, but performs the query asynchronously and returns an
|
111
|
+
# ActiveRecord::Promise.
|
110
112
|
def async_average(column_name)
|
111
113
|
async.average(column_name)
|
112
114
|
end
|
@@ -120,7 +122,8 @@ module ActiveRecord
|
|
120
122
|
calculate(:minimum, column_name)
|
121
123
|
end
|
122
124
|
|
123
|
-
# Same as
|
125
|
+
# Same as #minimum, but performs the query asynchronously and returns an
|
126
|
+
# ActiveRecord::Promise.
|
124
127
|
def async_minimum(column_name)
|
125
128
|
async.minimum(column_name)
|
126
129
|
end
|
@@ -134,7 +137,8 @@ module ActiveRecord
|
|
134
137
|
calculate(:maximum, column_name)
|
135
138
|
end
|
136
139
|
|
137
|
-
# Same as
|
140
|
+
# Same as #maximum, but performs the query asynchronously and returns an
|
141
|
+
# ActiveRecord::Promise.
|
138
142
|
def async_maximum(column_name)
|
139
143
|
async.maximum(column_name)
|
140
144
|
end
|
@@ -152,7 +156,8 @@ module ActiveRecord
|
|
152
156
|
end
|
153
157
|
end
|
154
158
|
|
155
|
-
# Same as
|
159
|
+
# Same as #sum, but performs the query asynchronously and returns an
|
160
|
+
# ActiveRecord::Promise.
|
156
161
|
def async_sum(identity_or_column = nil)
|
157
162
|
async.sum(identity_or_column)
|
158
163
|
end
|
@@ -287,7 +292,8 @@ module ActiveRecord
|
|
287
292
|
end
|
288
293
|
end
|
289
294
|
|
290
|
-
# Same as
|
295
|
+
# Same as #pluck, but performs the query asynchronously and returns an
|
296
|
+
# ActiveRecord::Promise.
|
291
297
|
def async_pluck(*column_names)
|
292
298
|
async.pluck(*column_names)
|
293
299
|
end
|
@@ -315,7 +321,8 @@ module ActiveRecord
|
|
315
321
|
limit(1).pluck(*column_names).then(&:first)
|
316
322
|
end
|
317
323
|
|
318
|
-
# Same as
|
324
|
+
# Same as #pick, but performs the query asynchronously and returns an
|
325
|
+
# ActiveRecord::Promise.
|
319
326
|
def async_pick(*column_names)
|
320
327
|
async.pick(*column_names)
|
321
328
|
end
|
@@ -358,7 +365,8 @@ module ActiveRecord
|
|
358
365
|
result.then { |result| type_cast_pluck_values(result, columns) }
|
359
366
|
end
|
360
367
|
|
361
|
-
# Same as
|
368
|
+
# Same as #ids, but performs the query asynchronously and returns an
|
369
|
+
# ActiveRecord::Promise.
|
362
370
|
def async_ids
|
363
371
|
async.ids
|
364
372
|
end
|
@@ -588,7 +588,7 @@ module ActiveRecord
|
|
588
588
|
# User.order(Arel.sql('end_date - start_date'))
|
589
589
|
# # SELECT "users".* FROM "users" ORDER BY end_date - start_date
|
590
590
|
#
|
591
|
-
# Custom query syntax, like JSON columns for
|
591
|
+
# Custom query syntax, like JSON columns for PostgreSQL, is supported in this way.
|
592
592
|
#
|
593
593
|
# User.order(Arel.sql("payload->>'kind'"))
|
594
594
|
# # SELECT "users".* FROM "users" ORDER BY payload->>'kind'
|
@@ -6,7 +6,7 @@ module ActiveRecord
|
|
6
6
|
# number is inserted in to the schema migrations table so it doesn't need
|
7
7
|
# to be executed the next time.
|
8
8
|
class SchemaMigration # :nodoc:
|
9
|
-
class NullSchemaMigration
|
9
|
+
class NullSchemaMigration # :nodoc:
|
10
10
|
end
|
11
11
|
|
12
12
|
attr_reader :connection, :arel_table
|
@@ -30,7 +30,7 @@ module ActiveRecord
|
|
30
30
|
#
|
31
31
|
# ActiveRecord::Base.time_zone_aware_types = [:datetime]
|
32
32
|
#
|
33
|
-
# You can also add database
|
33
|
+
# You can also add database-specific timezone aware types. For example, for PostgreSQL:
|
34
34
|
#
|
35
35
|
# ActiveRecord::Base.time_zone_aware_types += [:tsrange, :tstzrange]
|
36
36
|
#
|
@@ -48,7 +48,7 @@ module Arel # :nodoc: all
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def proc_for_binds
|
51
|
-
-> value { ActiveModel::Attribute.with_cast_value(attribute.name, value,
|
51
|
+
-> value { ActiveModel::Attribute.with_cast_value(attribute.name, value, ActiveModel::Type.default_value) }
|
52
52
|
end
|
53
53
|
|
54
54
|
def fetch_attribute(&block)
|
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.1.
|
4
|
+
version: 7.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10
|
11
|
+
date: 2023-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 7.1.
|
19
|
+
version: 7.1.2
|
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.1.
|
26
|
+
version: 7.1.2
|
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.1.
|
33
|
+
version: 7.1.2
|
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.1.
|
40
|
+
version: 7.1.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: timeout
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -279,6 +279,7 @@ files:
|
|
279
279
|
- lib/active_record/migration/default_strategy.rb
|
280
280
|
- lib/active_record/migration/execution_strategy.rb
|
281
281
|
- lib/active_record/migration/join_table.rb
|
282
|
+
- lib/active_record/migration/pending_migration_connection.rb
|
282
283
|
- lib/active_record/model_schema.rb
|
283
284
|
- lib/active_record/nested_attributes.rb
|
284
285
|
- lib/active_record/no_touching.rb
|
@@ -469,10 +470,10 @@ licenses:
|
|
469
470
|
- MIT
|
470
471
|
metadata:
|
471
472
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
472
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.1.
|
473
|
-
documentation_uri: https://api.rubyonrails.org/v7.1.
|
473
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.1.2/activerecord/CHANGELOG.md
|
474
|
+
documentation_uri: https://api.rubyonrails.org/v7.1.2/
|
474
475
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
475
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.1.
|
476
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.1.2/activerecord
|
476
477
|
rubygems_mfa_required: 'true'
|
477
478
|
post_install_message:
|
478
479
|
rdoc_options:
|