aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | Don't invoke `touch_updates` if `touch` does not suppliedRyuta Kamizono2017-01-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `touch_updates` calls `Time.now` via `current_time_from_proper_timezone` so it is better to not invoke `touch_updates` if it is unnecessary.
* | | | | | | | Fix tests with counter cache touching and more.Kasper Timm Hansen2017-01-011-18/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Refactor to use `touch_updates` Ensures we only call `current_time_from_proper_timezone` from one place. * Clarify touch default in tests. Not interested in what happens when passed false but that nothing passed means no touching. * Backdate touched columns in tests. We can't be sure a test progresses through time, so our touching code may be working correctly but the test itself is brittle. Fix by backdating that's further in the past akin to what the timestamps tests do: https://github.com/rails/rails/blob/d753645d40e925973724e4c3a8617b654da90e41/activerecord/test/cases/timestamp_test.rb#L17 * Expand changelog entry. Elaborate and show examples. Closes #26995. [ Jarred Trost & Kasper Timm Hansen ]
* | | | | | | | Added option to ActiveRecord::CounterCache methods.Jarred Trost2017-01-011-8/+68
| | | | | | | |
* | | | | | | | Revert "Merge pull request #27528 from kamipo/extract_casted_booleans"Kasper Timm Hansen2017-01-011-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As pointed out by @matthewd this change makes ImmutableString aware of MysqlString's existence whereas previously MysqlString was only overriding public API. cc @kamipo This reverts commit e632c2fa4cb60072a778ce95c952a0fa95e5b074, reversing changes made to 334a7dcf107cd3ff1697163d331d289d6d65dcd7.
* | | | | | | | Change `timestamp_attributes_for_{create,update}` from symbol to stringRyuta Kamizono2017-01-011-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `timestamp_attributes_for_{create,update}` is defined as symbol but always used as string with `to_s`. This allocates extra strings. To avoid extra allocation, change the definitions from symbol to string. ```ruby pp ObjectSpace::AllocationTracer.trace { 1_000.times { |i| Post.create! } } ``` Before: ``` ["~/rails/activerecord/lib/active_record/timestamp.rb", 121]=>[1002, 0, 750, 0, 1, 18528], ["~/rails/activerecord/lib/active_record/timestamp.rb", 105]=>[1002, 0, 750, 0, 1, 7720], ["~/rails/activerecord/lib/active_record/timestamp.rb", 101]=>[1002, 0, 750, 0, 1, 7720], ["~/rails/activerecord/lib/active_record/timestamp.rb", 109]=>[1002, 0, 750, 0, 1, 13896], ["~/rails/activerecord/lib/active_record/timestamp.rb", 61]=>[4008, 0, 3000, 0, 1, 30880], ``` After: ``` ["~/rails/activerecord/lib/active_record/timestamp.rb", 120]=>[1000, 0, 756, 0, 1, 17184], ["~/rails/activerecord/lib/active_record/timestamp.rb", 104]=>[1000, 0, 756, 0, 1, 7160], ["~/rails/activerecord/lib/active_record/timestamp.rb", 100]=>[1000, 0, 756, 0, 1, 7160], ["~/rails/activerecord/lib/active_record/timestamp.rb", 108]=>[1000, 0, 756, 0, 1, 12888], ```
* | | | | | | | Merge pull request #27528 from kamipo/extract_casted_booleansKasper Timm Hansen2016-12-311-14/+6
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Extract `casted_true`/`casted_false` for `Type::ImmutableString`
| * | | | | | | | Extract `casted_true`/`casted_false` for `Type::ImmutableString`Ryuta Kamizono2017-01-011-14/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only difference between `Type::ImmutableString` and its subclasses is the representation of the casted booleans. Prefer extracting `casted_true`/`casted_false` and override these by subclasses.
* | | | | | | | | Refactor `CollectionAssociation#ids_reader`Ryuta Kamizono2017-01-011-3/+1
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simply we can do `target.pluck(reflection.association_primary_key)` if `target` is loaded.
* / / / / / / / Dump array subtype options correctlyRyuta Kamizono2017-01-011-1/+1
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently schema dumper does not dump array subtype `precision` and `scale` options. This commit fixes the issue.
* | | | | | | Merge pull request #27441 from koic/quoted_insert_version_sqlKasper Timm Hansen2016-12-311-4/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Add a quote to an SQL insert statement of schema migration
| * | | | | | | Add a quote to an SQL insert statement of schema migrationKoichi ITO2016-12-231-4/+4
| | |/ / / / / | |/| | | | |
* | | | | | | [ci skip] Retouch some association wording.Kasper Timm Hansen2016-12-311-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Trim some needless words off the lines and format the code sample like we'd write in the Rails source.
* | | | | | | [ci skip] Remove mention of GeneratedAssociationMethodsKasper Timm Hansen2016-12-311-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Marked as private in 2afe5a1 and doesn't seem worth it to mention the module name here.
* | | | | | | Merge pull request #27521 from ↵Kasper Timm Hansen2016-12-311-0/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prathamesh-sonpatki/mark-one-more-constant-as-private Mark :GeneratedAssociationMethods also as private_constant
| * | | | | | | Mark :GeneratedAssociationMethods also as private_constantPrathamesh Sonpatki2016-12-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - After https://github.com/rails/rails/commit/64e5b897ac944a05a33275e3828a3d4047a6b457, only :GeneratedAssociationMethods was remaining to be marked as private constant, so marked it as well. - Before: >> User.constants(false) => [:GeneratedAssociationMethods] - After: >> User.constants(false) => []
* | | | | | | | Bump license years for 2017Jon Moss2016-12-311-1/+1
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Per https://www.timeanddate.com/counters/firstnewyear.html, it's already 2017 in a lot of places, so we should bump the Rails license years to 2017. [ci skip]
* | | | | | | Mark internal cache constants as privateMatthew Draper2016-12-311-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #14640
* | | | | | | Remove deprecated `#uniq`, `#uniq!`, and `#uniq_value`Ryuta Kamizono2016-12-302-13/+0
| | | | | | |
* | | | | | | Remove deprecated `#insert_sql`, `#update_sql`, and `#delete_sql`Ryuta Kamizono2016-12-301-6/+0
| | | | | | |
* | | | | | | Remove deprecated #use_transactional_fixtures configurationRafael Mendonça França2016-12-291-13/+1
| | | | | | |
* | | | | | | Remove deprecated `#raise_in_transactional_callbacks` configurationRafael Mendonça França2016-12-291-10/+0
| | | | | | |
* | | | | | | Remove deprecated #load_schema_forRafael Mendonça França2016-12-291-8/+0
| | | | | | |
* | | | | | | Remove deprecated conditions parameter from #delete_allRafael Mendonça França2016-12-291-19/+11
| | | | | | |
* | | | | | | Remove deprecated conditions parameter from `#destroy_all`Rafael Mendonça França2016-12-291-10/+2
| | | | | | |
* | | | | | | Remove deprecated support to passing arguments to `#select` when a block is ↵Rafael Mendonça França2016-12-291-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | provided.
* | | | | | | Remove deprecated support to query using commas on LIMITRafael Mendonça França2016-12-292-25/+3
| | | | | | |
* | | | | | | Remove deprecated support to passing a class as a value in a queryRafael Mendonça França2016-12-292-31/+0
| | | | | | |
* | | | | | | Raises IrreversibleOrderError when using last with an irreversible orderRafael Mendonça França2016-12-291-8/+0
| | | | | | |
* | | | | | | Raise when a through association has an ambiguous reflection nameRafael Mendonça França2016-12-292-9/+22
| | | | | | |
* | | | | | | Raises when `ActiveRecord::Migration` is inherited directly.Rafael Mendonça França2016-12-292-42/+25
| | | | | | |
* | | | | | | Remove original_exception from ActiveRecord::StatementInvalidRafael Mendonça França2016-12-292-12/+2
| | | | | | |
* | | | | | | `#tables` and `#table_exists?` and returns only tables and not viewsRafael Mendonça França2016-12-297-77/+61
| | | | | | |
* | | | | | | Remove deprecated `name` argument from `#tables`Rafael Mendonça França2016-12-294-22/+4
| | | | | | |
* | | | | | | Remove deprecated support to passing a column to #quoteRafael Mendonça França2016-12-291-11/+1
| | | | | | |
* | | | | | | Set time as a timezone aware type and remove related deprecationRafael Mendonça França2016-12-291-23/+2
| | | | | | |
* | | | | | | Remove deprecated force reload argument in association readersRafael Mendonça França2016-12-292-20/+4
| | | | | | |
* | | | | | | Remove deprecated i18n scopes in Active RecordRafael Mendonça França2016-12-292-16/+2
| | | | | | |
* | | | | | | Merge pull request #27493 from kamipo/sync_visibilityRafael França2016-12-291-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Sync the visibility of `sql_for_insert` to private
| * | | | | | | Sync the visibility of `sql_for_insert` to privateRyuta Kamizono2016-12-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The visibility of all internal protected methods was changed to private since 5b14129.
* | | | | | | | Remove try! usage in sqlite_database_tasks.Kasper Timm Hansen2016-12-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We try to not try! internally.
* | | | | | | | Merge pull request #27437 from kirs/structure-load-dump-flagsKasper Timm Hansen2016-12-294-11/+28
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | Make ActiveRecord structure load/dump configurable
| * | | | | | | Make ActiveRecord structure load/dump configurableKir Shatrov2016-12-224-11/+28
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this patch it's impossible to pass extra flags to mysqldump/pg_dump when running `rake db:structure:dump` or `load` The following config variables (`structure_load_flags` and `structure_dump_flags`) make it better configurable.
* | | | | | | Merge pull request #27490 from ↵Rafael França2016-12-291-4/+6
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | kamipo/should_not_update_children_when_parent_creation_with_no_reason Should not update children when the parent creation with no reason
| * | | | | | Should not update children when the parent creation with no reasonRyuta Kamizono2016-12-291-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This issue was introduced with d849f42 to solve #19782. However, we can solve #19782 without causing the issue. It is enough to save only when necessary. Fixes #27338.
* | | | | | | Merge pull request #26376 from kamipo/remove_polymorphic_base_class_for_arrayRafael França2016-12-291-3/+0
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Remove extracting `polymorphic_base_class` for `Array` in `AssociationQueryValue`
| * | | | | | Remove extracting `polymorphic_base_class` for `Array` in ↵Ryuta Kamizono2016-09-211-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `AssociationQueryValue` It is handled by `PolymorphicArrayValue`.
* | | | | | | Merge pull request #27402 from yui-knk/executeRafael França2016-12-281-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Use `#execute` instead of `@connection.query`
| * | | | | | | Use `#execute` instead of `@connection.query`yui-knk2016-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `@connection.query` bypasses instrumenting "sql.active_record". This behavior preventing us from debugging SQLs which Rails generates.
* | | | | | | | Fix Rubocop violations and fix documentation visibilityRafael Mendonça França2016-12-2815-147/+147
| |_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some methods were added to public API in 5b14129d8d4ad302b4e11df6bd5c7891b75f393c and they should be not part of the public API.
* | | | | | | Merge pull request #27442 from kamipo/fix_27434Eileen M. Uchitelle2016-12-272-13/+16
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Add a record to target before any callbacks loads the record