aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #26183 from Shopify/fix-no-touching-touch-laterRafael França2016-08-163-1/+14
|\ | | | | Makes touch_later respects no_touching policy
| * Makes touch_later respects no_touching policyJean Boussier2016-08-163-1/+14
| |
* | Add array column documentationoss922016-08-161-0/+4
| |
* | Merge pull request #26117 from kamipo/make_association_quary_to_preparable_step1Rafael Mendonça França2016-08-161-11/+11
|\ \ | | | | | | | | | Make association queries to preparable: Step 1
| * | Make association queries to preparable: Step 1Ryuta Kamizono2016-08-111-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently association queries cannot be preparable. ```ruby Post.where(author_id: 1).to_a # => SELECT "posts".* FROM "posts" WHERE "posts"."author_id" = ? [["author_id", 1]] Post.where(author: 1).to_a # => SELECT "posts".* FROM "posts" WHERE "posts"."author_id" = 1 ``` To make association queries to preparable, it should be handled in `create_binds_for_hash`. This change is a first step for it.
* | | Merge pull request #26074 from kamipo/where_by_attribute_with_array_or_rangeRafael França2016-08-163-7/+23
|\ \ \ | | | | | | | | `where` by `array|range` attribute with array or range value
| * | | `where` by `array|range` attribute with array or range valueRyuta Kamizono2016-08-113-7/+23
| |/ / | | | | | | | | | | | | | | | | | | Currently predicate builder cannot build a predicate for `array|range` attribute. This commit fixes the issue. Related #25671.
* | | Merge pull request #26097 from Dagnan/fix_recordnotfound_args_rebasedRafael França2016-08-164-4/+33
|\ \ \ | | | | | | | | When calling association.find RecordNotFound is now raised with the s…
| * | | When calling association.find RecordNotFound is now raised with the same ↵Michel Pigassou2016-08-134-4/+33
| | | | | | | | | | | | | | | | argument as when we do it in Record.find (primary_key, id and model).
* | | | Merge pull request #26151 from kamipo/avoid_to_allow_unused_splat_argsRafael França2016-08-163-6/+4
|\ \ \ \ | | | | | | | | | | Avoid to allow unused splat args for `t.timestamps` in `create_table`
| * | | | Avoid to allow unused splat args for `t.timestamps` in `create_table`Ryuta Kamizono2016-08-143-6/+4
| |/ / / | | | | | | | | | | | | | | | | | | | | Unfortunately `t.timestamps` in `create_table` allows unused splat args. But the same one in `change_table` does not allow them. This commit fixes the inconsistent behavior.
* | | | Merge pull request #26155 from kamipo/refactor_quoted_columns_for_indexRafael Mendonça França2016-08-162-29/+25
|\ \ \ \ | | | | | | | | | | | | | | | Refactor `quoted_columns_for_index` by extracted `add_options_for_index_columns`
| * | | | Refactor `quoted_columns_for_index` by extracted `add_options_for_index_columns`Ryuta Kamizono2016-08-142-29/+25
| |/ / /
* | | | Merge pull request #26162 from kamipo/take_respects_dirty_targetRafael França2016-08-163-19/+19
|\ \ \ \ | | | | | | | | | | `CollectionProxy#take` should respect dirty target
| * | | | `CollectionProxy#take` should respect dirty targetRyuta Kamizono2016-08-143-19/+19
| |/ / / | | | | | | | | | | | | | | | | `#first`, `#second`, ..., `#last` methods respects dirty target. But `#take` doesn't respect it. This commit fixes the inconsistent behavior.
* | | | Merge pull request #26019 from agrobbin/schema-load-unique-column-indicesRafael França2016-08-163-3/+19
|\ \ \ \ | | | | | | | | | | Support multiple indexes on the same column when loading the schema
| * | | | support multiple indexes on the same column when loading the schemaAlex Robbin2016-08-023-3/+19
| | | | |
* | | | | Add three new rubocop rulesRafael Mendonça França2016-08-16112-556/+556
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Style/SpaceBeforeBlockBraces Style/SpaceInsideBlockBraces Style/SpaceInsideHashLiteralBraces Fix all violations in the repository.
* | | | | Eager autoload ActiveRecord::TableMetadataclaudiob2016-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a bug that can occur when ActiveJob tries to access ActiveRecord. Specifically, I had an Active Job process fail on Sidekiq with this error: ``` ActiveJob::DeserializationError: Error while trying to deserialize arguments: uninitialized constant ActiveRecord::Core::ClassMethods::TableMetadata Did you mean? ActiveRecord::TableMetadata ``` raised by these lines of code: ``` [GEM_ROOT]/gems/activerecord-5.0.0.1/lib/active_record/core.rb:300 :in `table_metadata` 298 299 def table_metadata # :nodoc: 300 TableMetadata.new(self, arel_table) 301 end 302 end [GEM_ROOT]/gems/activerecord-5.0.0.1/lib/active_record/core.rb:273 :in `predicate_builder` [GEM_ROOT]/gems/activerecord-5.0.0.1/lib/active_record/core.rb:290 :in `relation` ``` The problem seems to be that, inside ActiveRecord::Core, the `TableMetadata` class has not been loaded and, therefore, Rails tries to access the constant `ActiveRecord::Core::ClassMethods::TableMetadata` which does not exist. Eager loading `ActiveRecord::TableMetadata` should fix the issue. @rafaelfranca -- see our Campfire discussion
* | | | | Merge pull request #26167 from kamipo/remove_find_nth_with_limit_and_offsetKasper Timm Hansen2016-08-151-34/+13
|\ \ \ \ \ | | | | | | | | | | | | Remove `find_nth_with_limit_and_offset` private method
| * | | | | Remove `find_nth_with_limit_and_offset` private methodRyuta Kamizono2016-08-151-34/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `find_nth` is protected method, therefore `offset` has not been passed anywhere. `find_nth_with_limit_and_offset` is unnecessary anymore because `offset` has not been passed.
* | | | | | Merge pull request #26170 from eugeneius/rm_log_subscriber_odd_ivarKasper Timm Hansen2016-08-151-5/+0
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Remove odd ivar from ActiveRecord::LogSubscriber
| * | | | | Remove odd ivar from ActiveRecord::LogSubscriberEugene Kenny2016-08-151-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was used to switch the output colour between log lines, but now the output colour is based on the type of statement being logged instead.
* | | | | | Fix `ActiveRecord::FixtureSet` docs [ci skip]Ryuta Kamizono2016-08-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ActiveSupport::TestCase` was replaced `ActiveRecord::TestCase` in #26150. But this docs is for rails apps per se, it should be `ActiveSupport::TestCase`. See https://github.com/rails/rails/pull/26150#discussion_r74710989.
* | | | | | Merge pull request #26150 from kamipo/consolidate_ar_test_case_and_as_test_caseSean Griffin2016-08-143-21/+20
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Consolidate `ActiveRecord::TestCase` and `ActiveSupport::TestCase` in AR test cases
| * | | | | Consolidate `ActiveRecord::TestCase` and `ActiveSupport::TestCase` in AR ↵Ryuta Kamizono2016-08-143-21/+20
| | |/ / / | |/| | | | | | | | | | | | | test cases
* | | | | Pass along original attribute to save later recursionAaron Patterson2016-08-142-1/+8
| | | | | | | | | | | | | | | | | | | | Fixes #26122
* | | | | Merge pull request #26012 from grosser/grosser/missingSean Griffin2016-08-141-1/+1
|\ \ \ \ \ | |/ / / / |/| | | | add more array methods to straight delegation to speed up calling them
| * | | | add index to array methods so we can call it on relationsMichael Grosser2016-08-121-1/+1
| | | | |
* | | | | Merge pull request #26113 from kamipo/use_ar_test_case_instead_of_as_test_caseRafael França2016-08-122-2/+2
|\ \ \ \ \ | | | | | | | | | | | | Use `ActiveRecord::TestCase` rather than `ActiveSupport::TestCase` in AR test cases
| * | | | | Use `ActiveRecord::TestCase` rather than `ActiveSupport::TestCase` in AR ↵Ryuta Kamizono2016-08-112-2/+2
| | |_|/ / | |/| | | | | | | | | | | | | test cases
* | | | | Merge pull request #26100 from vipulnsward/changelogsRafael França2016-08-121-2/+5
|\ \ \ \ \ | | | | | | | | | | | | Pass over changelogs
| * | | | | Pass over changelogs [ci skip]Vipul A M2016-08-101-2/+5
| | | | | |
* | | | | | Merge pull request #26124 from yahonda/diag26099Sean Griffin2016-08-111-4/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Creating a new Topic class instead of class_eval for the existing one
| * | | | | | Creating a new Topic class instead of class_eval for the existing oneYasuo Honda2016-08-111-4/+2
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | since it affects another test `ReflectionTest#test_read_attribute_names` Address #26099
* / | | | | Fix warning: ambiguous first argumentRyuta Kamizono2016-08-121-1/+1
|/ / / / /
* | | | | prefer __dir__ over __FILE__ in File.expand_pathXavier Noria2016-08-111-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thinking .. relative to files is not natural, we are used to think "parent of a directory", and we have __dir__ nowadays.
* | | | | Fix a NoMethodError schema_statements.rbGenadi Samokovarov2016-08-102-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you call `remove_index` with wrong options, say a type, like I did, you get: ``` == 20160810072541 RemoveUniqueIndexOnGoals: migrating ========================= -- remove_index(:goal, {:coulmn=>:kid_id, :unique=>true}) rails aborted! StandardError: An error has occurred, this and all later migrations canceled: undefined method `ArgumentError' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x007fb7dec91b28> ``` What happened is that I mistyped column (coulmn) and got a `NoMethodError`, because of a missing comma during the raise. This made Ruby think we're calling the method `ArgumentError`.
* | | | | Fix broken alignments caused by auto-correct commit 411ccbdRyuta Kamizono2016-08-105-6/+12
|/ / / / | | | | | | | | | | | | Hash syntax auto-correcting breaks alignments. 411ccbdab2608c62aabdb320d52cb02d446bb39c
* | | | revises more Lint/EndAlignment offensesXavier Noria2016-08-081-3/+3
| | | |
* | | | Use `FETCH FIRST` for Oracle12 database and Arel Oracle12 visitorYasuo Honda2016-08-082-4/+4
| | | | | | | | | | | | | | | | | | | | also test `ROWNUM <=` for Oracle 11g or older version of Oracle and Oracle visitor Oracle 12c database and Arel Oracle12 visitor supports better top N query.
* | | | code gardening: removes redundant selfsXavier Noria2016-08-0820-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few have been left for aesthetic reasons, but have made a pass and removed most of them. Note that if the method `foo` returns an array, `foo << 1` is a regular push, nothing to do with assignments, so no self required.
* | | | revises most Lint/EndAlignment offensesXavier Noria2016-08-079-41/+43
| | | | | | | | | | | | | | | | Some case expressions remain, need to think about those ones.
* | | | Merge pull request #26076 from yui-knk/privatize_expandKasper Timm Hansen2016-08-071-10/+10
|\ \ \ \ | | | | | | | | | | `ActiveRecord::PredicateBuilder#expand` to be private
| * | | | `ActiveRecord::PredicateBuilder#expand` to be privateyui-knk2016-08-071-10/+10
| | | | | | | | | | | | | | | | | | | | This method is not touched from outside.
* | | | | Add `Style/EmptyLines` in `.rubocop.yml` and remove extra empty linesRyuta Kamizono2016-08-0725-27/+0
|/ / / /
* | | | Merge pull request #26073 from kamipo/revert_passing_splat_binds_for_arel_nodeSean Griffin2016-08-064-13/+11
|\ \ \ \ | | | | | | | | | | Revert passing arel node with splat binds for `where`
| * | | | Revert passing arel node with splat binds for `where`Ryuta Kamizono2016-08-062-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passing arel node with splat binds for `where` was introduced at #22877 for uniqueness validator supports prepared statement. But I'd not like to introduce the following usage: ```ruby Foo.where(arel, *binds) ``` I'd like to revert this internal usage.
| * | | | Don't passing a nil value to `case_sensitive_comparison`Ryuta Kamizono2016-08-063-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | | A `value` is only used for checking `value.nil?`. It is unnecessary if immediately return when `value.nil?`.
* | | | | applies remaining conventions across the projectXavier Noria2016-08-0678-207/+143
| | | | |