| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
[ci skip]
|
| |
|
|
|
|
|
|
| |
Fixes #18905. `#touch` now takes time as an option. Setting the option
saves the record with the updated_at/on attributes set to the current time
or the time specified. Updated tests and documentation accordingly.
|
|
|
|
|
| |
Lowercase raw SQL has been replaced by 07b659c already. This commit
replaces everything else of raw SQL.
|
|
|
|
|
|
|
| |
/cc @yahonda
This makes it easier for third party adapters to run our tests,
even if that database does not support IF EXISTS.
|
|
|
|
|
|
|
|
|
| |
This helper no longer makes sense as a separate method. Instead I'll
just have `deserialize` call `cast` by default. This led to a random
infinite loop in the `JSON` pg type, when it called `super` from
`deserialize`. Not really a great way to fix that other than not calling
super, or continuing to have the separate method, which makes the public
API differ from what we say it is.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
These files get modified whenever someone uses a tool like `sed`. Let's
just get this over with in one commit so it'd not adding diff noise to
something else.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 1502caefd30b137fd1a0865be34c5bbf85ba64c1.
The test suite for the mysql adapter broke when this commit was used
with MySQL 5.6.
Conflicts:
activerecord/CHANGELOG.md
|
|
|
|
| |
favour of `begin_at` value.
|
|\
| |
| |
| | |
Add `foreign_key_exists?` method.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
As per previous discussions, we want to give users the ability to
reference their own types with symbols, instead of having to pass the
object manually. This adds the class that will be used to do so.
ActiveRecord::Type.register(:money, MyMoneyType)
|
| |
| |
| |
| |
| |
| |
| | |
...so it doesn't look like you *have* to use SQL strings for that case (not
anymore!). Would like to replace the SQL string example with something that
you cannot do with the "normal" query API, but I could not come up with a
short, realistic example. Suggestions welcome!
|
| | |
|
| |
| |
| |
| |
| | |
Using enum names in SQL strings doesn't actually work, the test was wrong (fixed
in 3dfd1ba).
|
| |
| |
| |
| | |
Make sure we have coverage for both the find/build cases
|
| | |
|
| |
| |
| |
| |
| | |
Also updated the documentation about the new ability to query them normally,
and added test to make sure they work!
|
| |
| |
| |
| |
| |
| |
| | |
```
user = User.create(token: "custom-secure-token")
user.token # => "custom-secure-token"
```
|
|\ \
| | |
| | | |
Extract `DateTimePrecisionTest`
|
| | |
| | |
| | |
| | | |
The datetime precision tests for any adapters is duplicated.
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Use SQL COUNT and LIMIT 1 queries for none? and one? methods if no block or limit is given,
instead of loading the entire collection to memory. The any? and many? methods already
follow this behavior.
[Eugene Gilburg & Rafael Mendonça França]
|
|\ \
| | |
| | | |
Allow `:precision` option for time type columns
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This finally removes the warning "WARNING: there is no transaction in progress"
when running Active Record tests using PostgreSQL.
|
| | |
| | |
| | |
| | | |
Also removed some cruft in the `setup` and `teardown` methods.
|
|/ /
| |
| |
| |
| |
| | |
"active_support/testing/stream" is already required in `test_case.rb`.
Furthermore the test "test/cases/migration_test.rb" could no longer be executed
directly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In addition to cleaning up the implementation, this allows type casting
behavior to be applied consistently everywhere. (#where for example). A
good example of this was the previous need for handling value to key
conversion in the setter, because the number had to be passed to `where`
directly. This is no longer required, since we can just pass the string
along to where. (It's left around for backwards compat)
Fixes #18387
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It looks like the only reason `current_scope` was thread local on
`base_class` instead of `self` is to ensure that when we call a named
scope created with a proc on the parent class, it correctly uses the
default scope of the subclass. The reason this wasn't happening was
because the proc captured `self` as the parent class, and we're not
actually defining a real method. Using `instance_exec` fixes the
problem.
Fixes #18806
|
| |
| |
| |
| |
| |
| | |
As far as I can tell, the original reason that this behavior was added
has been sufficiently resolved elsewhere, as we no longer remove the
encoding of strings coming out of the database.
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/fix_datetime_precision_dumping_zero_for_postgresql
The datetime precision with zero should be dumped
|
| | |
| | |
| | |
| | |
| | | |
`precision: 0` was not dumped by f1a0fa9e19b7e4ccaea191fc6cf0613880222ee7.
However, `precision: 0` is valid value for PostgreSQL timestamps.
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
MySQL rejects to remove an index which is used in a foreign key constraint:
```
ActiveRecord::StatementInvalid: Mysql2::Error: Cannot drop index 'index_copies_on_title_id': needed in a foreign key constraint: ALTER TABLE `copies` DROP `title_id`
```
Removing the constraint before removing the column (and the index) solves this problem.
|
|\ \
| | |
| | | |
Add an option `end` to `find_in_batches`
|
| | |
| | |
| | |
| | | |
that complements the `start`parameter to specify where to stop batch processing
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The various databases don't actually need significantly different
handling for this behavior, and they can achieve it without knowing
about the type of the object.
The old implementation was returning a string, which will cause problems
such as breaking TZ aware attributes, and making it impossible for the
adapters to supply their logic for time objects.
|
|/ /
| |
| |
| | |
Fixes #18871
|
| |
| |
| |
| | |
Added by 101c19f55f5f1d86d35574b805278f11e9a1a48e.
|
| |
| |
| |
| |
| | |
If timestamp column have the precision, it need to format according to
the precision of timestamp column.
|
|\ \
| | |
| | | |
Respect the database default charset for `schema_migrations` table.
|
| | |
| | |
| | |
| | |
| | |
| | | |
The charset of `version` column in `schema_migrations` table is depend
on the database default charset and collation rather than the encoding
of the connection.
|
|\ \ \
| | | |
| | | | |
Add `auto_increment?` instead of `extra == 'auto_increment'`
|
| |/ / |
|