aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* PostgreSQL: Allow pg-1.0 gem to be used with ActiveRecordLars Kanis2018-01-101-1/+1
| | | | | | | | | | | | | | pg-1.0.0 is just released and most Gemfiles don't restrict it's version. But the version is checked when connecting to the database, which leads to the following error: Gem::LoadError: can't activate pg (~> 0.18), already activated pg-1.0.0 See also this pg issue: https://bitbucket.org/ged/ruby-pg/issues/270/pg-100-x64-mingw32-rails-server-not-start Preparation for pg-1.0 was done in commit f28a331023fab, but the pg version constraint was not yet relaxed.
* [ci skip] setting :inverse_of works with :as, :through and :polymorphic ↵Bart de Water2018-01-101-12/+18
| | | | | | | | options, and is needed for bi-directionality with a scope [ci skip] Remove :conditions opion from association basics guide This got replaced by scopes.
* Fix `stale_state` for nested `has_many :through` associationsRyuta Kamizono2018-01-103-22/+41
| | | | Need reloading when through record has replaced.
* Merge pull request #16314 from ↵Ryuta Kamizono2018-01-104-1/+76
|\ | | | | | | | | | | zoltankiss/allow-nested-has-many-associations-on-unpersisted-parent-instances fix nested `has many :through` associations on unpersisted parent instances
| * Fix nested `has many :through` associations on unpersisted instancesZoltan Kiss2015-03-263-1/+34
| | | | | | | | Fixes: #16313
* | Bring back passing single record support for `Preloader`Ryuta Kamizono2018-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | I removed redundant `Array.wrap(records)` since `Preloader` is nodoc class and Active Record always pass `records` as an array to `Preloader`. But if users relies on that behavior, it is not worth dropping its behavior. Fixes #31661.
* | resolve inconsistencies between first and to_a.first with limitBrian Christian2018-01-093-1/+31
| |
* | Fix deleting through records when using has_many through with `source_type`Ryuta Kamizono2018-01-082-20/+29
| | | | | | | | | | | | | | | | Currently deleting through records doesn't respect `source_type`. It should not be ignored in that case. Related #23209. Fixes #24116.
* | Simply use `scope.delete_all` instead of constructing delete managerRyuta Kamizono2018-01-071-8/+1
| |
* | Make `find_nth_from_last` more performant when using reversible orderRyuta Kamizono2018-01-071-6/+5
| | | | | | | | | | We can use `relation.last(index)[-index]` instead of loading all records when using reversible order because `last` will call `reverse_order`.
* | Fix `last` with `offset` to behave consistently with loaded relationRyuta Kamizono2018-01-072-9/+5
| | | | | | | | | | | | Currently `last` with `offset` behaves incorrectly because `offset` can not be reversed like `limit`. Therefore, `offset` should also be handled like `limit`.
* | Fix `pluck` with eager loading to respect `offset`Ryuta Kamizono2018-01-072-1/+6
| |
* | Revert commit 4ec5b0d6b4d8a57e034b1014942356e95caf47aa in favor of #28379Ryuta Kamizono2018-01-072-9/+4
| | | | | | | | | | Commit 4ec5b0d was for fixing the regression #18787, but #28379 fixes #18787 as well. So 4ec5b0d is no longer necessary.
* | Remove passing argument to singular and collection association readersRyuta Kamizono2018-01-051-2/+2
| | | | | | | | Follow up of 09cac8c67afdc4b2a1c6ae07931ddc082629b277.
* | Partial revert the changing default value of `readonly_value`Ryuta Kamizono2018-01-052-15/+3
| | | | | | | | | | This is a partial revert of #26182. There is no reason to change the default value.
* | Fix newly added reflection order when redefining associationRyuta Kamizono2018-01-043-4/+5
| | | | | | | | | | | | | | | | | | | | Currently reflections keeps the order when first added even if when redefining association. As a result of the order, redefining through association which use newly added association will raise `HasManyThroughOrderError`. We need to redefine reflection order as well when redefining association. Fixes #31068.
* | Deprecate `valid_alter_table_type?` in sqlite3 adapterRyuta Kamizono2018-01-042-7/+16
| | | | | | | | | | This method which is used only in the internal was introduced in ac384820 and was renamed in #17579. It does not need to be exposed.
* | Correctly handle infinity value in PostgreSQL range typeyuuji.yaginuma2018-01-043-2/+22
| | | | | | | | | | | | | | | | An empty string is an invalid value in Ruby's range class. So need to handle `Float::INFINITY` as it is and cast it in `encode_range`. Fixes #31612
* | Merge pull request #31331 from dinahshi/postgresql_bulk_updateMatthew Draper2018-01-034-13/+68
|\ \ | | | | | | Add bulk alter support for PostgreSQL
| * | Add bulk alter support for PostgreSQLDinah Shi2017-12-064-13/+68
| | |
* | | Merge pull request #25456 from ojab/masterRyuta Kamizono2018-01-032-4/+2
|\ \ \ | | | | | | | | | | | | Remove dormant check
| * | | Remove dormant checkojab2016-06-211-3/+1
| | | | | | | | | | | | | | | | | | | | This check was introduced in 6edaa26 and moved through multiple refactorings. No test are broken after removal and AFAICS there is no way to trigger it.
* | | | Merge pull request #27561 from fishbrain/count-all-in-has-many-associationRyuta Kamizono2018-01-034-1/+16
|\ \ \ \ | | | | | | | | | | | | | | | Use `count(:all)` in HasManyAssociation#count_records
| * | | | Use `count(:all)` in HasManyAssociation#count_recordsKlas Eskilson2017-02-074-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Calling `count` on an association can cause invalid SQL queries to be created where the `SELECT COUNT(a, b, c)` function receives multiple columns. This will cause a `StatementInvalid` exception later on. Solution: Use `count(:all)`, which generates a `SELECT COUNT(*)...` query independently of the association. This also includes a test case that, before the fix, broke.
* | | | | Merge pull request #29018 from willbryant/missing_attributes_after_saveRyuta Kamizono2018-01-031-0/+7
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | fix the dirty tracking code's save hook overwriting missing attribute…
| * | | | | fix the dirty tracking code's save hook overwriting missing attributes with ↵Will Bryant2017-05-102-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | initialized-to-nil attributes. fixes #29017.
* | | | | | Active Record: Bump license years for 2018 [ci skip]Ryuta Kamizono2018-01-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Follow up of #31606.
* | | | | | Add test case for `collection_singular_ids` with symbol primary keysRyuta Kamizono2018-01-012-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | This is a regression test for #27864.
* | | | | | Remove `association_primary_key_type` from `AssociationReflection` and ↵Ryuta Kamizono2018-01-013-19/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ThroughReflection` This method was introduced in #26718, which is internally used only in `CollectionAssociation`. There is no need to be in the reflection classes.
* | | | | | Refactor delegating `join_primary_key` instead of `join_keys` and ↵Ryuta Kamizono2018-01-014-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `association_primary_key` in `TableMetadata` Because `join_primary_key` is called by `join_keys` and it is to abstract calling `association_primary_key`.
* | | | | | Merge pull request #31606 from yhirano55/bump_license_years_for_2018Arun Agrawal2017-12-311-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | Bump license years for 2018
| * | | | | | Bump license years for 2018Yoshiyuki Hirano2017-12-311-1/+1
| | | | | | |
* | | | | | | Merge pull request #31575 from bogdan/bugfix-has-many-reattachmentRyuta Kamizono2018-01-013-13/+17
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Bugfix foreign key replacement in inverse association
| * | | | | | | Bugfix foreign key replacement in inverse associationBogdan Gusiev2017-12-273-13/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when model is added to collection association
* | | | | | | | Fix recreating partial indexes after alter table for sqlitefatkodima2017-12-312-0/+18
| |/ / / / / / |/| | | | | |
* | | | | | | Fix `cache_key` with a relation having distinct and orderRyuta Kamizono2017-12-302-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't replace existing SELECT list as long as having DISTINCT, it will cause incorrect result. And also, PostgreSQL has a limitation that ORDER BY expressions must appear in select list for SELECT DISTINCT. Therefore, we should not replace existing SELECT list when using DISTINCT. Fixes #29779.
* | | | | | | Fix `cache_key` with a relation having custom select and orderRyuta Kamizono2017-12-292-2/+7
|/ / / / / / | | | | | | | | | | | | | | | | | | We can't replace existing select list as long as referenced by ORDER BY.
* | | | | | SQLite: Add more test cases for adding primary keyRyuta Kamizono2017-12-262-58/+100
| | | | | |
* | | | | | Make `sql_type` of primary key in SQLite to comparable with an integer (#28008)Ryuta Kamizono2017-12-262-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally I tried to add `assert_equal pk.sql_type, ref.sql_type`. But the assert failed even though the same type due to `sql_type` of primary key in SQLite is upper case. Prefer lower case like other types.
* | | | | | Fix `add_column` with :primary_key type compatibility for SQLitefatkodima2017-12-252-1/+20
| | | | | |
* | | | | | Don't pass `object_id` to `refute_nil` since `object_id` never to be nilRyuta Kamizono2017-12-261-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | And prefer `assert_same` over `assert_equal`.
* | | | | | Merge pull request #27780 from ↵Ryuta Kamizono2017-12-254-5/+15
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mikelikesbikes/fix-update-attribute-callbacks-issue save attributes changed by callbacks after update_attribute
| * | | | | | save attributes changed by callbacks after update_attributeMike Busch2017-12-223-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | update_attribute previously stopped execution, before saving and before running callbacks, if the record's attributes hadn't changed. [The documentation](http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-update_attribute) says that "Callbacks are invoked", which was not happening if the persisted attributes hadn't changed.
* | | | | | | Add test case for using sanitize method in the scope definitionRyuta Kamizono2017-12-221-2/+10
|/ / / / / / | | | | | | | | | | | | | | | | | | Context: https://github.com/rails/rails/pull/29301#issuecomment-353200233
* | | | | | Merge pull request #31520 from yahonda/introduce_frozen_error_classRyuta Kamizono2017-12-204-3/+7
|\ \ \ \ \ \ | | | | | | | | | | | | | | Handle `FrozenError` if it is available
| * | | | | | Handle `FrozenError` if it is availableYasuo Honda2017-12-204-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This pull request handles `FrozenError` introduced by Ruby 2.5. Refer https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/61131 Since `FrozenError` is a subclass of `RuntimeError` minitest used by master branch can handle it, though it would be better to handle `FrozenError` explicitly if possible. `FrozenError` does not exist in Ruby 2.4 or lower, `frozen_error_class` handles which exception is expected to be raised. This pull request is intended to be merged to master, then backported to `5-1-stable` to address #31508
* | | | | | | Fix Illegal parameter data type bigint for operation 'get_lock' errorIvan Zinovyev2017-12-201-2/+2
| | | | | | |
* | | | | | | Remove passing needless empty string `options` in `create_table`Ryuta Kamizono2017-12-203-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up of #31177.
* | | | | | | Place args normalization from `left_outer_joins` to `left_outer_joins!`Ryuta Kamizono2017-12-201-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Like other query bang methods.
* | | | | | | Remove verbose_query_logs from new_framework_defaults_5_2.rbEugene Kenny2017-12-202-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `app:update` rake task will regenerate `development.rb` so that it contains this option; that means we're currently adding it to existing apps in two places, which is unnecessary and confusing. Also: - Remove inaccurate comment about which stack frames are ignored - Clarify that the feature uses `caller_locations`, not `caller` - Remove unused return value in `extract_callstack`