aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | 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.
* | | | | | 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) => []
* | | | | | 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
| * | | | | | Add a record to target before any callbacks loads the recordRyuta Kamizono2016-12-232-13/+16
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `append_record` was added at 15ddd51 for not double adding the record. But adding `append_record` (checking `@target.include?(record)`) caused performance regression #27434. Instead of checking not double adding the record, add a record to target before any callbacks loads the record. Fixes #27434.
* | | | | | No need `:doc:` for `:nodoc:` classes [ci skip]Ryuta Kamizono2016-12-253-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up to 5b14129d8d4ad302b4e11df6bd5c7891b75f393c. http://edgeapi.rubyonrails.org/classes/ActiveRecord/Attribute.html
* | | | | | AR::ConnectionAdapters::PostgreSQL::Name#parts is called from other instancesAkira Matsuda2016-12-251-4/+6
| | | | | |
* | | | | | Privatize unneededly protected methods in Active RecordAkira Matsuda2016-12-2424-148/+134
| | | | | |