| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| | |
Defer Arel attribute lookup to the model class
|
| | |
|
| |
| |
| |
| |
| | |
This still isn't as separated as I'd like, but it at least moves most of
the burden of alias mapping in one place.
|
|\ \
| | |
| | |
| | |
| | | |
prathamesh-sonpatki/improve-pg-version-old-error-message
Improve pg version old error message and mention this change in release notes.
|
| | | |
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
Changed id-writer to save join table records based on association
primary key #20995.
|
| | |
| | |
| | |
| | |
| | |
| | | |
key #20995
Changed id-writer to save join table records based on association primary key
|
| | | |
|
| | |
| | |
| | |
| | | |
There was a typo in the variable name leading to infinite recursion
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We had previously updated this to attempt to map over whatever was
passed in, so that additional types like range and array could benefit
from this behavior without the time zone converter having to deal with
every known type.
However, the default behavior of a type is to just yield the given value
to `map`, which means that if we don't actually know how to handle a
value, we'll just recurse infinitely. Since both uses of `map` in this
case occur in cases where we know receiving the same object will
recurse, we can just break on reference equality.
Fixes #23241.
|
| |/
|/|
| |
| |
| |
| | |
`#initialize` of `HasManyReflection`, `HasOneReflection` and
`BelongsToReflection` only pass all arguments to `super` by passed order.
These overriding can be removed.
|
|\ \
| | |
| | | |
Warn if a named scope is overwriting an existing scope or method
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit f6db31ec16e42ee7713029f7120f0b011d1ddc6c.
Reason:
Scope names can very easily conflict, particularly when sharing Concerns
within the team, or using multiple gems that extend AR models.
It is true that Ruby has the ability to detect this with the -w option, but the
reality is that we are depending on too many gems that do not care about Ruby
warnings, therefore it might not be a realistic solution to turn this switch on
in our real-world apps.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix corrupt transaction state caused by `before_commit` exceptions
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When a `before_commit` callback raises, the database is rolled back but
AR's record of the current transaction is not, leaving the connection in
a perpetually broken state that affects all future users of the
connection: subsequent requests, jobs, etc. They'll think a transaction
is active when none is, so they won't BEGIN on their own. This manifests
as missing `after_commit` callbacks and broken ROLLBACKs.
This happens because `before_commit` callbacks fire before the current
transaction is popped from the stack, but the exception-handling path
they hit assumes that the current transaction was already popped. So the
database ROLLBACK is issued, but the transaction stack is left intact.
Common cause: deadlocked `#touch`, which is now implemented with
`before_commit` callbacks.
What's next:
* We shouldn't allow active transaction state when checking in or out
from the connection pool. Verify that conns are clean.
* Closer review of txn manager sad paths. Are we missing other spots
where we'd end up with incorrect txn state? What's the worst that can
happen if txn state drifts? How can we guarantee it doesn't and
contain the fallout if it does?
Thanks for @tomafro for expert diagnosis!
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 9f3730a516f30beb0050caea9539f8d6b808e58a, reversing
changes made to 2637fb75d82e1c69333855abd58c2470994995d3.
There are additional issues with this commit that need to be addressed
before this change is ready (see #23377). This is a temporary revert in
order for us to have more time to address the issues with that PR,
without blocking the release of beta2.
|
| | |
| | |
| | |
| | | |
for those who already migrated to Rails 5.0.0 beta
|
| | |
| | |
| | |
| | | |
to support Oracle database which only supports 30 byte identifier length
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`initialize_schema_migrations_table` is called in every migrations.
https://github.com/rails/rails/blob/v5.0.0.beta1/activerecord/lib/active_record/migration.rb#L1080
https://github.com/rails/rails/blob/v5.0.0.beta1/activerecord/lib/active_record/schema.rb#L51
This means that extra `show variables` is called regardless of the
existence of `schema_migrations` table.
This change is to avoid extra `show variables` if `schema_migrations`
table exists.
|
|\ \ \
| | | |
| | | | |
Make to primary key instead of an unique index for internal tables
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
`OID::Money.precision` is unused since #15239
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
p PostgreSQLAdapter::OID::Money.precision
# => 19
p PostgreSQLAdapter::OID::Money.new.precision
# => nil
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Rails has abstract Reflection classes (`MacroReflection`,
`AssociationReflection` etc.) and concrete Reflection classes
(e.g. `HasManyReflection`, `HasOneReflection` etc.).
In many case `calculate_constructable` returns `true`, so
change `calculate_constructable` to always return `true` and
override this method if necessary.
|
|\ \ \ \
| | | | |
| | | | | |
clarify the touch true option does not trigger after_save/update [ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I've gotten tripped up more than a few times on this, thinking that
using `belongs_to` with `touch: true` would trigger my after_save or
after_update callbacks. The same text is in the documentation for the
touch method itself, but I think its helpful to repeat it again here.
It might save people some time.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
make rake proxy work in rails engines
|
| | | | | | |
|
|/ / / / / |
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
- Updated persistence documentation to make it clear that save and sa…
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
won't update a record if validation fails.
- Also fixed `update` method's documention to be uniform about this statement.
Fixes #20821
[ci skip]
[Vipul A M & pseidemann ]
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This reverts commit ff835f90800a3e4122d64606cb328908c2e0e071, reversing
changes made to c4d85dfbc71043e2a746acd310e32f4f04db801a.
Reason: This broke the tests. We will add back after investigated.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
yui-knk/warning_when_composite_primary_key_is_detected
Warn if `AR.primary_key` is called for a table who has composite prim…
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If `AR.primary_key` is called for a table who has composite primary key,
the method returns `nil`. This behavior sometimes generates invalid SQL.
The first time developers notice to invalid SQL is when they execute
SQL. This commit enables developers to know they are doing something
dangerous as soon as possible.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Refactor `column_exists?` in `SchemaStatements`
|
| |/ / / / / |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Fix `bigint?` for Enum columns in MySQL
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | | |
Follow up to #22896.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Make `SchemaMigration.drop_table` to one SQL
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`SchemaMigration.drop_table` is only used in tests.
Simply we can use `drop_table if_exists: true`.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
kamipo/remove_unused_lost_connection_error_messages
Remove unused `LOST_CONNECTION_ERROR_MESSAGES`
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`LOST_CONNECTION_ERROR_MESSAGES` was added by f384582.
But currently unused from anywhere.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Explicitly define `columns` method as an interface
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`ActiveRecord::ConnectionAdapters::SchemaStatements#columns` is defined
here as an interface method here. So changes to raise `NotImplementedError`
same as `tables`, `views` ...etc.
|
|/ / / / / |
|
| | | | | |
|
| | | | |
| | | | |
| | | | | |
These methods are more expensive than the alternatives, and have strange semantics that are likely undesirable.
|