aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/adapters
Commit message (Collapse)AuthorAgeFilesLines
* More exercise the create index sql testsRyuta Kamizono2015-05-042-0/+74
|
* Merge pull request #17569 from kamipo/dump_table_optionsRafael Mendonça França2015-05-032-0/+84
|\ | | | | | | Correctly dump `:options` on `create_table` for MySQL
| * Correctly dump `:options` on `create_table` for MySQLRyuta Kamizono2015-05-032-0/+84
| |
* | PostgreSQL: `:collation` support for string and text columnsRyuta Kamizono2015-05-041-0/+53
| | | | | | | | | | | | | | | | | | Example: create_table :foos do |t| t.string :string_en, collation: 'en_US.UTF-8' t.text :text_ja, collation: 'ja_JP.UTF-8' end
* | Remove unused requireRyuta Kamizono2015-05-032-2/+0
|/
* Use `use_transactional_tests` in Active RecordPrem Sichanugrist2015-04-102-2/+2
| | | | | | `use_transactional_fixtures` was deprecated in favor of `use_transactional_tests` in Rails 5.0. This removes one warning while running test suite.
* Merge pull request #17574 from kamipo/charset_collation_optionsJeremy Kemper2015-04-072-0/+108
|\ | | | | | | Add charset and collation options support for MySQL string and text columns.
| * Add `:charset` and `:collation` options support for MySQL string and text ↵Ryuta Kamizono2015-03-062-0/+108
| | | | | | | | | | | | | | | | | | | | | | columns Example: create_table :foos do |t| t.string :string_utf8_bin, charset: 'utf8', collation: 'utf8_bin' t.text :text_ascii, charset: 'ascii' end
* | PostgreSQL, Fix OID based type casts in C for primitive types.Lars Kanis2015-03-254-13/+13
| | | | | | | | | | | | | | | | | | | | The type map was introduced in aafee23, but wasn't properly filled. This mainly adjusts many locations, that expected strings instead of integers or boolean. add_pg_decoders is moved after setup of the StatementPool, because execute_and_clear could potentially make use of it.
* | PostgreSQL, Add test case for "Infinity" string assignment to float columns.Lars Kanis2015-03-221-0/+9
| | | | | | | | This is implemented in Type::Float, but not tested, so far.
* | Don't cast nil to string in pg enumsSean Griffin2015-03-191-0/+8
| | | | | | | | Fixes #19389.
* | Closes rails/rails#18864: Renaming transactional fixtures to transactional testsBrandon Weiss2015-03-1614-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | pg, `disable_referential_integrity` only catches AR errors.Yves Senn2015-03-111-1/+23
| | | | | | | | This change was prompted by 598b841.
* | Fix json_testpalkan2015-03-111-0/+1
| |
* | Fix intermittent test failuresSean Griffin2015-03-091-0/+1
| | | | | | | | | | | | | | | | | | | | The table is being modified in tests, without reloading the column information on the appropriate class. This is leading to incorrect column information in many cases. The failures fixed by this commit can be replicated with: ARCONN=postgresql ruby -Itest test/cases/adapters/postgresql/hstore_test.rb --seed 21574
* | Fix intermittent test failuresSean Griffin2015-03-091-0/+1
|/ | | | | | | | | | | The default value of `"pg_arrays"."tags"` is being changed to `[]` in one test, but the column information on the model isn't reset after it's changed back. As such, we think the default value is `[]` when in the database it's actually `nil`. That means any test which was assigning `[]` to a new record would have that key skipped with partial writes, as it hasn't changed from the default. However since the *actual* default value is `nil`, we get back values that the test doesn't expect, and it fails.
* Remove duplicated testRyuta Kamizono2015-03-041-20/+0
| | | | | `PostgresqlLargeKeysTest` is duplicated `PrimaryKeyBigSerialTest` in `primary_keys_test.rb`.
* Correctly dump `serial` and `bigserial`Ryuta Kamizono2015-03-041-0/+60
|
* Remove unused lineRyuta Kamizono2015-03-031-1/+0
|
* Add `SchemaMigration.create_table` support any unicode charsets for MySQL.Ryuta Kamizono2015-02-261-2/+2
| | | | | | | | | | | | | | | | | MySQL unicode support is not only `utf8mb4`. Then, The index length problem is not only `utf8mb4`. http://dev.mysql.com/doc/refman/5.6/en/charset-unicode.html SELECT * FROM information_schema.character_sets WHERE maxlen > 3; +--------------------+----------------------+------------------+--------+ | CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION | MAXLEN | +--------------------+----------------------+------------------+--------+ | utf8mb4 | utf8mb4_general_ci | UTF-8 Unicode | 4 | | utf16 | utf16_general_ci | UTF-16 Unicode | 4 | | utf16le | utf16le_general_ci | UTF-16LE Unicode | 4 | | utf32 | utf32_general_ci | UTF-32 Unicode | 4 | +--------------------+----------------------+------------------+--------+
* rework `disable_referential_integrity` for PostgreSQL.Yves Senn2015-02-241-0/+89
| | | | | | | | | | | | | | | | | | | | | | | [Toby Ovod-Everett & Andrey Nering & Yves Senn] Closes #17726. Closes #10939. This patch makes three distinct modifications: 1. no longer fall back to disabling user triggers if system triggers can't be disabled 2. warn the user when referential integrity can't be disabled 3. restore aborted transactions when referential integrity can't be disabled The motivation behind these changes is to make the behavior of Rails transparent and less error-prone. To require superuser privileges is not optimal but it's what Rails currently needs. Users who absolutely rely on disabling user triggers can patch `disable_referential_integrity`. We should investigate `SET CONSTRAINTS` as a possible solution which does not require superuser privileges. /cc @matthewd
* Should handle array option for `:cast_as`Ryuta Kamizono2015-02-191-0/+7
|
* Prefer `drop_table if_exists: true` over raw SQLRyuta Kamizono2015-02-1818-22/+22
| | | | | Lowercase raw SQL has been replaced by 07b659c already. This commit replaces everything else of raw SQL.
* prefer `drop_table if_exists: true` over raw SQL.Yves Senn2015-02-1811-11/+11
| | | | | | | /cc @yahonda This makes it easier for third party adapters to run our tests, even if that database does not support IF EXISTS.
* `type_cast_from_user` -> `cast`Sean Griffin2015-02-172-5/+5
|
* `type_cast_for_database` -> `serialize`Sean Griffin2015-02-177-18/+18
|
* `Type#type_cast_from_database` -> `Type#deserialize`Sean Griffin2015-02-177-25/+25
|
* Extract `DateTimePrecisionTest`Ryuta Kamizono2015-02-133-271/+0
| | | | The datetime precision tests for any adapters is duplicated.
* pg tests, be clear about the missing type that causes a test skip.Yves Senn2015-02-121-7/+6
| | | | Also removed some cruft in the `setup` and `teardown` methods.
* The datetime precision with zero should be dumpedRyuta Kamizono2015-02-111-22/+39
| | | | | `precision: 0` was not dumped by f1a0fa9e19b7e4ccaea191fc6cf0613880222ee7. However, `precision: 0` is valid value for PostgreSQL timestamps.
* Refactor microsecond precision to be database agnosticSean Griffin2015-02-104-19/+7
| | | | | | | | | | The various databases don't actually need significantly different handling for this behavior, and they can achieve it without knowing about the type of the object. The old implementation was returning a string, which will cause problems such as breaking TZ aware attributes, and making it impossible for the adapters to supply their logic for time objects.
* Fix rounding problem for PostgreSQL timestamp columnRyuta Kamizono2015-02-081-0/+16
| | | | | If timestamp column have the precision, it need to format according to the precision of timestamp column.
* Merge pull request #18602 from kamipo/respect_database_charset_and_collationAndrew White2015-02-081-4/+12
|\ | | | | Respect the database default charset for `schema_migrations` table.
| * Respect the database default charset for `schema_migrations` table.Ryuta Kamizono2015-02-081-4/+12
| | | | | | | | | | | | The charset of `version` column in `schema_migrations` table is depend on the database default charset and collation rather than the encoding of the connection.
* | Remove unused lineRyuta Kamizono2015-02-081-1/+0
|/
* rm `Type#number?`Sean Griffin2015-02-0714-19/+0
| | | | | This predicate is only used in `query_attribute`, and is relatively easy to remove without adding a bunch of is a checks.
* Fix test cases for money, bit and bit_varyingMelody2015-02-042-2/+4
|
* Removed magic comments # encoding: utf-8 , since its default from ruby 2.0 ↵Vipul A M2015-02-0320-20/+0
| | | | onwards.
* Remove most type related predicates from `Column`Sean Griffin2015-01-3015-70/+107
| | | | | | Remaining are `limit`, `precision`, `scale`, and `type` (the symbol version). These will remain on the column, since they mirror the options to the `column` method in the schema definition DSL
* Always convert strings to UTF-8, regardless of column type in SQLiteSean Griffin2015-01-281-1/+1
| | | | | | | | All columns which would map to a string primitive need this behavior. Binary has it's own marker type, so it won't go through this conversion. String and text, which need this, will. Fixes #18585.
* Remove Relation#bind_paramsSean Griffin2015-01-277-24/+33
| | | | | | | | `bound_attributes` is now used universally across the board, removing the need for the conversion layer. These changes are mostly mechanical, with the exception of the log subscriber. Additional, we had to implement `hash` on the attribute objects, so they could be used as a key for query caching.
* Fix test failure on PG caused by 7c6f3938dee47f093Sean Griffin2015-01-231-2/+2
|
* Don't error when invalid json is assigned to a JSON columnSean Griffin2015-01-211-0/+8
| | | | | | | Keeping with our behavior elsewhere in the system, invalid input is assumed to be `nil`. Fixes #18629.
* tests, use `drop_table if_exists: true` in our test suite.Yves Senn2015-01-201-1/+1
|
* Should escape regexp wildcard character `.`Ryuta Kamizono2015-01-1911-14/+14
| | | | | `.` is regexp meta character. It should be escape for `assert_match` correctly.
* Stop passing a column to `quote` in testsSean Griffin2015-01-102-6/+7
| | | | | | | I'm planning on deprecating the column argument to mirror the deprecation in [arel]. [arel]: https://github.com/rails/arel/commit/6160bfbda1d1781c3b08a33ec4955f170e95be11
* remove deprecated support for PG ranges with exclusive lower bounds.Yves Senn2015-01-051-27/+5
| | | | addresses https://github.com/rails/rails/commit/91949e48cf41af9f3e4ffba3e5eecf9b0a08bfc3#commitcomment-9144563
* Prefer `array?` rather than `array`Ryuta Kamizono2015-01-0414-20/+20
| | | | | | Slightly refactoring `PostgreSQLColumn`. `array` should be readonly. `default_function` should be initialized by `super`. `sql_type` has been removed `[]`. Since we already choose to remove it we should not change.
* Merge pull request #18067 from ↵Rafael Mendonça França2015-01-022-0/+174
|\ | | | | | | | | | | | | | | | | kamipo/format_datetime_string_according_to_precision Format the datetime string according to the precision of the datetime field. Conflicts: activerecord/CHANGELOG.md
| * Format the datetime string according to the precision of the datetime field.Ryuta Kamizono2015-01-022-0/+34
| | | | | | | | | | | | | | | | | | Incompatible to rounding behavior between MySQL 5.6 and earlier. In 5.5, when you insert `2014-08-17 12:30:00.999999` the fractional part is ignored. In 5.6, it's rounded to `2014-08-17 12:30:01`: http://bugs.mysql.com/bug.php?id=68760