| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | | |
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Nearly completely implemented in terms of custom properties.
`_before_type_cast` now stores the raw serialized string consistently,
which removes the need to keep track of "state". The following is now
consistently true:
- `model.serialized == model.reload.serialized`
- A model can be dumped and loaded infinitely without changing
- A model can be saved and reloaded infinitely without changing
|
|\ \ \ \
| |_|_|/
|/| | | |
Don't change values in `@raw_attributes` during serialization
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
During `init_with`, the attributes given to the coder will be placed
into `@raw_attributes`. As such, we should read from `@raw_attributes`
when encoding, rather than `@attributes`, which has been type cast.
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Rename attribute related instance variables to better express intent
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`@attributes` was actually used for `_before_type_cast` and friends,
while `@attributes_cache` is the type cast version (and caching is the
wrong word there, but I'm working on removing the conditionals around
that). I opted for `@raw_attributes`, because `_before_type_cast` is
also semantically misleading. The values in said hash are in the state
given by the form builder or database, so raw seemed to be a good word.
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This removes the case statement in `SchemaDumper` and gives every `Type`
the possibility to control the SchemaDumper default value output.
/cc @sgrif
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This is an intermediate solution. It is related to the refactoring @sgrif
is making and will change in the future.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fixed #columns_for_distinct of postgresql adapter
Conflicts:
activerecord/CHANGELOG.md
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Many of the methods defined in `AttributeMethods::Serialization` can be
refactored onto this type as well, but this is a reasonable small step.
Removes the `Type` class, and the need for `decorate_columns` to handle
serialized types.
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
MySQL and PostgreSQL provide a column type override in order to properly
type cast computed columns included in a result set. This should never
override the known types of full fledged columns. In addition to messing
up computed properties, this would have led to inconsistent behavior
between a record created with `new`, and a record created with `last` on
the mysql adapter in the following cases:
- `tinyint(1)` with `emulate_booleans` set to `false`
- `text`, `string`, `binary`, and `decimal` columns
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Create a consistent API across adapters for building new columns
- Use it for custom properties so we don't get `UndefinedMethodError`s
in stuff I'm implementing elsewhere.
|
|\ \ \ \
| | | | |
| | | | | |
Keep closer to other methods that touch @transaction
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Working towards re-implementing serialized attributes to use the
properties API exposed the need for this, as serializing a column
shouldn't change the order of the columns.
|
|\ \ \ \
| | | | |
| | | | | |
Ensure custom properties work correctly with inheritance
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Move types to the top level `ActiveRecord` namespace
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`ActiveRecord::ConnectionAdapters::Type::Value` =>
`ActiveRecord::Type::Value`
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Initial doc for TransactionIsolationError [ci skip]
|
| | | | | | |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Remove unused `Column#coder`
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
It appears this property was added, but never actually used. It would be
broken if it were, as it only type casts one way.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The solution presented in this patch is not efficient. We should replace it
in the near future. The following needs to be worked out:
* Is `@attributes` storing the Ruby or SQL representation?
* `cacheable_column?` is broken but `hstore` and `json` rely on that behavior
Refs #15369.
/cc @sgrif @rafaelfranca
|
|\ \ \ \
| | | | |
| | | | | |
Remove AR Properties from the public API
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Making this part of the public API was premature, let's make it private
again while I continue to work on the surrounding code.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
rake railties:install:migrations respects the order of railties
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This PR fixes #8930 and some stuff from #8985
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Correctly alias table names when joining more than once
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Deprecate decimal columns being automatically treated as integers
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
With ActiveRecord::Properties, we now have a reasonable path for users
to continue to keep this behavior if they want it. This is an edge case
that has added a lot of complexity to the code base.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix redefine a has_and_belongs_to_many inside inherited class
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
After ad7b5efb55bcc2e0ccd3e7f22a81e984df8676d1, which changed how
has_an_belongs_to_many used to work, we start raising an error when
redefining the same has_an_belongs_to_many association. This commits fix
that regression.
[Fixes #14983]
|
|\ \ \ \ \ \ \ \
| |/ / / / / / /
|/| | | | | | | |
remove unwanted `to_sym` call.
|
| | | | | | | | |
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Skip if the association was already loaded.
|
| |/ / / / / / / |
|
|\ \ \ \ \ \ \ \
| |_|/ / / / / /
|/| | | | | | | |
Remove unnecessary branch from quoting in Mysql
|