1. 13 2月, 2017 1 次提交
    • R
      Deprecate `supports_primary_key?` · bb45fa05
      Ryuta Kamizono 提交于
      `supports_primary_key?` was added to determine if `primary_key` is
      implemented in the adapter in f0602214. But we already use `primary_key`
      without `supports_primary_key?` (207f266c, 5f3cf424) and using
      `supports_primary_key?` has been removed in #1318. This means that
      `supports_primary_key?` is no longer used in the internal and Active
      Record doesn't work without `primary_key` is implemented (all adapters
      must implement `primary_key`).
      
      Closes #27977
      bb45fa05
  2. 11 2月, 2017 1 次提交
  3. 10 2月, 2017 2 次提交
    • R
      Fix `test_composite_primary_key_out_of_order` · 283250fc
      Ryuta Kamizono 提交于
      `test_composite_primary_key_out_of_order` should use `barcodes_reverse`
      table.
      283250fc
    • J
      Simplify and speed up Postgres query for primary_keys · d6529af2
      Jordan Lewis 提交于
      primary_keys(table) needs to query various metadata tables in Postgres to
      determine the primary key for the table. Previously, it did so using a
      complex common table expression against pg_constraint and pg_attribute.
      
      This patch simplifies the query by joining pg_index against pg_attribute
      instead of going through pg_constraint. This avoids an expensive unnest,
      window function query, and common table expression.
      
      EXPLAINing these queries in Postgres against a database with a single
      table with a composite primary key shows a 66% reduction in the plan and
      execute latencies. This is significant during application startup time,
      especially against very large schemas, where these queries would be even
      slower and more numerous.
      
      Closes #27949
      d6529af2
  4. 09 2月, 2017 1 次提交
  5. 04 2月, 2017 2 次提交
  6. 19 12月, 2016 1 次提交
  7. 06 12月, 2016 4 次提交
  8. 29 10月, 2016 1 次提交
  9. 07 8月, 2016 2 次提交
  10. 02 7月, 2016 1 次提交
  11. 01 7月, 2016 1 次提交
  12. 07 6月, 2016 1 次提交
  13. 12 3月, 2016 1 次提交
    • R
      Primary key should be `NOT NULL` · 98fb3744
      Ryuta Kamizono 提交于
      Follow up to #18228.
      
      In MySQL and PostgreSQL, primary key is to be `NOT NULL` implicitly.
      But in SQLite it must be specified `NOT NULL` explicitly.
      98fb3744
  14. 11 3月, 2016 1 次提交
  15. 29 2月, 2016 1 次提交
  16. 23 2月, 2016 1 次提交
  17. 01 2月, 2016 1 次提交
  18. 30 1月, 2016 2 次提交
  19. 17 12月, 2015 1 次提交
  20. 09 11月, 2015 1 次提交
    • Y
      Deprecate `#table_exists?`, `#tables` and passing arguments to `#talbes` · 7429633b
      yui-knk 提交于
      Reported on #21509, how views is treated by `#tables` are differ
      by each adapters. To fix this different behavior, after Rails 5.0
      is released, deprecate `#tables`.
      
      And `#table_exists?` would check both tables and views.
      To make their behavior consistent with `#tables`, after Rails 5.0
      is released, deprecate `#table_exists?`.
      7429633b
  21. 02 11月, 2015 1 次提交
  22. 20 9月, 2015 1 次提交
  23. 18 9月, 2015 1 次提交
    • R
      Add `unsigned` support for numeric data types in MySQL · f3772f72
      Ryuta Kamizono 提交于
      Example:
      
          create_table :foos do |t|
            t.integer :unsigned_integer, unsigned: true
            t.bigint  :unsigned_bigint,  unsigned: true
            t.float   :unsigned_float,   unsigned: true
            t.decimal :unsigned_decimal, unsigned: true, precision: 10, scale: 2
          end
      f3772f72
  24. 22 5月, 2015 1 次提交
  25. 19 5月, 2015 1 次提交
  26. 31 3月, 2015 1 次提交
    • K
      use Model.reset_column_information to clear table cache connection wide. · bf6a33fd
      Kuldeep Aggarwal 提交于
          `widgets` table is being created in `primary_keys_test.rb` for PostgreSQLAdapter, MysqlAdapter, Mysql2Adapter
          and it makes test to fail earlier.
      
          Before:
            `bundle exec rake mysql2:test`
      
          ```
          Finished in 127.287669s, 35.5258 runs/s, 97.8885 assertions/s.
      
            1) Error:
          PersistenceTest::SaveTest#test_save_touch_false:
          ActiveModel::UnknownAttributeError: unknown attribute 'name' for #<Class:0x0000000a7d6ef0>.
              /home/kd/projects/kd-rails/activerecord/lib/active_record/attribute_assignment.rb:36:in `rescue in _assign_attribute'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/attribute_assignment.rb:34:in `_assign_attribute'
              /home/kd/projects/kd-rails/activemodel/lib/active_model/attribute_assignment.rb:40:in `block in _assign_attributes'
              /home/kd/projects/kd-rails/activemodel/lib/active_model/attribute_assignment.rb:39:in `each'
              /home/kd/projects/kd-rails/activemodel/lib/active_model/attribute_assignment.rb:39:in `_assign_attributes'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/attribute_assignment.rb:26:in `_assign_attributes'
              /home/kd/projects/kd-rails/activemodel/lib/active_model/attribute_assignment.rb:33:in `assign_attributes'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/core.rb:293:in `initialize'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/inheritance.rb:61:in `new'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/inheritance.rb:61:in `new'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/persistence.rb:50:in `create!'
              /home/kd/projects/kd-rails/activerecord/test/cases/persistence_test.rb:913:in `test_save_touch_false'
      
          4522 runs, 12460 assertions, 0 failures, 1 errors, 4 skips
          ```
      
          After:
            `bundle exec rake mysql2:test`
      
          ```
             Finished in 135.785086s, 33.3026 runs/s, 91.7774 assertions/s.
      
             4522 runs, 12462 assertions, 0 failures, 0 errors, 4 skips
          ```
      bf6a33fd
  27. 17 3月, 2015 1 次提交
    • B
      Closes rails/rails#18864: Renaming transactional fixtures to transactional tests · 09658635
      Brandon Weiss 提交于
      I’m renaming all instances of `use_transcational_fixtures` to
      `use_transactional_tests` and “transactional fixtures” to
      “transactional tests”.
      
      I’m deprecating `use_transactional_fixtures=`. So anyone who is
      explicitly setting this will get a warning telling them to use
      `use_transactional_tests=` instead.
      
      I’m maintaining backwards compatibility—both forms will work.
      `use_transactional_tests` will check to see if
      `use_transactional_fixtures` is set and use that, otherwise it will use
      itself. But because `use_transactional_tests` is a class attribute
      (created with `class_attribute`) this requires a little bit of hoop
      jumping. The writer method that `class_attribute` generates defines a
      new reader method that return the value being set. Which means we can’t
      set the default of `true` using `use_transactional_tests=` as was done
      previously because that won’t take into account anyone using
      `use_transactional_fixtures`. Instead I defined the reader method
      manually and it checks `use_transactional_fixtures`. If it was set then
      it should be used, otherwise it should return the default, which is
      `true`. If someone uses `use_transactional_tests=` then it will
      overwrite the backwards-compatible method with whatever they set.
      09658635
  28. 24 2月, 2015 1 次提交
  29. 18 2月, 2015 1 次提交
  30. 22 1月, 2015 1 次提交
  31. 29 12月, 2014 1 次提交
  32. 28 12月, 2014 2 次提交