| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix `create_table` with query from relation
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
If a relation has binds, `connection.to_sql(relation)` without binds
will generate invalid SQL. It should use `relation.to_sql` in that case.
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
Don't require 'unscope' to be the same on both sides of an 'or' relation
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Don't map id to primary key in raw_write_attribute
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The `raw_write_attribute` method is used to update a record's attributes
to reflect the new state of the database in `update_columns`. The hash
provided to `update_columns` is turned into an UPDATE query directly,
which means passing an `id` key results in an update to the `id` column,
even if the model uses a different attribute as its primary key. When
updating the record, we don't want to apply the `id` column change to
the primary key attribute, since that's not what happened in the query.
Without the code to handle this case, `write_attribute_with_type_cast`
no longer contains any logic shared between `raw_write_attribute` and
`write_attribute`, so we can inline the code into those two methods.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
kamipo/fix_dump_schema_information_with_empty_versions
Fix `dump_schema_information` with empty versions
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
Fixes #29460.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Add test cases for #28274
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`object.id` is correctly restored since #29378 has merged.
Closes #28274, Closes #28395.
[Ryuta Kamizono & Eugene Kenny]
|
|\ \ \ \
| |/ / /
|/| | | |
Allow `uuid_test.rb` to be loaded on all adapters
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Running `bin/test` from the activerecord directory produces this error:
test/cases/adapters/postgresql/uuid_test.rb:43:in `<class:PostgresqlUUIDTest>': undefined method `supports_pgcrypto_uuid?' for #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x007fc405e72a68> (NoMethodError)
The test only actually runs on the PostgreSQL adapter; we can avoid
triggering the error on other adapters with this `respond_to?` guard.
|
|\ \ \
| | | |
| | | | |
Avoid overwriting the methods of `AttributeMethods::PrimaryKey`
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently the methods of `AttributeMethods::PrimaryKey` are overwritten
by `define_attribute_methods`. It will be broken if a table that
customized primary key has non primary key id column.
It should not be overwritten if a table has any primary key.
Fixes #29350.
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
PostgreSQL 10 converts unknown type to text type
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Rename test cases from `unknown` to `unrecognized` since unknown OID
is one of possible unrecognized types by Rails
- Use "select 'pg_catalog.pg_class'::regclass" whose OID is 2205, which
will not be converted to recognized type in PostgreSQL 10.
activerecord_unittest=# select oid, typname from pg_type where oid in (2205, 2277);
oid | typname
------+----------
2205 | regclass
2277 | anyarray
(2 rows)
Addresses #28868
|
|\ \ \
| | | |
| | | | |
Remove redundant `assert_nothing_raised` before another assertions
|
| |/ /
| | |
| | |
| | | |
These `assert_nothing_raised` are covered by following assertions.
|
|/ / |
|
| |
| |
| |
| |
| | |
`ReservedWordTest` expects that any identifiers are quoted properly.
It should be tested for all adapters.
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/prevent_making_bind_param_if_casted_value_is_nil
Prevent making bind param if casted value is nil
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If casted value is nil, generated SQL should be `IS NULL`. But currently
it is generated as `= NULL`. To prevent this behavior, avoid making bind
param if casted value is nil.
Fixes #28945.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Correct a has_many association test
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
In `test_schema_dump_includes_limit_constraint_for_integer_columns`,
unified `assert_match` and `assert_no_match` to simple regex.
|
|\ \ \ \
| | | | |
| | | | | |
Consolidate database specific JSON types to `Type::Json`
|
| | | | | |
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Fix `default_scoped` with defined `default_scope` on STI model
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | | |
This regression is caused by d1249c1.
If STI model is defined `default_scope`, `base_rel` is not respected.
I fixed to merge `base_rel` in that case.
|
|\ \ \ \
| | | | |
| | | | | |
Extract `NumericData` model for tests
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
To ease to find the numeric data tests, extract `NumericDataTest` to
`test/cases/numeric_data_test.rb` dedicated file.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Currently `NumericData` model is defined some places.
|
| |/ / /
|/| | | |
|
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | | |
The assert_same above obviously guarantees this will pass, but this
seems less likely to be deleted just because the implementation changed.
|
|\ \ \
| | | |
| | | |
| | | | |
Fix association with extension issues
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Some third party modules expects that association returns same proxy
object each time (e.g. for stubbing collection methods:
https://github.com/rspec/rspec-rails/issues/1817).
So I decided that cache the proxy object and reset scope in the proxy
object each time.
Related context: https://github.com/rails/rails/commit/c86a32d7451c5d901620ac58630460915292f88b#commitcomment-2784312
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes the following issues.
* `association_scope` doesn't include `default_scope`. Should use `scope` instead.
* We can't use `method_missing` for customizing existing method.
* We can't use `relation_delegate_class` for sharing extensions. Should extend per association.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
kamipo/deserialize_raw_value_from_database_for_json
Deserialize a raw value from the database in `changed_in_place?` for `AbstractJson`
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`AbstractJson`
Structured type values sometimes caused representation problems (keys
sort order, spaces, etc). A raw value from the database should be
deserialized (normalized) to prevent the problems.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`quote_default_expression` can be passed nil value when `null: true` and
`default: nil`. This addressed in that case.
Fixes #29222.
|
|\ \ \ \
| | | | |
| | | | | |
`rename_table` should rename primary key index name
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Formerly, `rename_table` only renamed primary key index name if the
column's data type was sequential (serial, etc in PostgreSQL). The
problem with that is tables whose primary keys had other data types
(e.g. UUID) maintained the old primary key name. So for example,
if the `cats` table has a UUID primary key, and the table is renamed to
`felines`, the primary key index will still be called `cats_pkey`
instead of `felines_pkey`. This PR corrects it.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
kamipo/default_env_fall_back_to_default_env_when_rails_env_or_rack_env_is_empty_string
`DEFAULT_ENV` falls back to `default_env` when `RAILS_ENV` or `RACK_ENV` is an empty string
|