aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Fix out of range error messageRyuta Kamizono2014-11-251-1/+1
|
* allow types to be passed in for USING castsAaron Patterson2014-11-241-0/+3
| | | | | | | This allows us so abstract the migration from the type that is actually used by Rails. For example, ":string" may be a varchar or something, but the framework does that translation, and the app shouldn't need to know.
* oops, forgot to add the real assertion!Aaron Patterson2014-11-241-0/+1
|
* allow the "USING" statement to be specified on change column callsAaron Patterson2014-11-242-1/+28
|
* Merge pull request #17682 from ReneB/docs/update_allRafael Mendonça França2014-11-241-5/+5
|\ | | | | Explain that default_scope also influences update_all
| * Reword documentation for update_allRené van den Berg2014-11-241-8/+1
| | | | | | It now contains a carefully formulated reference to the "current relation" which might help clarify that the receiving will generate its own scope, escaping the need for explicitly referencing `default_scope` which is, after all, just another way of specifying a scope and nothing special.
| * Explain that default_scope also influences update_allRené van den Berg2014-11-201-5/+12
| | | | | | | | | | This was not explicitly stated before and I needed to try it out to be certain. A little explicit statement in the API docs might help here.
* | Mark comments that should not be in the docsclaudiob2014-11-244-0/+14
| | | | | | | | | | | | | | | | | | | | | | Some comments that are meant to separate blocks of code in a file show up on http://api.rubyonrails.org as though they were part of the documentation. This commit hides those comments from the documentation. Stems from the discussion with @zzak at https://github.com/voloko/sdoc/issues/79#issuecomment-64158738 [ci skip]
* | Ensure the type map's cache is thread safeSean Griffin2014-11-241-3/+7
| | | | | | | | | | Thanks to @thedarkone for pointing out that an instance of this object is used in a shared context.
* | Merge pull request #17678 from siddharth28/includes_with_scope_with_joinsSantiago Pastorino2014-11-245-12/+17
|\ \ | | | | | | Fix includes on association with a scope
| * | Fix includes on association with a scope containing joins along with conditionssiddharth@vinsol.com2014-11-215-12/+17
| | | | | | | | | | | | on the joined assoiciation
* | | cleanup, remove trailing whitespace [ci skip]Yves Senn2014-11-241-2/+2
| | |
* | | Add a test for reflection keys as Strings, fixes #16928Zachary Scott2014-11-231-0/+4
| | | | | | | | | | | | See also PR: #17610
* | | Update reflections public API docArthur Neves2014-11-221-1/+1
| | |
* | | Add changelog entry for .reflections API changeArthur Neves2014-11-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `.reflections` public API changed to return a String instead of a Symbol as keys. see commit 1f31488499111fdfce79d8dc1cc8fb008f7cdb25 and 6259e4e2dcca9a79f22f96658c33efe81936bc0d [fixes #16928] [fixes #17610]
* | | Fix build failuresSean Griffin2014-11-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some reason changing `.find` to `.unscoped.find` in https://github.com/rails/rails/commit/f766abd4cf3eb75469d3646cfb6d85e668c619f3 caused `scoping` to leak in some tests when run in isolation (looks like a concurrency issue?). `relation_scoping_test.rb` is a case that failed. From what I can tell it should not be possible, but changing to the block form fixes it. There is a deeper issue that I can't seem to find. /cc @senny
* | | Rename the primary key index when renaming a table in pgSean Griffin2014-11-223-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | Also checked to make sure this does not affect foreign key constraints. (It doesn't). Fixes #12856 Closes #14088
* | | ConnectionAdapter#substitute_at is technically public API...Sean Griffin2014-11-211-1/+1
|/ / | | | | | | We can't change the signature without a deprecation cycle.
* | make it possible to access fixtures excluded by a `default_scope`.Yves Senn2014-11-214-1/+24
| | | | | | | | | | | | | | | | Prior to this patch you'd end up with an error like: ``` ActiveRecord::RecordNotFound: Couldn't find <Model> with 'id'=<id> [WHERE (<default_scope condition>)] ```
* | Merge pull request #17695 from claudiob/replace-all-backticks-with-plusesYves Senn2014-11-214-6/+6
|\ \ | | | | | | Wrap code snippets in +, not backticks, in sdoc [ci skip]
| * | Wrap code snippets in +, not backticks, in sdocclaudiob2014-11-204-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | I grepped the source code for code snippets wrapped in backticks in the comments and replaced the backticks with plus signs so they are correctly displayed in the Rails documentation. [ci skip]
* | | raise a better exception for renaming long indexesAaron Patterson2014-11-203-0/+20
|/ /
* | Merge pull request #17669 from SamSaffron/optimise_memorySean Griffin2014-11-201-1/+6
|\ \ | | | | | | PERF: avoid string allocations
| * | PERF: avoid string allocationsSam2014-11-201-1/+6
| | |
* | | synchronize code and docs for `timestamps` and `add_timestamps`.Yves Senn2014-11-206-10/+22
| |/ |/| | | | | | | | | | | | | This makes the following changes: * warn if `:null` is not passed to `add_timestamps` * `timestamps` method docs link to `add_timestamps` docs * explain where additional options go * adjust examples to include `null: false` (to prevent deprecation warnings)
* | Merge pull request #17575 from shikshachauhan/make-habtm-consistentRafael Mendonça França2014-11-192-1/+11
|\ \ | | | | | | Allow class_name option in habtm to be consistent with other association...
| * | Allow habtm class_name option to be consistent with other associationsshiksha2014-11-132-1/+11
| | |
* | | Reintroduce cache with testsSean Griffin2014-11-193-14/+56
| | |
* | | Add tests for `TypeMap#fetch` and push up to `TypeMap`Sean Griffin2014-11-193-5/+20
| | | | | | | | | | | | | | | | | | | | | It doesn't make sense for the subclass to implement this method, and not have it on the parent. We can also DRY up the implementation of `#lookup` to be defined in terms of fetch, which will give us a single point of entry
* | | That last test was incorrect... ☕Sean Griffin2014-11-191-10/+0
| | |
* | | Revert "PERF: optimise type lookup to avoid invoking procs"Sean Griffin2014-11-192-32/+8
| | | | | | | | | | | | This reverts commit da99a2a2982d35f670ad9647463e09bfe9032b70.
* | | Introduce test to demonstrate regression caused by da99a2a2Sean Griffin2014-11-191-0/+10
| | |
* | | Merge pull request #17662 from ↵Rafael Mendonça França2014-11-192-1/+9
|\ \ \ | | | | | | | | | | | | | | | | dtaniwaki/support-symbol-foreign-key-column-to-delete Support symbol foreign key to delete
| * | | Support symbol foreign key to deletedtaniwaki2014-11-192-1/+9
| | | |
| * | | Revert "[PERF] Speed up integer type casting from DB"Godfrey Chan2014-11-171-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6f7910a and 52c70d4. Query params are type cased through the same method, so this approach doesn't work.
| * | | :nail_care: Put escape clause first, keeps @sgrif happy :grin:Godfrey Chan2014-11-171-1/+2
| | | | | | | | | | | | | | | | See comment on 6f7910a
| * | | [PERF] Speed up integer type casting from DBGodfrey Chan2014-11-171-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Improve the performance of reading attributesSean Griffin2014-11-1812-18/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We added a comparison to "id", and call to `self.class.primary_key` a *lot*. We also have performance hits from `&block` all over the place. We skip the check in a new method, in order to avoid breaking the behavior of `read_attribute`
* | | | pull the preloader allocation in to a factory methodAaron Patterson2014-11-181-1/+5
| | | |
* | | | Speed up integer casting from DBSean Griffin2014-11-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. 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.
* | | | Remove needless call to `key?` when building attributesSean Griffin2014-11-181-2/+4
| | | | | | | | | | | | | | | | This appears to be a performance hotspot, see #17655.
* | | | LazyAttributeHash is privateSean Griffin2014-11-181-1/+1
| | | |
* | | | Remove call to `key?` in `LazyAttributeHash#[]`Sean Griffin2014-11-181-5/+1
| |_|/ |/| | | | | | | | Performance improvement, as well as improved code clarity
* | | PERF: stop allocating the string "id" over and overSam2014-11-181-1/+3
|/ /
* | Remove the unused second argument to `substitute_at`Sean Griffin2014-11-1711-25/+12
| | | | | | | | Oh hey, we got to remove some code because of that!
* | rm `reorder_bind_params`Sean Griffin2014-11-179-25/+7
| | | | | | | | | | | | 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
* | Force table creation in testsSean Griffin2014-11-171-2/+2
| | | | | | | | | | | | If something causes the teardown block to not get run (errors, interrupting test runs), we have to manually delete them, which is a pain.
* | Improve the performance of quoting table names on PGSean Griffin2014-11-171-4/+15
| | | | | | | | | | | | 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.
* | Remove pointless `private`Sean Griffin2014-11-171-2/+0
| | | | | | | | This class no longer has any private methods
* | PERF: optimise type lookup to avoid invoking procsSam2014-11-172-8/+32
| |