1. 06 7月, 2020 4 次提交
    • R
      Resolve attribute alias for counter cache column · 13160269
      Ryuta Kamizono 提交于
      The lack of ability for making this has resolved by #39496 and #39530.
      13160269
    • R
      Merge pull request #39613 from kamipo/where_with_custom_operator · b8064500
      Ryuta Kamizono 提交于
      Support `where` with comparison operators (`>`, `>=`, `<`, and `<=`)
      b8064500
    • R
      Consolidate stringify keys in `PredicateBuilder` · 8714b359
      Ryuta Kamizono 提交于
      `PredicateBuilder.references` and `PredicateBuilder#build_from_hash`
      does similar processing and both requires stringify keys for passed hash
      argument. This consolidates stringify keys to avoid extra string
      allocation in `PredicateBuilder`.
      8714b359
    • R
      Support `where` with comparison operators (`>`, `>=`, `<`, and `<=`) · 6d6ec6f9
      Ryuta Kamizono 提交于
      ```ruby
      posts = Post.order(:id)
      
      posts.where("id >": 9).pluck(:id)  # => [10, 11]
      posts.where("id >=": 9).pluck(:id) # => [9, 10, 11]
      posts.where("id <": 3).pluck(:id)  # => [1, 2]
      posts.where("id <=": 3).pluck(:id) # => [1, 2, 3]
      ```
      
      From type casting and table/column name resolution's point of view,
      `where("create_at >=": time)` is better alternative than `where("create_at >= ?", time)`.
      
      ```ruby
      class Post < ActiveRecord::Base
        attribute :created_at, :datetime, precision: 3
      end
      
      time = Time.now.utc # => 2020-06-24 10:11:12.123456 UTC
      
      Post.create!(created_at: time) # => #<Post id: 1, created_at: "2020-06-24 10:11:12.123000">
      
      # SELECT `posts`.* FROM `posts` WHERE (created_at >= '2020-06-24 10:11:12.123456')
      Post.where("created_at >= ?", time) # => []
      
      # SELECT `posts`.* FROM `posts` WHERE `posts`.`created_at` >= '2020-06-24 10:11:12.123000'
      Post.where("created_at >=": time) # => [#<Post id: 1, created_at: "2020-06-24 10:11:12.123000">]
      ```
      6d6ec6f9
  2. 05 7月, 2020 3 次提交
    • E
      Remove references to WARNINGS environment variable [ci skip] · 2f875896
      Eugene Kenny 提交于
      This has had no effect since 771a802c.
      2f875896
    • E
      Disable template digesting for Active Storage controllers · 6af56621
      Evgeniy Rashchepkin 提交于
      Error entries appear in the log when we request ActiveStorage
      controllers (`ActiveStorage::Representations::ProxyController#show`,
      `ActiveStorage::Blobs::ProxyController#show`).
      
      These entries look like: "Couldn't find template for digesting:
      active_storage/representations/proxy/show".
      
      These controllers use the method
      `ActionController::ConditionalGet#http_cache_forever`,
      and therefore `ActionController::ConditionalGet#combine_etags` method,
      and therefore `ActionController::EtagWithTemplateDigest` module via
      `etaggers` array.
      
      `ActionController::EtagWithTemplateDigest` module requires a template
      (view).
      
      We have no views in ActiveStorage, so `EtagWithTemplateDigest` is
      now turned off in ActiveStorage controllers by
      `etag_with_template_digest` class attribute.
      6af56621
    • S
      31148cd6
  3. 03 7月, 2020 4 次提交
  4. 02 7月, 2020 3 次提交
  5. 01 7月, 2020 6 次提交
    • R
      Merge pull request #39759 from kamipo/marshal_load_legacy_ar_object · 4fe14525
      Ryuta Kamizono 提交于
      Backward compatibility to work `Marshal.load(legacy_record.dump)` for MySQL
      4fe14525
    • J
      Refactor MemoryStore to use Hash ordering rather than key access times · b0cc7d98
      Jean Boussier 提交于
      This is mainly to simplify the code and use less memory, as large hash can use quite a lot:
      
      ```ruby
      >> ObjectSpace.memsize_of(1000.times.map { |i| [i, i]}.to_h)
      => 28768
      >> ObjectSpace.memsize_of(10_000.times.map { |i| [i, i]}.to_h)
      => 458848
      ```
      
      The performance is mostly not impacted, if not slightly better:
      
      ```ruby
      require 'benchmark/ips'
      require 'active_support/all'
      @store = ActiveSupport::Cache::MemoryStore.new
      @store.write("small", "small")
      Benchmark.ips do |x|
        x.report("read:miss") { @store.read("miss") }
        x.report("read:small") { @store.read("small") }
        x.report("write:small") { @store.write("small", "small") }
      end
      ```
      
      6.0.3.2:
      ```
      Warming up --------------------------------------
                 read:miss    42.466k i/100ms
                read:small    25.315k i/100ms
               write:small    17.826k i/100ms
      Calculating -------------------------------------
                 read:miss    426.923k (± 1.9%) i/s -      2.166M in   5.074890s
                read:small    248.518k (± 2.7%) i/s -      1.266M in   5.097049s
               write:small    180.388k (± 1.6%) i/s -    909.126k in   5.041238s
      ```
      
      This branch:
      ```
      Warming up --------------------------------------
                 read:miss    42.040k i/100ms
                read:small    28.364k i/100ms
               write:small    19.361k i/100ms
      Calculating -------------------------------------
                 read:miss    417.814k (± 2.1%) i/s -      2.102M in   5.033186s
                read:small    278.950k (± 2.8%) i/s -      1.418M in   5.088135s
               write:small    193.384k (± 1.8%) i/s -    968.050k in   5.007446s
      ```
      b0cc7d98
    • J
      Merge pull request #39762 from hahmed/active-support/better-docs-for-ordered-options · 0f4258f6
      Jonathan Hefner 提交于
      Improve the docs for ordered options [ci skip]
      0f4258f6
    • H
      Improve the docs for ordered options · d091b9cc
      Haroon Ahmed 提交于
      d091b9cc
    • E
      Merge pull request #39694 from Shopify/routing-mapper-dedup · e82c10b4
      Eugene Kenny 提交于
      Deduplicate some routing data
      e82c10b4
    • J
      Deduplicate some routing data · a55c57d0
      Jean Boussier 提交于
      a55c57d0
  6. 30 6月, 2020 11 次提交
  7. 29 6月, 2020 4 次提交
  8. 28 6月, 2020 2 次提交
  9. 27 6月, 2020 2 次提交
  10. 26 6月, 2020 1 次提交