| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Now that `allocate` is removed, we need to define attribute methods in
all "init" methods.
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* master:
Call initialize after allocate
Remove `ActiveSupport::Concern` from `ActiveRecord::Aggregations`
Add example for no_touching? in active_record/no_touching for api docs [ci skip]
Generate a new key for each service test
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit speeds up allocating homogeneous lists of AR objects. We
can know if the result set contains an STI column before initializing
every AR object, so this change pulls the "does this result set contain
an STI column?" test up, then uses a specialized instantiation function.
This way we only have to check for an STI column once rather than N
times.
This change also introduces a new initialization function that is meant
for use when allocating AR objects that come from the database. Doing
this allows us to eliminate one hash allocation per AR instance.
Here is a benchmark:
```ruby
require 'active_record'
require 'benchmark/ips'
ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
ActiveRecord::Migration.verbose = false
ActiveRecord::Schema.define do
create_table :users, force: true do |t|
t.string :name
t.timestamps null: false
end
end
class User < ActiveRecord::Base; end
2000.times do
User.create!(name: "Gorby")
end
Benchmark.ips do |x|
x.report("find") do
User.limit(2000).to_a
end
end
```
Results:
Before:
```
[aaron@TC activerecord (master)]$ be ruby -I lib:~/git/allocation_tracer/lib speed.rb
Warming up --------------------------------------
find 5.000 i/100ms
Calculating -------------------------------------
find 56.192 (± 3.6%) i/s - 285.000 in 5.080940s
```
After:
```
[aaron@TC activerecord (homogeneous-allocation)]$ be ruby -I lib:~/git/allocation_tracer/lib speed.rb
Warming up --------------------------------------
find 7.000 i/100ms
Calculating -------------------------------------
find 72.204 (± 2.8%) i/s - 364.000 in 5.044592s
```
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Enable TESTOPTS in railties tests
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Unlike the other components' test suites, railties' currently
ignores such useful options as `"--verbose"` or `"--name"`.
This patch allows us to use them.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Call initialize after allocate
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If someone calls allocate on the object, they'd better also call an
initialization routine too (you can't expect allocate to do any
initialization work). Before this commit, AR objects that are
instantiated from the database would call `define_attribute_methods`
twice.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`include Aggregations` no longer needs to invoke
`extend Aggregations::ClassMethods` since 657060b.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Add example for no_touching? for api docs [ci skip]
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
There was no example code for ActiveRecord::NoTouching#no_touching?.
This PR adds an example for the API docs.
|
|/ / / /
| | | |
| | | |
| | | | |
Sidestep Google Cloud Storage's restrictive per-object rate limit.
|
|\ \ \ \
| | | | |
| | | | | |
Lazily add `Aggregations` to `composed_of` models
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`composed_of` is a fairly rare method to call on models. This commit
adds the `Aggregations` module to models that call `composed_of` so that
models that *don't* call `composed_of` don't need to instantiate the
`aggregation_cache` hash. This saves one hash allocation per model
instance that doesn't use `composed_of`
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | | |
hash condition
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The "join" affix in `table_alias_for` was added 12 years ago at 02d3444
to address poor alias tracking.
`AssociationScope` no longer uses the "join" suffixed alias since
0408e21 and had been removed at a1ec8b5.
`table_alias_for` is the last place that using the useless legacy
suffixed alias, but we can't remove the suffix since some test cases
directly refers the alias name by `where` with string literal, so at
least removing the suffix would break our test cases.
(e.g. https://github.com/rails/rails/blob/b2eb1d1c55a59fee1e6c4cba7030d8ceb524267c/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb#L699-L731).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 691addbffad10aa249d5fb1b0e47b46a086e5332.
Reason: v10.5.0 has been released, and it seems that the issue is fixed.
Ref: https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V10.md#10.5.0
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
bogdanvlviv/change-rails_welcome-image-on-localhost3000
Changes Rails Welcome image on localhost:3000
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Note that I used https://www.base64-image.de/ in order to
convert the image to Base64 with enabled optimization status.
Closes #33181.
Closes #33186.
Follow up #32735.
|
| | | |
| | | |
| | | |
| | | | |
is specified
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Update service.rb
[ci skip]
|
|/ / / / |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Update raabro to latest version
|
|/ / / /
| | | |
| | | |
| | | | |
[v 1.1.6](https://github.com/floraison/raabro/blob/master/CHANGELOG.md#raabro-116--released-2018-06-22) fixes a warning we see on [Rails CI](https://travis-ci.org/rails/rails/jobs/395177524#L3763).
|
| | | |
| | | |
| | | |
| | | | |
[Jon Moss & Xavier Noria]
|
|\ \ \ \
| |/ / /
|/| | | |
Active Storage: Explicit form field in basic example
|
|/ / /
| | |
| | | |
Also fix syntax highlighting in the more advanced JS example.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
bogdanvlviv/document-year_format-option-of-date_select
Add to docs mention about `:year_format` option of date select
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Follow up #32190
[ci skip]
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Update fugit to latest version
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
[fugit 1.1.3](https://github.com/floraison/fugit/commit/03a3ee86f3cd5d929442dd25896b99acbd151947)
fixes warnings that show up in ActiveJob tests.
See [CI](https://travis-ci.org/rails/rails/jobs/394107740#L3764-L3778).
|
|\ \ \
| | | |
| | | |
| | | | |
Add `use_year_names` option to date_select tag
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
to customize year
names. Lambda should be passed to use this option. Example:
date_select('user_birthday', '', start_year: 1998, end_year: 2000, year_format: ->year { "Heisei #{year - 1988}" })
The HTML produced:
<select id="user_birthday__1i" name="user_birthday[(1i)]">
<option value="1998">Heisei 10</option>
<option value="1999">Heisei 11</option>
<option value="2000">Heisei 12</option>
</select>
/* The rest is omitted */
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Fix actionpack changelog typo
[ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | | |
I spotted it while working on a PR.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
thomasdziedzic-pd/add-use_authenticated_message_encryption-documentation
add documentation for config.active_support.use_authenticated_message_encryption
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
config.active_support.use_authenticated_message_encryption [ci skip]
related to https://github.com/rails/rails/issues/33170
|
| | | | |
| | | | |
| | | | |
| | | | | |
Follow up of 15367a2c674bf19eeefa12ccb64391bdd50d883d.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since `aliases` is a part of `JoinDependency` and already cached at
1a723c65bbe91ad969b67416233d20eff6d2a46a.
|
|/ / / /
| | | |
| | | |
| | | | |
It was no longer used since d7ddaa530fd1b94e22d745cbaf2e8a5a34ee9734.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* Convert hashes into parameters
Ensure `ActionController::Parameters#transform_values` and
`ActionController::Parameters#transform_values!` converts hashes into
parameters.
* fixup! Convert hashes into parameters
[Rafael Mendonça França + Kevin Sjöberg]
|
|\ \ \ \
| | | | |
| | | | | |
Reduce Memory Allocation when using .pluck
|
| | | | |
| | | | |
| | | | |
| | | | | |
to speed up pluck
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Removed useless utility classes inside HABTM association builder
|
| |/ / / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currently, column aliases which is used for eager loading are calculated
before constructing all table aliases in FROM clause.
`JoinDependency#join_constraints` constructs table aliases for `joins`
first, and then always re-constructs table aliases for eager loading.
If both `joins` and eager loading are given a same table association,
the re-construction would cause the discrepancy between column aliases
and table aliases.
To avoid the discrepancy, the column aliases should be calculated after
all table aliases are constructed.
Fixes #30603.
|