- 28 5月, 2019 12 次提交
-
-
由 Ryuta Kamizono 提交于
Currently, if `:datetime` type has a precision, type casting always does round off subseconds regardless of whether necessary or not, it is a bit slow. Since #34970, `t.timestamps` with `precision: 6` by default, so `pluck(:created_at)` in newly created app will always be affected by the round off. This avoids the round off if possible, it makes `pluck(:created_at)` about 25% faster. https://gist.github.com/kamipo/e029539f2632aee9f5e711fe66fc8842 Before (0a87d7c9 with postgresql adapter): ``` Warming up -------------------------------------- users.pluck(:id) 344.000 i/100ms users.pluck(:name) 336.000 i/100ms users.pluck(:created_at) 206.000 i/100ms Calculating ------------------------------------- users.pluck(:id) 3.620k (± 8.5%) i/s - 18.232k in 5.077316s users.pluck(:name) 3.579k (± 9.4%) i/s - 17.808k in 5.020230s users.pluck(:created_at) 2.069k (± 8.0%) i/s - 10.300k in 5.019284s ``` Before (0a87d7c9 with mysql2 adapter): ``` Warming up -------------------------------------- users.pluck(:id) 245.000 i/100ms users.pluck(:name) 240.000 i/100ms users.pluck(:created_at) 180.000 i/100ms Calculating ------------------------------------- users.pluck(:id) 2.548k (± 9.4%) i/s - 12.740k in 5.066574s users.pluck(:name) 2.513k (± 8.0%) i/s - 12.480k in 5.011260s users.pluck(:created_at) 1.771k (±11.2%) i/s - 8.820k in 5.084473s ``` After (this change with postgresql adapter): ``` Warming up -------------------------------------- users.pluck(:id) 348.000 i/100ms users.pluck(:name) 357.000 i/100ms users.pluck(:created_at) 254.000 i/100ms Calculating ------------------------------------- users.pluck(:id) 3.628k (± 8.2%) i/s - 18.096k in 5.024748s users.pluck(:name) 3.624k (±12.4%) i/s - 17.850k in 5.020959s users.pluck(:created_at) 2.567k (± 7.0%) i/s - 12.954k in 5.081153s ``` After (this change with mysql2 adapter): ``` Warming up -------------------------------------- users.pluck(:id) 268.000 i/100ms users.pluck(:name) 265.000 i/100ms users.pluck(:created_at) 207.000 i/100ms Calculating ------------------------------------- users.pluck(:id) 2.586k (±10.9%) i/s - 12.864k in 5.050546s users.pluck(:name) 2.543k (±10.2%) i/s - 12.720k in 5.067726s users.pluck(:created_at) 2.263k (±14.5%) i/s - 10.971k in 5.004039s ```
-
由 Ryuta Kamizono 提交于
Allow symbol (i.e. quoted identifier) as safe SQL string
-
由 Ryuta Kamizono 提交于
`pluck(:id)` / `order(:id)` are very common use case, and passed symbol (i.e. quoted identifier) is obviously safe argument, but `:id.to_s.split(/\s*,\s*/).all? { |part| permit.match?(part) }` is useless and a bit expensive operation for each such safe symbols (will make extra 2 mutable strings, 1 array, 1 proc). This avoids the expensive operation to such safe symbols, it makes `pluck(:id)` / `order(:id)` itself about 9% faster. https://gist.github.com/kamipo/11d428b57f3629a72ae89c6f21721326 Before (93e64073): ``` Warming up -------------------------------------- users.pluck(:id) 1.217k i/100ms users.order(:id).to_sql 1.848k i/100ms Calculating ------------------------------------- users.pluck(:id) 12.239k (± 8.2%) i/s - 60.850k in 5.013839s users.order(:id).to_sql 19.111k (± 7.5%) i/s - 96.096k in 5.064450s ``` After (this change): ``` Warming up -------------------------------------- users.pluck(:id) 1.293k i/100ms users.order(:id).to_sql 2.036k i/100ms Calculating ------------------------------------- users.pluck(:id) 13.257k (± 6.9%) i/s - 65.943k in 5.002568s users.order(:id).to_sql 20.957k (± 7.6%) i/s - 105.872k in 5.086102s ```
-
由 Ryuta Kamizono 提交于
[documentation][ci skip] stringify_keys and symbolize_keys have stable results.
-
由 Ryuta Kamizono 提交于
Remove unused requires from debug_exceptions
-
由 Corprew Reed 提交于
Rails 6 uses the `Hash.transform_keys` found in Ruby 2.5 and later, and that method enumerates keys based on insertion order. Calling `symbolize_keys`, `stringify_keys`, and their bang variants will result in the same hash every time -- the value for any key where a collision occurs is the last assigned in that enumeration In the docs for Hash -- https://ruby-doc.org/core-2.5.0/Hash.html > Hashes enumerate their values in the order that the corresponding keys were inserted.
-
由 yaojie 提交于
-
由 Prem Sichanugrist 提交于
[documentation][ci skip] changes 'Week day' to 'day of week'
-
由 Corprew Reed 提交于
'Week day' has a specific meaning in English -- see https://en.wiktionary.org/wiki/weekday for details -- that is not meant here. 'Day of week' is more appropriate. [ci skip]
-
由 Akira Matsuda 提交于
-
由 Rafael França 提交于
Use WeakRef in Reaper to avoid leaking connection pools
-
由 John Hawthorn 提交于
Prior to 3e2e8eeb the Reaper thread would hold a reference to connection pools indefinitely, preventing the connection pool from being garbage collected, and also leaking the Thread. Since 3e2e8eeb, there is only one Reaper Thread for all pools, however all pools are still stored in a class variable, preventing them from being garbage collected. This commit instead holds reference to the pools through a WeakRef. This way, connection pools referenced elsewhere will be reaped, any others will be able to be garbage collected. I don't love resorting to WeakRef to solve this, but I believe it's the simplest way to accomplish the the desired behaviour.
-
- 27 5月, 2019 2 次提交
-
-
由 Ryuta Kamizono 提交于
-
由 Kasper Timm Hansen 提交于
-
- 26 5月, 2019 1 次提交
-
-
由 Ryuta Kamizono 提交于
Change comments [ci skip]
-
- 25 5月, 2019 3 次提交
-
-
由 Edu Depetris 提交于
-
由 Kasper Timm Hansen 提交于
Fix EventedFileUpdateChecker through a symlink
-
由 Kasper Timm Hansen 提交于
-
- 24 5月, 2019 8 次提交
-
-
由 Rafael França 提交于
Wrap ActionView cache expiry in a mutex
-
由 Rafael França 提交于
Delete evented_file_update_checker existing_parent
-
由 John Hawthorn 提交于
On MacOS, Dir.tmpdir gives me a folder inside "/var/folders/". However, /var is a symlink to /private/var. Previously, the nonexistent directory test would fail because it was initialized with /var/folders/... but the filenames from listen would be the realpaths. This commit normalizes the dirs by calling realpath on them if they exist. This is done on boot!, so it will work with newly directories through the symlink.
-
由 John Hawthorn 提交于
The common include of this test creates a tmpdir, we should use that for consistency.
-
由 John Hawthorn 提交于
This is no longer used as of caa3cc88
-
由 Rafael França 提交于
Bump Gemfile entry jbuilder version
-
由 George Claghorn 提交于
Add :allow_nil option to delegate_missing_to
-
由 Matt Tanous 提交于
attachment
-
- 23 5月, 2019 8 次提交
-
-
由 Anton Rieder 提交于
jbuilder 2.6.4 is the first version that relaxes the version constraint to allow Rails 6. I also did some more tests in #25183, although not with 2.6.4 explicitly. To simplify the version requirement, I went for 2.7. https://github.com/rails/jbuilder/blob/v2.6.4/jbuilder.gemspec https://github.com/rails/rails/issues/25183#issuecomment-494342406
-
由 Gannon McGibbon 提交于
Keep part when scope option has value
-
由 Alberto Almagro 提交于
After @kamipo CR feedback we realized `Route#build` wasn't used. As it is also private API being able to create Routes both with `#new` and `#build` was redundant.
-
由 Alberto Almagro 提交于
This commit changes from constructor's argument list to keyword arguments in order to remove the dependency of remember parameters' positions. It also unifies all parameters extracted from the `scope` into `scope_params`, which also takes care of providing the default values for them.
-
由 Alberto Almagro 提交于
This commit changes from constructor's argument list to keyword arguments in order to remove the dependency of remember parameters' positions. The constructor already provided a default value for `internal`, this commits takes the chance to also add default values for `precedence` and `scope_options`.
-
由 Alberto Almagro 提交于
When a route was defined within an optional scope, if that route didn't take parameters the scope was lost when using path helpers. This patch ensures scope is kept both when the route takes parameters or when it doesn't. Fixes #33219
-
由 George Claghorn 提交于
-
由 Rafael França 提交于
Remove compatibility module from docs [ci skip]
-
- 22 5月, 2019 6 次提交
-
-
由 Alan Wu 提交于
This module exists to warn old users. I think we should remove it from the docs so we don't advertise it.
-
由 Rafael França 提交于
Added deep_transform_keys to StrongParameters
-
由 Gustavo Gutierrez 提交于
-
由 प्रथमेश Sonpatki 提交于
- This hook was added in 90296674
-
由 Rafael França 提交于
[CI skip] Put :nodoc: on method that raises NoMethodError
-
由 John Hawthorn 提交于
-