| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The column name given by the adapter doesn't include the table
namespace, so going through the hashed version of the result set causes
overridden keys.
Fixes #15649
|
|
|
|
|
|
|
|
|
|
| |
The original patch that added this concept can be found
[here](https://web.archive.org/web/20090601022739/http://dev.rubyonrails.org/ticket/9767).
The current default behavior is to cache everything except serialized
columns, unless the user specified otherwise. If anyone were to specify
otherwise, many types would actually be completely broken. Still, the
method is left in place with a deprecation warning in case anyone is
actually still calling this method.
|
| |
|
| |
|
|\
| |
| | |
Fix warnings in tests
|
| |
| |
| |
| |
| |
| |
| |
| | |
```
activerecord/test/cases/adapters/postgresql/range_test.rb:159: warning: (...) interpreted as grouped expression
activerecord/test/cases/finder_test.rb:38: warning: shadowing outer local variable - e
activerecord/test/cases/finder_test.rb:43: warning: shadowing outer local variable - e
```
|
|/
|
|
|
| |
On MySQL and PostgreSQL, the adapter does not type cast virtual columns
for us.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This reverts commit dd3ea17191e316aeebddaa7b176f6cfeee7a6365 and add a
regression test.
Fixes #15418
|
|
|
|
|
|
|
|
| |
In some cases there is a difference between the two, we should always
be doing one or the other. For convenience, `type_cast` is still a
private method on type, so new types that do not need different behavior
don't need to implement two methods, but it has been moved to private so
it cannot be used accidentally.
|
|\
| |
| | |
Remove workaround for non-lazy serialize in tests
|
| |
| |
| |
| | |
`serialize` is now lazy, so the workaround is no longer needed.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
- The following is now true for all types, all the time
- `model.attribute_before_type_cast == given_value`
- `model.attribute == model.save_and_reload.attribute`
- `model.attribute == model.dup.attribute`
- `model.attribute == YAML.load(YAML.dump(model)).attribute`
- Removes the remaining types implementing `type_cast_for_write`
- Simplifies the implementation of time zone aware attributes
- Brings tz aware attributes closer to being implemented as an attribute
decorator
- Adds additional point of control for custom types
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
Rename `property` to `attribute`
Conflicts:
activerecord/lib/active_record/attribute_methods/serialization.rb
activerecord/lib/active_record/base.rb
|
| |
| |
| |
| | |
For consistency with https://github.com/rails/rails/pull/15557
|
|\ \
| | |
| | | |
Don't query the database schema when calling `serialize`
|
| | |
| | |
| | |
| | |
| | |
| | | |
We need to decorate the types lazily. This is extracted to a separate
API, as there are other refactorings that will be able to make use of
it, and to allow unit testing the finer points more granularly.
|
| | |
| | |
| | |
| | |
| | | |
The times would be equivalent, even if they were in different time
zones. E.g. 12:00 UTC == 5:00 PDT
|
| |/
|/|
| |
| | |
Millisecond inequality causes failures on Travis
|
|/ |
|
|\
| |
| | |
Add missing test cases for schema dumping defaults
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before this patch, using `ActiveRecord::Base.primary_key_prefix_type`
with `:table_name_with_underscore` would change the `SchemaMigration` model
to have a primary key. This resulted in broken queries for PG because it tried
to return the inserted PK (which does not exist).
Closes #15051.
Closes #15419.
|
| | |
|
| |
| |
| |
| | |
/cc @zuhao
|
|/
|
|
|
|
|
| |
This adds a regression test for #14411, which was fixed by #15503.
Closes #14411
Closes #14595
|
|\
| |
| | |
Bring type casting behavior of hstore/json in line with serialized
|
| |
| |
| |
| |
| | |
`@raw_attributes` should not contain the type-cast, mutable version of
the value.
|
| |
| |
| |
| |
| |
| |
| | |
The migration numbers were normalized different ways. This left
the task output in an inconsistent state.
Closes #15538.
|
|\ \
| | |
| | |
| | | |
Baseclass becomes! subclass
|
| | | |
|
| | |
| | |
| | |
| | | |
BC era year is (astronomical year + 1) and starts from 1 BC.
|
|\ \ \
| | | |
| | | |
| | | | |
Remove deprecated method ActiveRecord::Migrator.proper_table_name
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
`InverseHasManyTests#test_parent_instance_should_be_shared_within_create_block_of_new_child`
was mistakenly the same as
`InverseHasManyTests#test_parent_instance_should_be_shared_within_build_block_of_new_child`.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Follow up to #15438 and #15502.
/cc @sgrif
|
|\ \ \
| | | |
| | | | |
Collapse PG default extractoin of most types to single regex
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
For any type that is represented as a string and then type cast, we do
not need separate regular expressions for the various types. No function
will match this regex. User defined types *should* match this, so that
the type object can decide what to do with the value.
|
|\ \ \
| |/ /
|/| | |
Refactor XML serializer to not depend on `serialized_attributes`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The previous tests were passing, because nothing ever looked at the
generated XML. What was previously being generated was
`<firstname type="NilClass">...`, which is not consistent with all other
cases where there is not a known type.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fix regression on eager loading association based on SQL query rather than existing column.
Conflicts:
activerecord/CHANGELOG.md
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
than existing column.
Fixes #15480.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Return a null column when no column exists for an attribute
Conflicts:
activerecord/CHANGELOG.md
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
implement ActiveRecord::Base#pretty_print
Conflicts:
activerecord/CHANGELOG.md
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Keep column defaults in type cast form
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The contract of `_field_changed?` assumes that the old value is always
type cast. That is not the case for the value in `Column#default` as
things are today. It appears there are other public methods that
assume that `Column#default` is type cast, as well. The reason for this
change originally was because the value gets put into `@raw_attributes`
in initialize. This reverts to the old behavior on `Column`, and updates
`initialize` to make sure that the values are in the right format.
|