| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Where appropriatei, prefer the more concise Regexp#match?,
String#include?, String#start_with?, or String#end_with?
|
|\
| |
| |
| |
| | |
kamipo/move_warning_about_composite_primary_key_to_attribute_methods_primary_key
Move the warning about composite primary key to `AttributeMethods::PrimaryKey`
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Actually schema dumper/creation supports composite primary key (#21614).
Therefore it should not show the warning about composite primary key in
connection adapter.
This change moves the warning to `AttributeMethods::PrimaryKey` and
suppress the warning for habtm join table.
Fixes #25388.
|
|\ \
| | |
| | | |
Do not `binds.dup` in `connection#to_sql`
|
| | |
| | |
| | |
| | | |
Because `connection#to_sql` does not mutate `binds`.
|
|\ \ \
| | | |
| | | | |
Refactored method `ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#default_sequence_name`. Refactored test `HasManyAssociationsTest#test_do_not_call_callbacks_for_delete_all`.
|
| | | |
| | | |
| | | |
| | | | |
`ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements#default_sequence_name`
|
|\ \ \ \
| | | | |
| | | | | |
`specificiation_id` was renamed to `spec_name`
|
| |/ / / |
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix `payload[:class_name]` to `payload[:spec_name]`
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
Follow up to #20818.
`retrieve_connection` is passed `spec_name` instead of `klass` since #24844.
|
|/ /
| |
| |
| | |
Address to https://github.com/rails/rails/commit/5a302bf553af0e6fedfc63299fc5cd6e79599ef3#commitcomment-18288388.
|
|\ \
| | |
| | |
| | |
| | | |
jeremywadsack/use_transactional_fixtures_all_databases
Use notification to ensure that lazy-loaded model classes have transactions
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
loaded model classes have their connections wrapped in transactions.
See #17776
In Rails 4 config.eager_load was changed to false in the test environment. This
means that model classes that connect to alternate databases with
establish_connection are not loaded at start up. If use_transactional_fixtures
is enabled, transactions are wrapped around the connections that have been
established only at the start of the test suite. So model classes loaded later
don't have transactions causing data created in the alternate database not to
be removed.
This change resolves that by creating a new connection.active_record
notification that gets fired whenever a connection is established. I then added
a subscriber after we set up transactions in the test environment to listen for
additional connections and wrap those in transactions as well.
|
|/ /
| |
| |
| |
| |
| | |
Keeps schema migration inserts as a single commit, so we still get all of the
benefits of https://github.com/rails/rails/commit/42dd2336b31a8d98776d039a2b9fd7f834156a78,
but allows for easier git diff-ing. Fixes #25504.
|
| | |
|
| |
| |
| |
| | |
This includes minor grammar fixes throughout the file.
|
|\ \
| | |
| | | |
Don't reap connections that have already been reassigned
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This way, we aren't racing other threads, so we don't need to re-check
the conditional. And we no longer need to hold the lock while calling
remove (which can choose to make a new connection while we wait).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A concurrent thread may have also detected it to be stale, and already
released (or even reassigned) it by now.
Fixes #25585
|
| |/
| |
| |
| |
| | |
A thread can only release a connection if it owns it, or it's owned by a
thread that has died.
|
|/ |
|
|\
| |
| |
| |
| | |
bquorning/optimize-for-first-result-and-remove-mysql-select_one
Remove #select_one from Mysql2Adapter
|
| |
| |
| |
| |
| |
| |
| |
| | |
The implementation from abstract/database_statements.rb seems to work just fine.
And with ActiveRecord::Result now implementing an optimized #first method, the
performance concerns previously addressed in
https://github.com/rails/rails/commit/bf79aa4fc14aeb2646331e767038acf0b77e9e7f
should not be an issue.
|
| |
| |
| |
| |
| |
| | |
`create_table_info_cache` is used for sharing `create_table_info` both
`table_options` and `foreign_keys`. But `foreign_keys` no longer uses
`create_table_info_cache` by #25307. No need caching anymore.
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/extract_foreign_key_action_from_information_schema
Extract foreign key action from `information_schema`
|
| | |
| | |
| | |
| | | |
Fixes #25300.
|
| | | |
|
| |/
|/|
| |
| |
| | |
This was added at c7c3f73 but it never raised because MySQL cannot
create text/blob columns with a default value.
|
|\ \
| | |
| | | |
Reuse validate index length
|
| |/
| |
| |
| | |
- Followup of https://github.com/rails/rails/commit/1ea6cc11211dc89e3e14b2b641a3cca8a0a91d55.
|
|/
|
|
| |
Fixes #25391
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently CI is broken due to 56a61e0 and c4cb686. This occurred because
the failures are not present on SQLite which is what I normally run
locally before pushing.
The optimizations to our YAML size were dropping mutations, as
`with_type` didn't set the previous value if it'd already been read
(that method was never really designed to be used with values on
individual objects, it was previously only used for defaults). I'm
questioning whether there's a better place to be handling the exclusion
of the type, but this will fix the failing build.
Additionally, there was a bug in `remove_foreign_key` if you passed it
an options hash containing `to_table`. This now occurs whenever removing
a reference, as we always normalize to a hash.
[Sean Griffin & Ryuta Kamizono]
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code incorrectly assumes that the option was written as
`foreign_key: true`, but that is not always the case. This now mirrors
the behavior of reverting `add_foreign_key`. The code was changed to use
kwargs while I was touching it, as well.
This could really use a refactoring to go through the same code paths as
`add_refernce` in the future, so we don't duplicate default values.
Fixes #25169
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow up of #20815.
```ruby
class CreatePeople < ActiveRecord::Migration[5.0]
def change
create_table :people do |t|
t.integer :int
t.bigint :bint
t.text :txt
t.binary :bin
end
end
end
```
Result.
In postgresql and sqlite3 adapters:
```ruby
ActiveRecord::Schema.define(version: 20160531141018) do
create_table "people", force: :cascade do |t|
t.integer "int"
t.bigint "bint"
t.text "txt"
t.binary "bin"
end
end
```
In mysql2 adapter:
```ruby
ActiveRecord::Schema.define(version: 20160531141018) do
create_table "people", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4" do |t|
t.integer "int"
t.bigint "bint"
t.text "txt", limit: 65535
t.binary "bin", limit: 65535
end
end
```
After this patch:
```ruby
ActiveRecord::Schema.define(version: 20160531141018) do
create_table "people", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4" do |t|
t.integer "int"
t.bigint "bint"
t.text "txt"
t.binary "bin"
end
end
```
|
| |
|
|
|
|
|
| |
Instead of passing a separete name variable, we can make the resolver
merge a name on the config, and use that before creating the Specification.
|
| |
|
|
|
|
| |
or deadlocks
|
|
|
|
|
|
|
|
|
| |
After PR https://github.com/rails/rails/pull/24844 the documentation for
`#retrieve_connection_pool` was out of date. This commit changes:
- the reference from `@class_to_pool` to `@owner_to_pool`.
- with newer Rubies, `#fetch` isn't significantly slower than `#[]`. Since Rails 5
requires Ruby >= 2.2.2, we can just use `#fetch` here.
|
|
|
|
|
|
|
|
| |
Ruby 2.4 unifies Fixnum and Bignum into Integer: https://bugs.ruby-lang.org/issues/12005
* Forward compat with new unified Integer class in Ruby 2.4+.
* Backward compat with separate Fixnum/Bignum in Ruby 2.2 & 2.3.
* Drops needless Fixnum distinction in docs, preferring Integer.
|
|
|
|
| |
as value
|
|
|
|
|
|
|
|
| |
Follow up of #24844.
The key of `@owner_to_pool` was changed from `klass.name` to
`spec.name`. By this change "memory leaks in development mode"
will not happen, bacause the equality of string is not changed
by reloading of model files.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Some slight documentation edits and fixes. Also, run remove unnecessary
`RuntimeError`.
r? @arthurnn
|
|\
| |
| | |
Refactor connection handler
|
| |
| |
| |
| | |
[skip ci]
|