| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
fixed minor typos in RELEASE doc [ci skip]
|
| | |
|
|\ \
| |/
|/| |
PERF: stop allocating the string "id" over and over
|
| | |
|
| |
| |
| |
| |
| |
| | |
This reverts commit 6f7910a and 52c70d4.
Query params are type cased through the same method, so this approach doesn't work.
|
| |
| |
| |
| | |
See comment on 6f7910a
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't have the check the range when the value is coming from the DB, so
override type_cast_from_database to short-circuit the extra work.
type_cast_from_database (small) 3437507.5 (±29.2%) i/s - 14223135 in 4.996973s
type_cast_from_database (large) 3158588.7 (±28.3%) i/s - 13265628 in 4.992121s
type_cast (small) 481984.8 (±14.2%) i/s - 2352012 in 5.005694s
type_cast (large) 477331.8 (±14.2%) i/s - 2332824 in 5.012365s
Comparison:
type_cast_from_database (small): 3437507.5 i/s
type_cast_from_database (large): 3158588.7 i/s - 1.09x slower
type_cast (small): 481984.8 i/s - 7.13x slower
type_cast (large): 477331.8 i/s - 7.20x slower
The difference is huge but the absolute gain is quite small. That being said
this is a hotspot and it showed up on the radar when benchmarking discourse.
|
|
|
|
| |
Oh hey, we got to remove some code because of that!
|
|
|
|
|
|
| |
Arel handles this for us automatically. Updated tests, as BindParam is
no longer a subclass of SqlLiteral. We should remove the second argument
to substitute_at entirely, as it's no longer used
|
|
|
|
|
|
| |
If something causes the teardown block to not get run (errors,
interrupting test runs), we have to manually delete them, which is a
pain.
|
| |
|
| |
|
| |
|
|\
| |
| | |
Fix typo. [ci skip]
|
|/ |
|
|
|
|
|
|
| |
This caused a pretty major performance regression for 4.2, as this is a
hotspot for query construction. We're still slightly slower than 4.1,
but it's much less significant.
|
|
|
|
| |
Makes life easier for people profiling on master.
|
|
|
|
| |
This class no longer has any private methods
|
|\
| |
| | |
PERF: optimise type lookup to avoid invoking procs
|
| | |
|
|\ \
| | |
| | | |
Skip spring install in Cygwin due to fork() bad support.
|
| | |
| | |
| | |
| | | |
See also: https://www.cygwin.com/faq.html#faq.using.fixing-fork-failures
|
|\ \ \
| | | |
| | | | |
Fix for assigns(:..) resetting template assertions
|
| | | |
| | | |
| | | |
| | | | |
When calling assigns(:...) or cookies(:...), template assertions would be reset, which they obviously shouldn't be.
|
|\ \ \ \
| | | | |
| | | | | |
Update to Unicode 7.0.0
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
7.0.0 was released on June 16, 2014
http://unicode-inc.blogspot.com.ar/2014/10/unicode-version-70-complete-text-of.html
ruby bin/generate_tables
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Minor English fixes in docs [ci skip]
|
| | |_|_|/
| |/| | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is a more conservative approach to 2602a49. Also changed the comment to be
more inline with everything else in the file (describing what the config value
is doing and why). People should just read the docs for alternatives.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This reverts commit 2602a49a8600ab52f807599bbd5b1f9c0be4214f, reversing
changes made to 5d7c1057684c377bc2801c8851e99ff11ab23530.
The explicit default was introduced in 21f6d72, so apps created with Rails < 4
have the commented out version, which means that this change would break those
apps.
|
|\ \ \ \
| | | | |
| | | | | |
Rename #source_extract to #source_extracts in ExceptionWrapper
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It returns multiple source extracts since 1ed264bc. Also cleaned its
result structure, as we no longer need the file in a code extract.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Don't double check trace origin in ExceptionWrapper#traces
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If a trace isn't an application one, then it comes from a framework.
That's the definition of framework trace. We can speed up the traces
generation if we don't double check that.
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
Don't show full trace on routing errors
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since dbcbbcf2bc58e8971672b143d1c52c0244e33f26 the full trace is shown
by default on routing errors. While this is a nice feature to have, it
does take the attention off the routes table in this view and I think
this is what most of the people look for in this page.
Added an exception to the default trace switching rule to remove that
noise.
|
|\ \ \ \
| |/ / /
|/| | | |
add Nokogiri to docs generation guides [ci skip]
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
[ci skip] Missing space in Active Job guide for referring to Action Mailer
|
| |/ / |
|
|\ \ \
| |/ /
|/| | |
Don't let #{application,framework,full}_trace be nil
|
|/ /
| |
| |
| |
| |
| | |
Those three can be nil when exception backtrace is nil. This happens and
that forced a couple of nil guards in the code. I'm proposing to make
those always return an array, even on nil backtrace.
|
|\ \
| | |
| | | |
[ci skip] add "Qu" to Backends Features list
|
|/ / |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
`default_proc` makes a hash unmarshallable, and adds unneccessary
overhead. Since we control all access to the hash, let's just handle it
in that method. This has the side effect of improving performance on
initialization (but not neccessarily on access). We'll need to profile
further once the tests are passing.
|
| |
| |
| |
| |
| |
| |
| | |
In real usage, we give the builder a types hash with a default value of
`Type::Value.new`. This means we need to explicitly check for the key,
rather than the truthiness of the type to determine if it's a known but
uninitialized attribute
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We don't know which attributes will or won't be used, and we don't want
to create massive bottlenecks at instantiation. Rather than doing *any*
iteration over types and values, we can lazily instantiate the object.
The lazy attribute hash should not fully implement hash, or subclass
hash at any point in the future. It is not meant to be a replacement,
but instead implement its own interface which happens to overlap.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 8fee923888192a658d8823b31e77ed0683dfd665.
Conflicts:
activerecord/lib/active_record/attribute_set/builder.rb
This solution sucks, and is hard to actually apply across the board.
Going to try other solutions
|