aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/adapters
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #17696 from kamipo/unsigned_integer_supportJeremy Daer2015-09-192-4/+74
|\ | | | | | | Add `unsigned` support for numeric data types in MySQL
| * Add `unsigned` types for numeric data types in MySQLRyuta Kamizono2015-09-182-0/+26
| | | | | | | | | | | | | | | | | | | | | | In the case of using `unsigned` as the type: create_table :foos do |t| t.unsigned_integer :unsigned_integer t.unsigned_bigint :unsigned_bigint t.unsigned_float :unsigned_float t.unsigned_decimal :unsigned_decimal, precision: 10, scale: 2 end
| * Add `unsigned` support for numeric data types in MySQLRyuta Kamizono2015-09-182-4/+48
| | | | | | | | | | | | | | | | | | | | | | 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
* | Merge pull request #19086 from kamipo/move_explain_into_abstract_mysql_adapterJeremy Daer2015-09-191-0/+27
|\ \ | | | | | | | | | Move `explain` into `AbstractMysqlAdapter`
| * | Move `explain` into `AbstractMysqlAdapter`Ryuta Kamizono2015-03-011-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Common methods in both mysql adapters are should be added to `AbstractMysqlAdapter`, but some methods had been added to `Mysql2Adapter`. (8744632f, 0306f82e, #14359) Some methods already moved from `Mysql2Adapter` to `AbstractMysqlAdapter`. (#17601, #17998) Common methods in both mysql adapters are remaining only the `explain` method in `Mysql2Adapter`.
* | | Merge pull request #21607 from kamipo/remove_unnecessary_display_widthJeremy Daer2015-09-192-5/+5
|\ \ \ | | | | | | | | Remove unnecessary display width
| * | | Remove unnecessary display widthRyuta Kamizono2015-09-162-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The **(11)** does not affect the storage size of the data type, which for an INT will always be 4 bytes. It affects the **display width**. http://www.tocker.ca/2015/07/02/proposal-to-deprecate-mysql-integer-display-width-and-zerofill.html
* | | | Should test both mysql adaptersRyuta Kamizono2015-09-202-20/+16
| | | | | | | | | | | | | | | | | | | | Some test cases are testing only mysql adapter. We should test mysql2 adapter also.
* | | | Remove `@connection` in `StatementPool`Ryuta Kamizono2015-09-202-2/+2
| |_|/ |/| | | | | | | | | | | `@connection` in `StatementPool` is only used for PG adapter. No need for abstract `StatementPool` class.
* | | File encoding is defaulted to utf-8 in Ruby >= 2.1Akira Matsuda2015-09-181-1/+0
|/ /
* | Merge pull request #21528 from yui-knk/test/add_tests_for_mysql2_viewYves Senn2015-09-081-64/+0
|\ \ | | | | | | Add tests for test/cases/adapters/mysql2/view_test.rb
| * | Add view tests for MySQLyui-knk2015-09-081-64/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Basically view tests for MySQL are same with `test/cases/adapters/postgresql/view_test.rb`. So move `test/cases/adapters/postgresql/view_test.rb` to `test/cases/view_test.rb` and make them only run if `current_adapter` supports writable view.
* | | Fix test failures from premature merge of #21317Matthew Draper2015-09-071-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | Apparently I managed to forget how similar the "tests passing" and "no status reported" merge indicators look. Note that the previous `stubs` in test_add_index wasn't working: the method was still called, and just happened to return false.
* | | Support dropping indexes concurrently in PostgresGrey Baker2015-09-052-2/+11
|/ / | | | | | | | | See http://www.postgresql.org/docs/9.4/static/sql-dropindex.html for more details.
* | pg, `create_schema`, `drop_schema` and `rename_table` quote schema name.Yves Senn2015-08-281-7/+47
| | | | | | | | | | | | | | | | Closes #21418. Previously schema names were not quoted. This leads to issues when a schema names contains a ".". Methods in `schema_statements.rb` should quote user input.
* | PostgreSQL, add `:if_exists` to `#drop_schema`.Yves Senn2015-08-282-11/+22
| |
* | Removed mocha from Active Record Part 1Ronak Jangir2015-08-251-7/+10
| |
* | Add a native JSON data type support in MySQLRyuta Kamizono2015-08-181-0/+172
| | | | | | | | | | | | | | | | | | | | As of MySQL 5.7.8, MySQL supports a native JSON data type. Example: create_table :json_data_type do |t| t.json :settings end
* | use `assert_not` instead of `refute` as mentioned in our guides.Yves Senn2015-08-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | As described in the "Follow Coding Conventions" section in our contribution guide (http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#follow-the-coding-conventions) we favor `assert_not` over `refute`. While we don't usually make stylistic changes on it's own I opted to do it in this case. The reason being that test cases are usually copied as a starting point for new tests. This results in a spread of `refute` in files that have been using it already.
* | Remove @connection instance variable only when definedYasuo Honda2015-07-261-2/+2
| |
* | Remove ivar only when definedAkira Matsuda2015-07-241-2/+2
| | | | | | | | this fixes a failing test case
* | Ensure that microsecond precision is only used for version of mysql that ↵Jori Hardman2015-07-202-0/+35
| | | | | | | | support it. Fixes #19711
* | Display decimal defaults as strings to keep precisionJohn Gesimondo2015-06-232-1/+6
| |
* | make it possible to run AR tests with bin/testYves Senn2015-06-1176-223/+203
| |
* | Return a `Point` object from the PG Point typeSean Griffin2015-06-051-11/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces a deprecation cycle to change the behavior of the default point type in the PostgreSQL adapter. The old behavior will continue to be available for the immediate future as `:legacy_point`. The current behavior of returning an `Array` causes several problems, the most significant of which is that we cannot differentiate between an array of points, and a point itself in the case of a column with the `point[]` type. The attributes API gives us a reasonable way to have a proper deprecation cycle for this change, so let's take advantage of it. If we like this change, we can also add proper support for the other geometric types (line, lseg, box, path, polygon, and circle), all of which are just aliases for string today. Fixes #20441
* | Add collation support for string and text columns in SQLite3Akshay Vishnoi2015-05-282-4/+57
| |
* | If specify `strict: :default` explicitly, do not set sql_mode.Ryuta Kamizono2015-05-262-0/+18
| | | | | | | | Related with #17370.
* | 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.