aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | Fix extension method with dirty target in has_many associationsRyuta Kamizono2017-03-201-2/+3
| |/ / | | | | | | | | | | | | | | | | | | Extension methods should not delegate to `scope` to respect dirty target on `CollectionProxy`. Fixes #28419.
* | | Merge pull request #28487 from kamipo/remove_duplicated_columns_definitionRafael França2017-03-202-11/+5
|\ \ \ | | | | | | | | Remove duplicated `columns` definition
| * | | Remove duplicated `columns` definitionRyuta Kamizono2017-03-202-11/+5
| |/ /
* | | Merge pull request #28473 from kamipo/delegate_uniq_to_recordsRafael França2017-03-201-1/+1
|\ \ \ | | | | | | | | Delegate `uniq` to `records`
| * | | Use `load` rather than `collect` for force loadingRyuta Kamizono2017-03-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since b644964b `ActiveRecord::Relation` includes `Enumerable` so delegating `collect`, `all?`, and `include?` are also unneeded. `collect` without block returns `Enumerable` without preloading by that. We should use `load` rather than `collect` for force loading.
* | | | Merge pull request #27939 from kamipo/fix_select_all_with_legacy_bindsRafael França2017-03-201-1/+5
|\ \ \ \ | |_|/ / |/| | | Fix `select_all` with legacy `binds`
| * | | Fix `select_all` with legacy `binds`Ryuta Kamizono2017-02-121-1/+5
| | | | | | | | | | | | | | | | Fixes #27923.
* | | | Evaluate the default block only when necessaryRyuta Kamizono2017-03-202-3/+3
| |/ / |/| | | | | | | | Follow up of #28453.
* | | Delegate `uniq` to `records`Ryuta Kamizono2017-03-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes CI failure due to 48f3be8c. `Enumerable#uniq` was introduced since Ruby 2.4. We should delegate `uniq` to `records` explicitly. And since b644964b `ActiveRecord::Relation` includes `Enumerable` so delegating `map` is unneeded.
* | | Merge pull request #28191 from eugeneius/string_assoc_orderRafael França2017-03-171-1/+6
|\ \ \ | | | | | | | | Allow order to be given expressions as hash keys
| * | | Allow order to be given expressions as hash keysEugene Kenny2017-02-271-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When `order` is given a hash, the keys are currently assumed to be attribute names and are quoted as such in the query, which makes it impossible to pass an expression instead: Post.order("LENGTH(title)" => :asc).last # SELECT `posts`.* FROM `posts` ORDER BY `posts`.`LENGTH(title)` DESC LIMIT 1 If the key is an `Arel::Nodes::SqlLiteral`, we now use it directly in the query. This provides a way to build a relation with a complex order clause that can still be reversed with `reverse_order` or `last`.
* | | | Merge pull request #28154 from aripollak/remove-comments-from-structure-sqlRafael Mendonça França2017-03-171-0/+20
|\ \ \ \ | | | | | | | | | | | | | | | Drop comments from structure.sql in postgresql
| * | | | Only remove comments before the first statementAri Pollak2017-02-241-4/+9
| | | | |
| * | | | Drop comments from structure.sql in postgresqlAri Pollak2017-02-241-0/+15
| | | | | | | | | | | | | | | | | | | | Fixes #28153.
* | | | | uniq was deprecated and removed alreadyRafael Mendonça França2017-03-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This was causing an infinity loop since it was delegating to `all` and all delegating back to this module.
* | | | | Merge pull request #28318 from ↵Rafael França2017-03-171-6/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | bogdanvlviv/remove-ability-update-locking_column-value Remove ability update locking_column value
| * | | | | Remove ability update locking_column valuebogdanvlviv2017-03-161-6/+2
| | | | | |
* | | | | | Add :default option to belongs_to (#28453)George Claghorn2017-03-173-1/+16
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use it to specify that an association should be initialized with a particular record before validation. For example: # Before belongs_to :account before_validation -> { self.account ||= Current.account } # After belongs_to :account, default: -> { Current.account }
* | | | | Remove unused `@txn` variableEugene Kenny2017-03-151-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was added in c24c885209ac2334dc6f798c394a821ee270bec6, removed in b89ffe7f0047eb614e42232a21201b317b880755, and then (unintentionally?) reintroduced in 2d7ae1b08ee2a10b12cbfeef3a6cc6da55b57df6.
* | | | | Revert "Merge pull request #28369 from ↵Matthew Draper2017-03-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mylake/reduce-postgresql-adapter-memory-bloat" This reverts commit 192db64452d148c7b51713979459e38407380dc6, reversing changes made to 9893955363cf6358556ed3b36f4538d5b54e9d17. We can't sacrifice correctness for performance.
* | | | | Merge pull request #28369 from mylake/reduce-postgresql-adapter-memory-bloatRafael França2017-03-131-2/+2
|\ \ \ \ \ | | | | | | | | | | | | 500x memory reduction of 10k schemas for postgresql adapter
| * | | | | Use “distinct” to filter redundant types from pg_typeto reduce memory ↵mylake2017-03-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | bloat especially in multi-schema structure database
* | | | | | Merge pull request #28068 from kamipo/refactor_data_sourcesRafael França2017-03-137-201/+154
|\ \ \ \ \ \ | | | | | | | | | | | | | | Extract `data_source_sql` to refactor data source statements
| * | | | | | Prefer `USING (column_list)` for joining information_schemaRyuta Kamizono2017-02-251-3/+1
| | | | | | |
| * | | | | | Extract `data_source_sql` to refactor data source statementsRyuta Kamizono2017-02-207-198/+153
| | |_|_|_|/ | |/| | | |
* | | | | | Merge pull request #28017 from mtsmfm/suppress-dep-warnMatthew Draper2017-03-133-0/+6
|\ \ \ \ \ \ | | | | | | | | | | | | | | Suppress deprecation warning `implementing to_yaml is deprecated`
| * | | | | | Suppress deprecation warning `implementing to_yaml is deprecated`Fumiaki MATSUSHIMA2017-02-153-0/+6
| | | | | | |
* | | | | | | Merge pull request #28371 from kamipo/simplify_countAndrew White2017-03-121-7/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Simply forward `Calculations#count` to `Enumerable#count`
| * | | | | | | Simply forward `Calculations#count` to `Enumerable#count`Ryuta Kamizono2017-03-101-7/+4
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up of #24203. Since b644964b `ActiveRecord::Relation` includes `Enumerable` so it is enough to call `super` simply.
* | | | | | | Merge pull request #28372 from kamipo/delegate_as_jsonAndrew White2017-03-122-5/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Simply delegate `as_json` to `records`
| * | | | | | | Simply delegate `as_json` to `records`Ryuta Kamizono2017-03-102-5/+1
| |/ / / / / /
* / / / / / / Remove conditions parameter from `NullRelation#delete_all`Ryuta Kamizono2017-03-101-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | Follow up of e7381d289e4f8751dcec9553dcb4d32153bd922b.
* | | | | | Merge pull request #28351 from kamipo/deprecate_schema_migrations_table_nameRafael Mendonça França2017-03-091-0/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Deprecate `Migrator.schema_migrations_table_name`
| * | | | | | Deprecate `Migrator.schema_migrations_table_name`Ryuta Kamizono2017-03-091-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 67fba0cf `SchemaMigration` model was extracted. Use `SchemaMigration.table_name` instead.
* | | | | | | Fix select with block doesn't return newly built records in has_many associationRyuta Kamizono2017-03-091-2/+2
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `select` in `QueryMethods` is also an enumerable method. Enumerable methods with block should delegate to `records` on `CollectionProxy`, not `scope`. Fixes #28348.
* | | | | | Check whether `Rails.application` defined before calling itAndrew White2017-03-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In #27674 we changed the migration generator to generate migrations at the path defined in `Rails.application.config.paths` however the code checked for the presence of the `Rails` constant but not the `Rails.application` method which caused problems when using Active Record and generators outside of the context of a Rails application. Fixes #28325.
* | | | | | Merge pull request #28305 from kamipo/extract_schema_migration_all_versionsAndrew White2017-03-063-4/+8
|\ \ \ \ \ \ | | | | | | | | | | | | | | Extract `SchemaMigration.all_versions`
| * | | | | | Extract `SchemaMigration.all_versions`Ryuta Kamizono2017-03-063-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use `SchemaMigration.all_versions` instead of `SchemaMigration.all.map(&:version)` to avoid to instantiate AR objects.
* | | | | | | Fix `deserialize` with JSON arrayRyuta Kamizono2017-03-061-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | Fixes #28285.
* | | | | | Remove useless `Migrator.schema_migrations_table_name`Ryuta Kamizono2017-03-052-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | Simply use `SchemaMigration.table_name` instead.
* | | | | | Don't hide method that's been documented API since Rails 2.1Andrew White2017-03-041-3/+3
| | | | | |
* | | | | | Fix `rake db:schema:load` with subdirectoriesRyuta Kamizono2017-03-051-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related #25174. `db:schema:load` doesn't work with subdirectories like previous `db:migrate:status`. `Migrator.migration_files` should be used in `assume_migrated_upto_version` to fix the issue.
* | | | | | Fix `rake db:migrate:status` with subdirectoriesRyuta Kamizono2017-03-042-24/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `db:migrate` supports subdirectories and have a test. https://github.com/rails/rails/blob/v5.1.0.beta1/activerecord/test/cases/migrator_test.rb#L78-L85 But `db:migrate:status` doesn't work with subdirectories. It is due to `Dir.foreach(path)` is not the same with `Dir["#{path}/**/[0-9]*_*.rb"]`. I extracted `migration_files` and sharing it in the both to fix the issue. And added tests for `db:migrate:status`.
* | | | | | Don't share `options` with a reference type columnRyuta Kamizono2017-03-041-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sharing `options` causes some unexpected behavior. If `limit: 2` is specified, this means that 2 bytes integer for a reference id column and 2 chars string for a reference type column. Another example, if `unsigned: true` is specified, this means that unsigned integer for a reference id column, but a invalid option for a reference type column. So `options` should not be shared with a reference type column.
* | | | | | remove unused parametersAaron Patterson2017-03-031-6/+6
| | | | | |
* | | | | | `join_keys` no longer needs a class passed to itAaron Patterson2017-03-033-30/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reflections only use their own information to create a `join_keys` object. This means that we can call `join_keys` on a reflection object and have it be context-free.
* | | | | | refactor so there is only one JoinKeys factory methodAaron Patterson2017-03-031-4/+15
| | | | | |
* | | | | | ask reflection for klass join reflectionAaron Patterson2017-03-032-13/+16
| | | | | |
* | | | | | Move join scopes on to the reflection objectAaron Patterson2017-03-032-8/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scopes can only ever be *not* reflection objects when they are passed in to the Reflection constructor. Given this fact, we can eliminate is_a checks and an intermediate array object by just asking the reflection object for join scopes.
* | | | | | Remove `node` parameter to `join_constraints`Aaron Patterson2017-03-032-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I don't think we actually need this parameter anymore. Nobody seems to be using it.