1. 25 4月, 2016 2 次提交
  2. 24 4月, 2016 1 次提交
    • V
      Followup of #15771 · 210729c4
      Vipul A M 提交于
      Make sure we handle explicitly passed nil's to lock_version as well.
      An explicitly passed nil value is now converted to 0 on LockingType,
      so that we don't end up with ActiveRecord::StaleObjectError in update record
      optimistic locking
      
      Fixes #24695
      210729c4
  3. 23 4月, 2016 2 次提交
  4. 20 4月, 2016 3 次提交
  5. 19 4月, 2016 3 次提交
  6. 18 4月, 2016 1 次提交
  7. 16 4月, 2016 2 次提交
  8. 15 4月, 2016 1 次提交
    • R
      Should keep quoting behaivor of a time column value in sqlite3 adapter · 73af7945
      Ryuta Kamizono 提交于
      Follow up to #24542.
      
      In MySQL and PostgreSQL, a time column value is saved as ignored the
      date part of it. But in SQLite3, a time column value is saved as a string.
      
      We should keep previous quoting behavior in sqlite3 adapter.
      
      ```
      sqlite> CREATE TABLE "foos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "start" time(0), "finish" time(4));
      sqlite> INSERT INTO "foos" ("start", "finish") VALUES ('2000-01-01 12:30:00', '2000-01-01 12:30:00.999900');
      sqlite> SELECT "foos".* FROM "foos";
      1|2000-01-01 12:30:00|2000-01-01 12:30:00.999900
      sqlite> SELECT  "foos".* FROM "foos" WHERE "foos"."start" = '2000-01-01 12:30:00' LIMIT 1;
      1|2000-01-01 12:30:00|2000-01-01 12:30:00.999900
      sqlite> SELECT  "foos".* FROM "foos" WHERE "foos"."start" = '12:30:00' LIMIT 1;
      sqlite>
      ```
      73af7945
  9. 14 4月, 2016 3 次提交
    • R
      Add `quoted_time` for truncating the date part of a time column value · 28ec8c4a
      Ryuta Kamizono 提交于
      Context #24522.
      
      TIME column on MariaDB doesn't ignore the date part of the string when
      it coerces to time.
      
      ```
      root@localhost [test] > CREATE TABLE `foos` (`id` int AUTO_INCREMENT PRIMARY KEY, `start` time(0), `finish` time(4)) ENGINE=InnoDB;
      Query OK, 0 rows affected (0.02 sec)
      
      root@localhost [test] > INSERT INTO `foos` (`start`, `finish`) VALUES ('2000-01-01 12:30:00', '2000-01-01 12:30:00.999900');
      Query OK, 1 row affected, 2 warnings (0.00 sec)
      
      Note (Code 1265): Data truncated for column 'start' at row 1
      Note (Code 1265): Data truncated for column 'finish' at row 1
      root@localhost [test] > SELECT `foos`.* FROM `foos`;
      +----+----------+---------------+
      | id | start    | finish        |
      +----+----------+---------------+
      |  1 | 12:30:00 | 12:30:00.9999 |
      +----+----------+---------------+
      1 row in set (0.00 sec)
      
      root@localhost [test] > SELECT  `foos`.* FROM `foos` WHERE `foos`.`start` = '2000-01-01 12:30:00' LIMIT 1;
      Empty set (0.00 sec)
      
      root@localhost [test] > SELECT  `foos`.* FROM `foos` WHERE `foos`.`start` = '12:30:00' LIMIT 1;
      +----+----------+---------------+
      | id | start    | finish        |
      +----+----------+---------------+
      |  1 | 12:30:00 | 12:30:00.9999 |
      +----+----------+---------------+
      1 row in set (0.00 sec)
      ```
      28ec8c4a
    • V
      Include running mariadb on travis · bbb8f518
      Vipul A M 提交于
      - Specify we want to run on latest stable ruby for mariadb
      
      - change in runs of builds
      
      Make mariadb? method publicly available
      bbb8f518
    • S
      Properly serialize all JSON primitives in the AR JSON type · efaa6e4f
      Sean Griffin 提交于
      Previously we were assuming that the only valid types for encoding were
      arrays and hashes. However, any JSON primitive is an accepted value by
      both PG and MySQL.
      
      This does involve a minor breaking change in the handling of `default`
      in the schema dumper. This is easily worked around, as passing a
      hash/array literal would have worked fine in previous versions of Rails.
      However, because of this, I will not be backporting this to 4.2 or
      earlier.
      
      Fixes #24234
      efaa6e4f
  10. 13 4月, 2016 1 次提交
    • S
      Allow symbols using "dot notation" to be passed to where · 714ab8cb
      Sean Griffin 提交于
      In 04ac5655 I assumed that we would
      never want to pass the "table_name.column_name" form to where with a
      symbol. However, in Ruby 2.2 and later, you can quote symbols using the
      new hash syntax, so it's a semi-reasonable thing to do if we want to
      support the dot notation (which I'd rather deprecate, but that would be
      too painful of a migration).
      
      Instead we've changed the definition of "this is a table name with a
      dot" to when the value associated is a hash. It would make very little
      sense to write `where("table_name.column_name": { foo: :bar })` in any
      scenario (other than equality for a JSON column which we don't support
      through `where` in this way).
      
      Close #24514.
      714ab8cb
  11. 12 4月, 2016 1 次提交
  12. 11 4月, 2016 1 次提交
  13. 09 4月, 2016 1 次提交
    • J
      Support microsecond datetime precision on MariaDB 5.3+. · 2224d06c
      Jeremy Daer 提交于
      We support microsecond datetime precision for MySQL 5.6.4+. MariaDB has
      supported it since 5.3.0, but even 10.x versions return a compatible
      version string like `5.5.5-10.1.8-MariaDB-log` which we parse as 5.5.5,
      before MySQL supported microsecond precision.
      
      Specialize our version check to account for MariaDB to fix.
      2224d06c
  14. 06 4月, 2016 1 次提交
    • L
      Fix undefined method `owners' for NullPreloader:Class · cb4f6875
      Ladislav Smola 提交于
      * Fix undefined method `owners' for NullPreloader:Class
      
      Fixing undefined method `owners' for
      ActiveRecord::Associations::Preloader::NullPreloader:Class
      
      * Use Ruby 1.9 hash format
      
      Use Ruby 1.9 hash format
      
      #24192
      
      [Rafael Mendonça França + Ladislav Smola]
      cb4f6875
  15. 05 4月, 2016 1 次提交
  16. 01 4月, 2016 3 次提交
    • S
      Revert "Deprecate table names containing dots" · 7fd72fa4
      Sean Griffin 提交于
      This reverts commit 7b82e1c7.
      
      This would have removed the ability to reference a schema when using PG
      7fd72fa4
    • S
      Prepared statements shouldn't share a cache with unprepared statements · 3af40b71
      Sean Griffin 提交于
      When prepared statements are enabled, the statement cache caches the SQL
      directly, including the bind parameters. If a similar query is run later
      with prepared statements disabled, we need to use a separate cache
      instead of trying to share the same one.
      
      Fixes #24351
      3af40b71
    • S
      Deprecate table names containing dots · 7b82e1c7
      Sean Griffin 提交于
      Dots have special meaning in most backends (e.g. everything except
      SQLite3), as well as most methods that work with table or column names.
      This isn't something that we ever explicitly supported, but there's at
      least one case of somebody using this (see #24367), so we'll go through a deprecation
      cycle as normal.
      7b82e1c7
  17. 30 3月, 2016 2 次提交
  18. 29 3月, 2016 1 次提交
  19. 25 3月, 2016 2 次提交
    • S
      Memoize user provided defaults before type casting · ba06dab5
      Sean Griffin 提交于
      When a proc is given as a default value, the form builder ends up
      displaying `Proc#to_s` when the default is used. That's because we
      didn't handle the proc until type casting. This issue technically can
      occur any time that a proc is the value before type casting, but in
      reality the only place that will occur is when a proc default is
      provided through the attributes API, so the best place to handle this
      edge case is there.
      
      I've opted to memoize instead of just moving the `Proc#call` up, as this
      made me realize that it could potentially interact very poorly with
      dirty checking.
      
      The code here is a little redundant, but I don't want to rely on how
      `value_before_type_cast` is implemented in the super class, even if it's
      just an `attr_reader`.
      
      Fixes #24249
      
      Close #24306
      ba06dab5
    • C
      Make 'migrate' clear the schema cache afterward · 16dadb12
      Chris Arcand 提交于
      Without clearing the caches afterward, removals done in migrations would
      not be reflected in a separate task in the same process. That is, given
      a table with a migration to remove a column, the schema cache would
      still reflect that a table has that in something such as the
      'db:seed' task:
      
      `rake db:migrate db:seed`
      (A common thing to do in a script for a project ala `bin/setup`)
      
      vs
      
      `rake db:migrate && rake db:seed`
      (Two processes)
      
      The first would not reflect that the column was removed.
      The second would (cache reset).
      16dadb12
  20. 24 3月, 2016 1 次提交
  21. 17 3月, 2016 1 次提交
  22. 15 3月, 2016 2 次提交
  23. 13 3月, 2016 1 次提交
  24. 12 3月, 2016 2 次提交
  25. 11 3月, 2016 1 次提交