aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Schema dumping support for PostgreSQL oid typeRyuta Kamizono2017-02-123-11/+12
| | | | | | | | | | | | | | | | | | | | Closes #27980
* | | | | Schema dumping support for PostgreSQL interval typeRyuta Kamizono2017-02-123-17/+20
| | | | | | | | | | | | | | | | | | | | Closes #27979
* | | | | Deprecate `supports_primary_key?`Ryuta Kamizono2017-02-121-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `supports_primary_key?` was added to determine if `primary_key` is implemented in the adapter in f060221. But we already use `primary_key` without `supports_primary_key?` (207f266, 5f3cf42) 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
* | | | | Remove unused requireRyuta Kamizono2017-02-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These files are not using `strip_heredoc`. Closes #27976
* | | | | Make `table_name=` reset current statement cachenamusyaka2017-02-121-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So queries are not run against the previous table name. Closes #27953
* | | | | Add `Style/EmptyLinesAroundMethodBody` in `.rubocop.yml` and remove extra ↵Ryuta Kamizono2017-02-123-3/+0
| | | | | | | | | | | | | | | | | | | | empty lines
* | | | | Deprecate calling `attr_will_change!` with non-attributesSean Griffin2017-02-111-0/+8
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was never really intended to work (at least not without calling `define_attribute_methods`, which is less common with Active Record). As we move forward the intention is to require the use of `attribute` over `attr_accessor` for more complex model behavior both on Active Record and Active Model, so this behavior is deprecated. Fixes #27956. Close #27963. [Alex Serban & Sean Griffin]
* | | | Fix bigint primary key with unsignedRyuta Kamizono2017-02-101-11/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently schema dumper lost the unsigned option when primary key is defined as bigint with unsigned. This commit fixes the issue. Closes #27960
* | | | Merge pull request #27904 from ↵Eileen M. Uchitelle2017-02-101-1/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | kenta-s/add-methods-back-to-array-delegation-from-ar-relation Delegate `to_sentence` and `to_fomatted_s` to `records`
| * | | | Delegate `to_sentence` and `to_fomatted_s` to `records`kenta-s2017-02-041-1/+2
| | |_|/ | |/| |
* | | | Fix `test_composite_primary_key_out_of_order`Ryuta Kamizono2017-02-101-2/+8
| | | | | | | | | | | | | | | | | | | | `test_composite_primary_key_out_of_order` should use `barcodes_reverse` table.
* | | | Simplify and speed up Postgres query for primary_keysJordan Lewis2017-02-091-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Refactor `ColumnDefinition` to contain `options` hashRyuta Kamizono2017-02-094-19/+9
| | | | | | | | | | | | | | | | | | | | | | | | Column options are passed as an hash args then used as `options` hash in `add_column_options!`. Converting args to attributes is inconvinient for using options as an hash.
* | | | Merge pull request #27945 from betesh/allow-frozen-hashes-to-as_jsonRafael Mendonça França2017-02-081-0/+11
|\ \ \ \ | | | | | | | | | | | | | | | Allow ActiveRecord::Base.as_json to accept a frozen Hash
| * | | | Allow ActiveRecord::Base.as_json to accept a frozen HashIsaac Betesh2017-02-081-0/+11
| | | | |
* | | | | Fix inspection behavior when the :id column is not primary keynamusyaka2017-02-093-0/+13
|/ / / /
* | | | Merge pull request #25873 from schuetzm/warn_about_dirty_lockRafael Mendonça França2017-02-071-1/+4
|\ \ \ \ | | | | | | | | | | | | | | | Deprecate locking of dirty records
| * | | | Deprecate locking of dirty recordsMarc Schütz2017-02-071-1/+4
| | | | |
* | | | | Remove deprecated behavior that halts callbacks when the return is falseRafael Mendonça França2017-02-072-120/+0
| | | | |
* | | | | Merge pull request #27608 from ↵Rafael França2017-02-071-47/+0
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | kamipo/remove_deprecated_passing_string_to_define_callback Remove deprecated passing string to define callback
| * | | | Remove deprecated passing string to define callbackRyuta Kamizono2017-02-041-47/+0
| |/ / / | | | | | | | | | | | | And raise `ArgumentError` when passing string to define callback.
* | | | Revert "Remove useless `column_alias` in `subquery_for_count`"Ryuta Kamizono2017-02-071-1/+0
| | | | | | | | | | | | | | | | This reverts commit 28977f1fa3d7b15c1608174a165e60b71ddf3995.
* | | | Merge pull request #27334 from ↵Jeremy Daer2017-02-077-22/+28
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | kamipo/pk_and_ref_columns_should_be_identical_type `primary_key` and `references` columns should be identical type
| * | | | `primary_key` and `references` columns should be identical typeRyuta Kamizono2017-02-077-22/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up to #26266. The default type of `primary_key` and `references` were changed to `bigint` since #26266. But legacy migration and sqlite3 adapter should keep its previous behavior.
* | | | | Remove useless `column_alias` in `subquery_for_count`Ryuta Kamizono2017-02-061-2/+3
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If select clause is specified and last column has a column alias, additional column alias causes a statement invalid. Add test coverage for counting a single column with NULL values. Fixes #27676, #27682, and #27705.
* | | | Merge pull request #27389 from kamipo/fix_mysql_pk_dumping_correctlyJeremy Daer2017-02-065-218/+166
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Restore the behaviour of the compatibility layer for integer-like PKs * kamipo/fix_mysql_pk_dumping_correctly: Restore custom primary key tests lost at #26266 Restore the behaviour of the compatibility layer for integer-like PKs Correctly dump integer-like primary key with default nil
| * | | | Restore custom primary key tests lost at #26266Ryuta Kamizono2017-02-041-25/+43
| | | | | | | | | | | | | | | | | | | | | | | | | Some custom primary key tests (added at #17631, #17696, #18220, #18228) were lost at #26266. Restore the tests to improve test coverage.
| * | | | Restore the behaviour of the compatibility layer for integer-like PKsRyuta Kamizono2017-02-044-173/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PR #27384 changed migration compatibility behaviour. ```ruby class CreateMasterData < ActiveRecord::Migration[5.0] def change create_table :master_data, id: :integer do |t| t.string :name end end end ``` Previously this migration created non-autoincremental primary key expected. But after the PR, the primary key changed to autoincremental, it is unexpected. This change restores the behaviour of the compatibility layer.
| * | | | Correctly dump integer-like primary key with default nilRyuta Kamizono2017-02-041-20/+19
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | The PR #27384 changed integer-like primary key to be autoincrement unless an explicit default. This means that integer-like primary key is restored as autoincrement unless dumping the default nil explicitly. We should dump integer-like primary key with default nil correctly.
* | | | Merge pull request #27884 from kamipo/deprecate_migration_keysJeremy Daer2017-02-061-0/+4
|\ \ \ \ | | | | | | | | | | Deprecate `ColumnDumper#migration_keys`
| * | | | Deprecate `ColumnDumper#migration_keys`Ryuta Kamizono2017-02-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ColumnDumper#migration_keys` was extracted to customize keys for standardized column arguments widths. But the feature was removed in df84e98. The internal method is no longer used for that.
* | | | | Remove useless `MySQL::Column` testsRyuta Kamizono2017-02-071-42/+0
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | Since text default treated as an empty string in non-strict mode has been removed in #26154, `MySQL::Column` behaves like any other column. Also, The difference between strict and non-strict mode is covered by `test_mysql_not_null_defaults_strict` and `test_mysql_not_null_defaults_non_strict`.
* | | | Merge pull request #27919 from bf4/correct_spellingArthur Nogueira Neves2017-02-068-14/+14
|\ \ \ \ | | | | | | | | | | Correct spelling
| * | | | Correct spellingBenjamin Fleischer2017-02-058-14/+14
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | ``` go get -u github.com/client9/misspell/cmd/misspell misspell -w -error -source=text . ```
* / / / Indicate action that failed in YamlColumnKir Shatrov2017-02-052-5/+5
|/ / /
* | | Merge pull request #27865 from composerinteralia/collection-ids-setter-bugEileen M. Uchitelle2017-02-031-0/+9
|\ \ \ | | | | | | | | Fix collection_singular_ids= bug
| * | | Fix collection_singular_ids= bugDaniel Colson2017-02-021-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the association's primary key is manually set as a symbol and called with an array of strings, CollectionAssociation#ids_writer fails to cast the ids to integers. This is because AssociationReflection#association_primary_key_type and ThroughReflection#association_primary_key_type return the incorrect type, since ModelSchema.type_for_attribute only accepts a string. The result is an ActiveRecord::RecordNotFound error.
* | | | Fix a test of AR::Type::TypeMap#lookup when using OracleKoichi ITO2017-02-021-6/+14
|/ / /
* | | Virtual/generated column support for MySQL 5.7.5+ and MariaDB 5.2.0+Ryuta Kamizono2017-02-013-14/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MySQL generated columns: https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html MariaDB virtual columns: https://mariadb.com/kb/en/mariadb/virtual-computed-columns/ Declare virtual columns with `t.virtual name, type: …, as: "expression"`. Pass `stored: true` to persist the generated value (false by default). Example: create_table :generated_columns do |t| t.string :name t.virtual :upper_name, type: :string, as: "UPPER(name)" t.virtual :name_length, type: :integer, as: "LENGTH(name)", stored: true t.index :name_length # May be indexed, too! end Closes #22589
* | | Chain scope constraints should respect own table aliasRyuta Kamizono2017-02-015-0/+35
| | | | | | | | | | | | Fixes #27666.
* | | Merge pull request #27859 from yahonda/diag27826Rafael França2017-01-311-11/+22
|\ \ \ | | | | | | | | Use temporary connection pool for sqlite3_mem adapter
| * | | Use temporary connection pool for sqlite3_mem adapterYasuo Honda2017-01-311-11/+22
| | | | | | | | | | | | | | | | | | | | Fixes #27826 Refer https://github.com/rails/rails/commit/f7b317175430a2d9300d9c4acfc1f34f4fdb2fbc
* | | | Merge pull request #27838 from kamipo/reload_destroyed_through_recordRafael França2017-01-311-0/+7
|\ \ \ \ | | | | | | | | | | Reload `through_record` that has been destroyed in `create_through_record`
| * | | | Reload `through_record` that has been destroyed in `create_through_record`Ryuta Kamizono2017-01-291-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an alternative of #27714. If `has_one :through` association has set `nil`, `through_record` is destroyed but still remain loaded target in `through_proxy` until `reload` or `reset` explicitly. If `through_proxy` is not reset (remain destroyed (frozen) target), setting new record causes `RuntimeError: Can't modify frozen hash`. To prevent `RuntimeError`, should reload `through_record` that has been destroyed in `create_through_record`.
* | | | | Merge pull request #27797 from y-yagi/correctly_check_error_messageArthur Nogueira Neves2017-01-302-5/+13
|\ \ \ \ \ | | | | | | | | | | | | correctly check error message
| * | | | | correctly check error messageyuuji.yaginuma2017-01-252-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `assert_raise` does not check error message. However, in some tests, it seems like expecting error message checking with `assert_raise`. Instead of specifying an error message in `assert_raise`, modify to use another assert to check the error message.
* | | | | | deprecate `scope_chain`Aaron Patterson2017-01-301-5/+15
| |_|/ / / |/| | | |
* | | | | Merge pull request #27787 from y-yagi/show_correct_class_name_in_migration_errorRafael França2017-01-301-2/+3
|\ \ \ \ \ | | | | | | | | | | | | show correct class name in migration inherited directly error
| * | | | | show correct class name in migration inherited directly erroryuuji.yaginuma2017-01-241-2/+3
| |/ / / / | | | | | | | | | | | | | | | Follow up to 249f71a
* | | | | Merge pull request #27773 from kirs/serialized-error-attributeRafael França2017-01-302-11/+27
|\ \ \ \ \ | |_|/ / / |/| | | | Report the attribute on ActiveRecord::SerializationTypeMismatch