aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | Fix bulk change table ignores comment option on PostgreSQL.Yoshiyuki Kinjo2018-08-151-1/+5
| | | | | | |
* | | | | | | Follow up #33530bogdanvlviv2018-08-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move changelog entry of #33530 up in order to preserve the chronology since we always add new entries on the top of a changelog file. - Clarify the changelog entry - Clarify the docs of remove_foreign_key - Ensure reversible of `remove_foreign_key` with `:primary_key` and `:to_table` options.
* | | | | | | Merge pull request #33530 from jychen7/33515-invert-remove-foreign-keyRichard Schneeman2018-08-142-4/+24
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | 33515 invert remove foreign key support "to_table"
| * | | | | | | Allow `to_table` in `invert_remove_foreign_key`Rich2018-08-142-4/+24
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remove_foreign_key supports - remove_foreign_key :accounts, :branches - remove_foreign_key :accounts, to_table: :branches but the second one is not reversible. This branch is to fix and allow second one to be reversible. [Nikolay Epifanov, Rich Chen]
* / / / / / / Use `Array#extract!` where possiblebogdanvlviv2018-08-142-8/+12
|/ / / / / /
* / / / / / Use strings instead of symbols on calls to decorate_matching_attribute_typesDillon Welch2018-08-102-2/+2
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | The first thing this method does is run on the argument. This change passes in a string so we don't allocate a bunch of unnecessary extra strings by calling to_s on a symbol over and over.
* | | | | Merge pull request #33454 from azbshiri/extend-affects-nested-attributesRichard Schneeman2018-08-041-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Call build when extend with nested attributes defined
| * | | | | Call build when extend with nested attributes definedAlireza Bashiri2018-08-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | What? From now on when `accepts_nested_attributes_for` defined and `extend` option added the overwritten `build` method being called. [Alireza Bashiri, Martins Polakovs]
* | | | | | Merge pull request #33511 from ↵Richard Schneeman2018-08-043-4/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | albertoalmagro/change-references-from-rake-to-rails-command Change references from Rake task to Rails command
| * | | | | | [ci skip] Change references from Rake task to Rails commandAlberto Almagro2018-08-013-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit follows the path we started at commit #ea4f0e2 and continued at PR #33229.
* | | | | | | `retrieve_connection_pool` return a pool, not a connectionRyuta Kamizono2018-08-031-2/+2
| |/ / / / / |/| | | | |
* | | | | | don't establish connection test_database since it gets established in ↵Britni Alexander2018-08-011-1/+0
|/ / / / / | | | | | | | | | | | | | | | load_schema
* | | | | use load_schema instead of migrate for parallel testingBritni Alexander2018-07-312-6/+9
| | | | |
* | | | | Revert "Merge pull request #24131 from brchristian/limit_and_primary_key"Ryuta Kamizono2018-08-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d162188dd662a7d9f62ba8431474f50bc35e3e93, reversing changes made to 3576782888c307e3e192c44e332b957cd1174128. Reason: #24131 conflicts the #5153's default order contract, it means that existing apps would be broken by that change. We don't want to break existing apps without a deprecation cycle.
* | | | | Avoid extra scoping when using `Relation#update`Ryuta Kamizono2018-07-312-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 9ac7dd4, class level `update`, `destroy`, and `delete` were placed in the `Persistence` module as class methods. But `Relation#update` without passing ids which was introduced at #11898 is not a class method, and it was caused the extra scoping regression #33470. I moved the relation method back into the `Relation` to fix the regression. Fixes #33470.
* | | | | MySQL: Raise ActiveRecord::InvalidForeignKey for foreign-key constraint ↵George Claghorn2018-07-302-2/+4
| | | | | | | | | | | | | | | | | | | | violations on delete
* | | | | Extract `Relation#bind_attribute` for internal useRyuta Kamizono2018-07-302-8/+11
| | | | | | | | | | | | | | | | | | | | To make it easier to construct boundable predicate.
* | | | | Extract `Relation#update_counters` for internal useRyuta Kamizono2018-07-304-34/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The target object for counter cache is not always determined by the primary key value on the model. I'd like to extract `update_couters` onto the `Relation` for the internal use.
* | | | | Fix TypeError: no implicit conversion of Arel::Attributes::Attribute into StringBart de Water2018-07-281-1/+1
| | | | |
* | | | | Fix test failures due to Performance/RegexpMatch correctionBart de Water2018-07-281-1/+3
| | | | | | | | | | | | | | | | | | | | `5 =~ /\d/` returns nil, but Integer doesn't have a `match?` method.
* | | | | Enable Start/EndWith and RegexpMatch copsBart de Water2018-07-282-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | In cases where the MatchData object is not used, this provides a speed-up: https://github.com/JuanitoFatas/fast-ruby/#stringmatch-vs-stringmatch-vs-stringstart_withstringend_with-code-start-code-end
* | | | | Don't expose configuration for a test.Kasper Timm Hansen2018-07-281-21/+9
| | | | | | | | | | | | | | | | | | | | Clean up some concepts in the code while we're here.
* | | | | Avoid logging ActiveRecord::LogSubscriber as the query source when the ↵lsylvester2018-07-281-12/+9
| | | | | | | | | | | | | | | | | | | | source is ignored (#33455)
* | | | | PostgreSQL 10 new relkind for partitioned tables (#31336)Yannick Schutz2018-07-271-2/+2
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * PostgreSQL 10 new relkind for partitioned tables Starting with PostgreSQL 10, we can now have partitioned tables natively * Add comment * Remove extra space * Add test for partition table in postgreSQL10 * Select 'p' for "BASE TABLE" and add a test case to support PostgreSQL 10 partition tables * Address RuboCop offense * Addressed incorrect `postgresql_version` Fixes #33008. [Yannick Schutz & Yasuo Honda & Ryuta Kamizono]
* | | | Merge pull request #32381 from q-centrix/update-codeclimate-configsRichard Schneeman2018-07-256-18/+6
|\ \ \ \ | | | | | | | | | | Turn on performance based cops
| * | | | Turn on performance based copsDillon Welch2018-07-236-18/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use attr_reader/attr_writer instead of methods method is 12% slower Use flat_map over map.flatten(1) flatten is 66% slower Use hash[]= instead of hash.merge! with single arguments merge! is 166% slower See https://github.com/rails/rails/pull/32337 for more conversation
* | | | | Normalize time value not to be affected by summer timeRyuta Kamizono2018-07-251-0/+1
| | | | | | | | | | | | | | | | | | | | Follow up of #33358 for SQLite3.
* | | | | Merge pull request #33229 from ↵Matthew Draper2018-07-252-7/+7
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | albertoalmagro/albertoalmagro/prefer-rails-command-over-bin-rails Prefer rails command over bin/rails
| * | | | | Substitute references to task for commandAlberto Almagro2018-07-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This commit substitutes references to rails/rake task for rails command
| * | | | | Recommend use of rails over bin/railsAlberto Almagro2018-07-062-6/+6
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed in #33203 rails command already looks for, and runs, bin/rails if it is present. We were mixing recommendations within guides and USAGE guidelines, in some files we recommended using rails, in others bin/rails and in some cases we even had both options mixed together.
* | | | | Rails guides are now served over httpsPaul McMahon2018-07-241-1/+1
| |/ / / |/| | | | | | | | | | | | | | | http links will be redirected to the https version, but still better to just directly link to the https version.
* | | | Merge pull request #33415 from orhantoy/feature/docs-consistent-hash-syntaxGeorge Claghorn2018-07-221-8/+8
|\ \ \ \ | | | | | | | | | | [ci skip] Use consistent hash syntax in AR docs
| * | | | [ci skip] Use consistent hash syntax in AR docsOrhan Toy2018-07-221-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | The examples with `.where` uses hash w/ symbol keys so it would be more consistent to also do this with `.new`. Also from my experience the hash w/ symbol keys is more widely used with `where/new/create` etc. in ActiveRecord.
* | | | | [ci skip] Tidy up formatting of examplesOrhan Toy2018-07-221-12/+3
|/ / / / | | | | | | | | | | | | The consecutive verbatim blocks were being merged making the output look weird.
* | | | don't impose primary key order if limit() is definedBrian Christian2018-07-191-1/+1
| | | |
* | | | Avoid extra scoping in delegating to klass methods in the `scope` blockRyuta Kamizono2018-07-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since #29301, delegating to klass methods in the `scope` block would cause extra scoping by the receiver itself. The extra scoping would always override intermediate scoping like `unscoped` and caused the regression #33387. To keep the original scoping behavior, should avoid the extra scoping in the `scope` block. Fixes #33387.
* | | | Fix `insert_fixtures_set` to be restored original connection flagsRyuta Kamizono2018-07-192-29/+36
| | | | | | | | | | | | | | | | | | | | | | | | #33363 has two regressions. First one is that `insert_fixtures_set` is failed if flags is an array. Second one is that connection flags are not restored if `set_server_option` is not supported.
* | | | Revert "Short circuit the scoping delegation for `relation.all`"Ryuta Kamizono2018-07-191-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit eb807384c81a6e086b17a576755e992e6c4c685e. If the current scope is affected by the `unscoped` block, `all` won't be the same with `spawn`.
* | | | Merge pull request #33363 from ahorek/transaction_bugRafael França2018-07-181-5/+23
|\ \ \ \ | | | | | | | | | | use set_server_option if possible
| * | | | use set_server_option if possiblepavel2018-07-151-5/+23
| | | | |
* | | | | Implement change() to convert to "2001-01-01" firstSean Prashad2018-07-171-0/+1
|/ / / / | | | | | | | | | | | | (cherry picked from commit da34d4766c33a042aeb92778a492fa810ec23001)
* | | | Merge pull request #28327 from rngtng/add-seed-dependencyRafael França2018-07-111-1/+1
|\ \ \ \ | | | | | | | | | | Add missing env & config dependency to `rake db:seed`
| * | | | Add missing load config dependency to `rake db:seed`Tobias Bielohlawek2018-07-101-1/+1
| | | | |
* | | | | Avoid unneeded expanded column aliases array cachingRyuta Kamizono2018-07-102-8/+5
|/ / / /
* | | | SQLite: Don't leak internal schema objectsRyuta Kamizono2018-07-092-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related #31201. If creating custom primary key (like a string) in SQLite, it would also create an internal index implicitly which named begin with "sqlite_". It need to be hidden since the internal object names are reserved and prohibited for public use. See https://www.sqlite.org/fileformat2.html#intschema Fixes #33320.
* | | | Fix default value for mysql time types with specified precisionNikolay Kondratyev2018-07-041-2/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The TIME, DATETIME, and TIMESTAMP types [have supported](https://mariadb.com/kb/en/library/microseconds-in-mariadb/) a fractional seconds precision from 0 to 6. Default values from time columns with specified precision is read as `current_timestamp(n)` from information schema. rake `db:schema:dump` produces `schema.rb` **without** default values for time columns with the specified precision: t.datetime "last_message_at", precision: 6, null: false rake `db:schema:dump` produces `schema.rb` **with** default values for time columns with the specified precision: t.datetime "last_message_at", precision: 6, default: -> { "current_timestamp(6)" }, null: false
* | | Use `construct_join_dependency` in all placesRyuta Kamizono2018-07-033-13/+6
| | |
* | | Don't extract `readonly_value` each timeRyuta Kamizono2018-07-032-5/+7
| | |
* | | Don't share seen object cache between different join nodes in eager loadingRyuta Kamizono2018-07-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the seen object cache is shared if join nodes have the same target class. But it is a wrong assumption, we can't share the seen object cache between different join nodes (e.g. `:readonly_account` and `:accounts` have the same target class `Account`, but the instances have the different state `readonly`). Fixes #26805. Closes #27737.
* | | Merge pull request #33242 from brasic/sqlite-readonlyRyuta Kamizono2018-07-031-1/+3
|\ \ \ | | | | | | | | | | | | Support readonly option in SQLite3Adapter