| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
'lookup' is the noun. 'to look up' is the verb. Looked it up just to
be sure.
cf.
https://en.wiktionary.org/wiki/lookup
https://en.wiktionary.org/wiki/look_up
|
|
|
|
| |
Fixes #24032
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
association saved in the callback
Related #18155, #26661, 268a5bb, #27434, #27442, and #28599.
Originally #18155 was introduced for preventing double insertion caused
by the after save callback. But it was caused the before save issue
(#26661). 268a5bb fixed #26661, but it was caused the performance
regression (#27434). #27442 added new record to `target` before calling
callbacks for fixing #27434. But it was caused double firing before save
callback (#28599). We cannot add new object to `target` before saving
the object.
This is improving #18155 to only track callbacks after `save`.
Fixes #28599.
|
|\
| |
| |
| | |
Fix quoting in db:create grant all statement.
|
| |
| |
| |
| |
| |
| | |
The database name used in the test would have actually shown this if it
had tried to execute on a real Mysql instead of being stubbed out
(dashes in database names needs quotes).
|
|\ \
| | |
| | | |
Don't fallback to utf8mb3 after MySQL 8.0.0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`internal_string_options_for_primary_key` is used for creating internal
tables in newly apps. But it is no longer needed after MySQL 8.0.0.
MySQL 5.7 has introduced `innodb_default_row_format` (default `DYNAMIC`)
and has deprecated `innodb_large_prefix` and `innodb_file_format`.
The purpose of the deprecated options was for compatibility with earlier
versions of InnoDB.
https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_large_prefix
> innodb_large_prefix is deprecated and will be removed in a future
release. innodb_large_prefix was introduced in MySQL 5.5 to disable
large index key prefixes for compatibility with earlier versions of
InnoDB that do not support large index key prefixes.
https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_file_format
> The innodb_file_format option is deprecated and will be removed in a
future release. The purpose of the innodb_file_format option was to
allow users to downgrade to the built-in version of InnoDB in MySQL 5.1.
Now that MySQL 5.1 has reached the end of its product lifecycle,
downgrade support provided by this option is no longer necessary.
The deprecated options has removed in MySQL 8.0.0. It is no longer
needed to take care newly created internal tables as a legacy format
after MySQL 8.0.0.
Fixes #28730.
|
|\ \ \
| | | |
| | | | |
`cache_key` respects the limit in a relation even if a relation is not loaded
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
`cache_key` includes the size of a relation. But if a relation is not
loadded, the size is not respected even if a relation has a limit. It
should be respected for consistency.
|
| | |
| | |
| | |
| | |
| | | |
Raise error on the movement of migrations
when the current migration does not exist.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I'm not sure why `Mysql2VirtualColumnTest#test_schema_dumping` passed
previously. But now the test not pass at least in MariaDB 10.1.9.
I fixed the regexp to respect `COLLATE`.
```
% ARCONN=mysql2 be ruby -w -Itest test/cases/adapters/mysql2/virtual_column_test.rb -n test_schema_dumping
Using mysql2
Run options: -n test_schema_dumping --seed 7131
F
Finished in 0.466304s, 2.1445 runs/s, 4.2890 assertions/s.
1) Failure:
Mysql2VirtualColumnTest#test_schema_dumping [test/cases/adapters/mysql2/virtual_column_test.rb:55]:
Expected /t\.virtual\s+"upper_name",\s+type: :string,\s+as: "UPPER\(`name`\)"$/i to match "# This file is auto-generated from the current state of the database. Instead\n# of editing this file, please use the migrations feature of Active Record to\n# incrementally modify your database, and then regenerate this schema definition.\n#\n# Note that this schema.rb definition is the authoritative source for your\n# database schema. If you need to create the application database on another\n# system, you should be using db:schema:load, not running all the migrations\n# from scratch. The latter is a flawed and unsustainable approach (the more migrations\n# you'll amass, the slower it'll run and the greater likelihood for issues).\n#\n# It's strongly recommended that you check this file into your version control system.\n\nActiveRecord::Schema.define(version: 0) do\n\n create_table \"virtual_columns\", force: :cascade, options: \"ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci\" do |t|\n t.string \"name\"\n t.virtual \"upper_name\", type: :string, as: \n t.virtual \"name_length\", type: :integer, as: \"LENGTH(`name`)\", stored: true\n end\n\nend\n".
1 runs, 2 assertions, 1 failures, 0 errors, 0 skips
```
```
> select @@version;
+--------------------+
| @@version |
+--------------------+
| 10.1.9-MariaDB-log |
+--------------------+
1 row in set (0.00 sec)
```
|
| | |
| | |
| | |
| | | |
Related #28399.
|
|/ /
| |
| |
| | |
Since 1a92ae83 all `indexes` methods are under the `SchemaStatements`.
|
| |
| |
| |
| |
| |
| |
| | |
MySQL 8.0.1 and higher supports descending indexes: `DESC` in an index
definition is no longer ignored.
See https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.html.
|
| |
| |
| |
| |
| |
| |
| | |
* Use keyword arguments in `IndexDefinition` to ease to ignore unused
options and to avoid to initialize incorrect empty value.
* Place it in `SchemaStatements` for consistency.
* And tiny tweaks.
|
|\ \
| | |
| | | |
Rename `association_query_handler.rb` to `association_query_value.rb`
|
| | |
| | |
| | |
| | |
| | |
| | | |
Since `AssociationQueryHandler` and `PolymorphicArrayHandler` has
removed in #28715, only exists `AssociationQueryValue` and
`PolymorphicArrayValue` in these files.
|
|/ /
| |
| |
| | |
Partitioning to `values` and `nils` is unneeded before early return.
|
| |
| |
| |
| |
| |
| | |
We already have a _read_attribute method that can get the value we need
from the model. Lets define that method in AM::Dirty and use the
existing one from AR::Dirty rather than introducing a new method.
|
|\ \
| | |
| | |
| | |
| | | |
bogdanvlviv/fix-dirty-attributes-if-override-attr_accessor
Fix inconsistency with changed attributes when overriding AR attribute reader
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
kamipo/convert_association_queries_to_poro_queries
Convert association queries to PORO queries
|
| | | |
| | | |
| | | |
| | | | |
association handling
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
[ci skip]
|
|\ \ \ \
| | | | |
| | | | | |
Add comprehensive locking around DB transactions
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Transactional-fixture using tests with racing threads and inter-thread
synchronisation inside transaction blocks will now deadlock... but
without this, they would just crash.
In 5.0, the threads didn't share a connection at all, so it would've
worked... but with the main thread inside the fixture transaction, they
wouldn't've been able to see each other.
So: as far as I can tell, the set of operations this "breaks" never had
a compelling use case. Meanwhile, it provides an increased level of
coherency to the operational feel of transactional fixtures.
If this does cause anyone problems, they're probably best off disabling
transactional fixtures on the affected tests, and managing transactions
themselves.
|
|\ \ \ \
| | | | |
| | | | | |
Tweaks #28678
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Fix the comment on `formatted_version`
* Extract `define_params`
* Remove duplicated guard clause for `@version`
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
Also, explicitly apply the order: generate_subscripts is unlikely to
start returning values out of order, but we should still be clear about
what we want.
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| / /
| |/ / |
Expose `queries` for `AssociationQueryValue` and `PolymorphicArrayValue`
|
| | | |
|
| | |
| | |
| | |
| | | |
It should be handled by `PolymorphicArrayHandler` if polymorphic association.
|
|\ \ \
| | | |
| | | | |
use formatted number as schema version
|
| | |/
| |/| |
|
| | |
| | |
| | |
| | | |
To ease to customize a relation for `exists?`.
|
|/ /
| |
| |
| | |
fixtures, not an empty array.
|
|\ \
| | |
| | | |
Clear active connections after initialization
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Any connections that were checked out during initialization should be
checked back in before the first request is processed, for two reasons:
- Returning the connection to the pool allows it to be health checked
before it's used again. If the connection dies before the first
request arrives, the health check will replace it with a new one.
- If the thread that initialized Rails is not the same thread that will
be performing work, checking in the connection will allow it to be
reused instead of being stuck to the initialization thread forever.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit a680a5814184e2f37c4686aa53d0ad3c7fb6b1ee, reversing
changes made to 842f67dd242e738419f27e752ea7dcd0bbe87b6d.
Reason: I can't resist to the joke, so better to keep it there
https://github.com/rails/rails/pull/28598#issuecomment-290945339.
|
| | | |
|
| | |
| | |
| | | |
`ActiveRecord::Base.establish_connection` accepts a single symbol argument to specify a named connection; a single string argument appears to be interpreted as a connection URI
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
htanata/ar_relation_inspect_should_not_load_all_records
Load only needed records on ActiveRecord::Relation#inspect
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
Instead of loading all records and returning only a subset of those,
just load the records as needed.
Fixes #25537.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
silly method gets a silly doc fix,
or I'm missing an even sillier joke and I'm about to get schooled.
BUT I'm pretty sure this is some serious Beaudrillard simulacrum, though.
I'm just doing my part to spread the gospel of Douglas Adams.
|
|\ \ \
| | | |
| | | | |
Fix `primary_keys` across multiple schemas
|
| | | |
| | | |
| | | |
| | | | |
Fixes #28470.
|