1. 29 2月, 2016 1 次提交
  2. 22 2月, 2016 1 次提交
  3. 03 2月, 2016 1 次提交
  4. 01 2月, 2016 4 次提交
  5. 31 1月, 2016 1 次提交
  6. 22 1月, 2016 1 次提交
    • S
      [close #23009] Limit key length · 8897e05e
      schneems 提交于
      Mysql has a weird bug where it cannot index a string column of utf8mb4 if it is over a certain character limit. To get compatibility with msql we can add a limit to the key column. 191 characters is a very long key, it seems reasonable to limit across all adapters since using a longer key wouldn't be supported in mysql.
      
      Thanks to @kamipo for the original PR and the test refactoring.
      
      Conversation: https://github.com/rails/rails/pull/23009#issuecomment-171416629
      8897e05e
  7. 15 1月, 2016 1 次提交
  8. 14 1月, 2016 1 次提交
  9. 13 1月, 2016 1 次提交
  10. 09 1月, 2016 1 次提交
    • S
      Refactor tz aware types, add support for PG ranges · 302e9235
      Sean Griffin 提交于
      This is an alternate implementation to #22875, that generalizes a lot of
      the logic that type decorators are going to need, in order to have them
      work with arrays, ranges, etc. The types have the ability to map over a
      value, with the default implementation being to just yield that given
      value. Array and Range give more appropriate definitions.
      
      This does not automatically make ranges time zone aware, as they need to
      be added to the `time_zone_aware` types config, but we could certainly
      make that change if we feel it is appropriate. I do think this would be
      a breaking change however, and should at least have a deprecation cycle.
      
      Closes #22875.
      
      /cc @matthewd
      302e9235
  11. 04 1月, 2016 1 次提交
  12. 01 1月, 2016 1 次提交
    • F
      Remove unnecessary enable,disable_extension on tests · 2f684561
      Fumiaki MATSUSHIMA 提交于
      uuid-ossp extension is alreadly enabled on test schema.
      And `disable_extension!('uuid-ossp', connection)` can be a cause of test failure.
      `ActiveRecord::StatementInvalid: PG::UndefinedFunction: ERROR:  function uuid_generate_v1() does not exist`
      will happen depending on the execution order.
      2f684561
  13. 27 12月, 2015 1 次提交
  14. 23 12月, 2015 1 次提交
  15. 22 12月, 2015 1 次提交
  16. 21 12月, 2015 1 次提交
  17. 18 12月, 2015 3 次提交
  18. 17 12月, 2015 3 次提交
    • A
      Remove legacy mysql adapter · fb24d0ed
      Abdelkader Boudih 提交于
      fb24d0ed
    • G
      Support passing the schema name prefix to `conenction.indexes` · d927f35b
      Grey Baker 提交于
      Support passing the schema name as a prefix to table name in
      `ConnectionAdapters::SchemaStatements#indexes`. Previously the prefix would
      be considered a full part of the index name, and only the schema in the
      current search path would be considered.
      d927f35b
    • S
      Fix test failure on Windows · f0f4f543
      Sean Griffin 提交于
      When this test was run on Windows, the database file would still be in
      use, and `File.unlink` would fail. This would cause the temp directory to
      be unable to be removed, and error out. By disconnecting the connection
      when finished, we can avoid this error.
      f0f4f543
  19. 16 12月, 2015 1 次提交
  20. 15 12月, 2015 3 次提交
  21. 05 12月, 2015 1 次提交
    • Y
      remove warning from postgresql geometric test · 4ab20ed5
      yuuji.yaginuma 提交于
      This removes the following warning which has been out in the case of a PostgreSQL 9.3 below.
      
      ```
      activerecord/test/cases/adapters/postgresql/geometric_test.rb:265: warning: instance variable @connection not initialized
      ```
      4ab20ed5
  22. 24 11月, 2015 2 次提交
  23. 20 11月, 2015 1 次提交
  24. 18 11月, 2015 1 次提交
    • S
      Rename 'key' to 'lock_id' or 'lock_name' for advisory locking · 5ce21d4f
      Sam Davies 提交于
      - key was a poor choice of name. A key implies something that will
        unlock a lock. The concept is actually more like a 'lock identifier'
      - mysql documentation calls this a 'lock name'
      - postgres documentation calls it a 'lock_id'
      - Updated variable names to reflect the preferred terminology for the database in
        question
      5ce21d4f
  25. 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
  26. 05 11月, 2015 1 次提交
  27. 03 11月, 2015 1 次提交
    • Y
      Add test_float_limits to mysql2 · fde48732
      yui-knk 提交于
      This test case was definded by 51de8cee.
      `float` and `double` is registered in abstract_mysql_adapter.rb,
      we should test not only for mysql adapter, but mysql2 adapter.
      fde48732
  28. 31 10月, 2015 1 次提交
    • S
      Use advisory locks to prevent concurrent migrations · 2c2a8755
      Sam Davies 提交于
      - Addresses issue #22092
      - Works on Postgres and MySQL
      - Uses advisory locks because of two important properties:
        1. The can be obtained outside of the context of a transaction
        2. They are automatically released when the session ends, so if a
        migration process crashed for whatever reason the lock is not left
        open perpetually
      - Adds get_advisory_lock and release_advisory_lock methods to database
        adapters
      - Attempting to run a migration while another one is in process will
        raise a ConcurrentMigrationError instead of attempting to run in
        parallel with undefined behavior. This could be rescued and
        the migration could exit cleanly instead. Perhaps as a configuration
        option?
      
      Technical Notes
      ==============
      
      The Migrator uses generate_migrator_advisory_lock_key to build the key
      for the lock. In order to be compatible across multiple adapters there
      are some constraints on this key.
      - Postgres limits us to 64 bit signed integers
      - MySQL advisory locks are server-wide so we have to scope to the
        database
      - To fulfil these requirements we use a Migrator salt (a randomly
        chosen signed integer with max length of 31 bits) that identifies
        the Rails migration process as the owner of the lock. We multiply
        this salt with a CRC32 unsigned integer hash of the database name to
        get a signed 64 bit integer that can also be converted to a string
        to act as a lock key in MySQL databases.
      - It is important for subsequent versions of the Migrator to use the
        same salt, otherwise different versions of the Migrator will not see
        each other's locks.
      2c2a8755
  29. 29 10月, 2015 2 次提交
    • S
      Fix test failures caused by #19501 · 42b9f3eb
      Sean Griffin 提交于
      The first one is quite straightforward. We want to give the proper error
      message in the case where a top level constant exists, but we're looking
      for a nested one. We just need to port over the change to use
      `subclass.name` into these changes.
      
      The second set of failures, which are only present in the mysql adapter
      tests, are stranger to me. The failure occurs because we were
      previously comparing `subclass.name == self.name` instead of `subclass
      == self`. However, I don't think that we need to support creating
      anonymous classes which share a table with a class that uses STI,
      overrides `name` to return the same name as athe class that we have no
      other relationship with, when not assigned to a constant so it could
      never be used anyway...
      
      The commits around why that exist give no context, and I think they're
      just poorly written tests (WTF does `test_schema` mean anyway, and why
      does calling `.first` on some anonymous class test it?). We'll just
      disable STI on that class.
      42b9f3eb
    • Y
      tests, no every adapter supports "connection.version" · 59ec8a59
      Yves Senn 提交于
      This solves the following issue:
      
      ```
      $ bin/test
      Using sqlite3
      /Users/senny/Projects/rails/activerecord/test/cases/adapters/mysql2/sp_test.rb:16:in `<class:Mysql2StoredProcedureTest>': undefined method `version' for #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x007f8bab4b5b70> (NoMethodError)
      	from /Users/senny/Projects/rails/activerecord/test/cases/adapters/mysql2/sp_test.rb:5:in `<top (required)>'
      	from /Users/senny/Projects/rails/activesupport/lib/active_support/dependencies.rb:302:in `require'
      	from /Users/senny/Projects/rails/activesupport/lib/active_support/dependencies.rb:302:in `block in require'
      	from /Users/senny/Projects/rails/activesupport/lib/active_support/dependencies.rb:268:in `load_dependency'
      	from /Users/senny/Projects/rails/activesupport/lib/active_support/dependencies.rb:302:in `require'
      	from /Users/senny/Projects/rails/railties/lib/rails/test_unit/test_requirer.rb:11:in `block in require_files'
      	from /Users/senny/Projects/rails/railties/lib/rails/test_unit/test_requirer.rb:10:in `each'
      	from /Users/senny/Projects/rails/railties/lib/rails/test_unit/test_requirer.rb:10:in `require_files'
      	from /Users/senny/Projects/rails/railties/lib/rails/test_unit/minitest_plugin.rb:69:in `plugin_rails_init'
      	from /Users/senny/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/minitest-5.3.3/lib/minitest.rb:73:in `block in init_plugins'
      	from /Users/senny/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/minitest-5.3.3/lib/minitest.rb:71:in `each'
      	from /Users/senny/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/minitest-5.3.3/lib/minitest.rb:71:in `init_plugins'
      	from /Users/senny/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/minitest-5.3.3/lib/minitest.rb:122:in `run'
      	from bin/test:19:in `<main>'
      ```
      59ec8a59