| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Switch back to `Hash.dup`
|
| |
| |
| |
| | |
Follow up to #26301.
|
|/
|
|
| |
Rails dropped Ruby 1.9 support, but this comment still true.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The performance difference between `Hash[]` and `Hash.dup` looks to have
been narrowed by @tenderlove via this commit --> https://github.com/ruby/ruby/commit/b3803cc49ad382e23291d75ce57ffb2b74bb9577#diff-eff9999082c8ce7d8ba1fc1d79f439cf.
Since this commit first appeared in Ruby 2.0.0, and since Rails now
requires a minimum Ruby version of 2.2.2, this performance boost should
be available for all users.
Relevant links:
- This behavior was originally added via https://github.com/rails/rails/commit/02174a3efc6fa8f2e5e6f114e4cf0d8a06305b6a
- The conversation on the Ruby issue tracker lives here --> https://bugs.ruby-lang.org/issues/7166
|
|\
| |
| | |
Remove over meta programming in AR::Relation
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduced low level methods #set_value and #get_value for setting query attributes:
relation.set_value(:where, {id: 1})
relation.get_value(:includes)
Used those internally when working with relation's attributes
at the abstract level
|
| |
| |
| |
| |
| | |
`format_string` is used for standardized column types/arguments spaces.
Now the standardization was removed at df84e9867219e9311aef6f4efd5dd9ec675bee5c.
|
|\ \
| | |
| | | |
Remove unnecessary `any?` and `many?` methods for collection proxy
|
| | |
| | |
| | |
| | | |
Simply use its own methods because `CollectionProxy` inherits `Relation`.
|
|\ \ \
| | | |
| | | | |
Doc on scoped has_many, dependent: :destroy
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is to close #26111
Developers need to be aware that `dependent: :destroy` on a scoped
`has_many` association would only destroy the associated objects in
that scope. Potentially leaving other associated objects outside that
scope untouched.
|
| | |
| | |
| | |
| | |
| | | |
Now the schema dumper by default doesn't align the types and arguments
in the ruby format anymore.
|
|/ /
| |
| |
| | |
Fixes #26137.
|
|\ \
| | |
| | | |
Remove unused `blob_or_text_column?` method
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Remove unnecessary `length` method for collection proxy
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`length` is delegated to `records` (`load_target`) by
`ActiveRecord::Delegation`.
https://github.com/rails/rails/blob/v5.0.0/activerecord/lib/active_record/relation/delegation.rb#L38
|
|\ \ \
| | | |
| | | |
| | | | |
Option not to line up column attributes in schema.rb
|
| | | | |
|
|\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | |
| | | | |
kamipo/remove_text_default_treated_as_empty_string
Remove text default treated as an empty string in non-strict mode
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Strict mode controls how MySQL handles invalid or missing values in
data-change statements such as INSERT or UPDATE. If strict mode is not
in effect, MySQL inserts adjusted values for invalid or missing values
and produces warnings.
```ruby
def test_mysql_not_null_defaults_non_strict
using_strict(false) do
with_mysql_not_null_table do |klass|
record = klass.new
assert_nil record.non_null_integer
assert_nil record.non_null_string
assert_nil record.non_null_text
assert_nil record.non_null_blob
record.save!
record.reload
assert_equal 0, record.non_null_integer
assert_equal "", record.non_null_string
assert_equal "", record.non_null_text
assert_equal "", record.non_null_blob
end
end
end
```
It is inconsistent with other types that only text/blob defaults treated
as an empty string. This commit fixes the inconsistency.
|
|\ \ \ \
| | | | |
| | | | | |
Revert "`sql_for_insert` returns values for passing to `exec_insert`"
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This reverts #23067. #23067 is for propagating `pk` value from
`sql_for_insert` to `exec_insert` (avoiding extra query for pg adapter).
Now `exec_insert` includes `sql_for_insert` since #26002 therefore this
propagating is no longer needed.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
kamipo/remove_unnecessary_select_for_collection_proxy
Remove unnecessary `select` method for `CollectionProxy`
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently `CollectionProxy` inherits `Relation` and `Relation` includes
`QueryMethods`. This method is completely duplicated.
https://github.com/rails/rails/blob/v5.0.0/activerecord/lib/active_record/relation/query_methods.rb#L271-L275
|
|\ \ \ \
| |_|/ /
|/| | |
| | | | |
Sqlite3 Migration Error Fixed (issue #26087)
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
invalid column type
/activerecord/lib/active_record/connection_adapters
/abstract/schema_definitions.rb:306
type = type.to_sym
Changed to the following to handle nil case:
type = type.to_sym if type
Added regression test for this case:
/activerecord/test/cases/migration_test.rb:554
if current_adapter?(:SQLite3Adapter)
def test_allows_sqlite3_rollback_on_invalid_column_type
Person.connection.create_table :something, force: true do |t|
t.column :number, :integer
t.column :name, :string
t.column :foo, :bar
end
assert Person.connection.column_exists?(:something, :foo)
assert_nothing_raised { Person.connection.remove_column :something, :foo, :bar }
assert !Person.connection.column_exists?(:something, :foo)
assert Person.connection.column_exists?(:something, :name)
assert Person.connection.column_exists?(:something, :number)
ensure
Person.connection.drop_table :something, if_exists: true
end
end
|
|\ \ \
| | | |
| | | |
| | | | |
Preserve readonly flag only for readonly association
|
| | | |
| | | |
| | | |
| | | | |
Fixes #24093
|
|\ \ \ \
| | | | |
| | | | | |
Remove unnecessary ordinal methods for collection association
|
| | |/ /
| |/| |
| | | |
| | | |
| | | | |
Currently `CollectionProxy` inherits `Relation` therefore we can use
its own methods rather than delegating to collection association.
|
|\ \ \ \
| | | | |
| | | | | |
Remove `sanitize_conditions` and use `sanitize_sql` instead of `sanitize_conditions`
|
| |/ / /
| | | |
| | | |
| | | | |
Because `sanitize_conditions` protected method is only used in one place.
|
|/ / /
| | |
| | |
| | |
| | | |
Because `sql_for_insert` is only called in `use_insert_returning?` is
true since #26002.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
kamipo/fix_error_message_for_out_of_range_integer_value
Fix error message for out of range byte size integer value for consistency
|
| | | |
| | | |
| | | |
| | | | |
Related f27a932, #25391.
|
|\ \ \ \
| | | | |
| | | | | |
`pluck` should use `records` (`load_target`) when `loaded?` is true
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Fix does_not_support_reverse? to find sql functions with commas in nested brackets
|
| | | | | | |
|
| | |_|/ /
| |/| | |
| | | | |
| | | | | |
brackets
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
kamipo/sql_for_insert_should_be_called_inside_exec_insert
`sql_for_insert` should be called inside `exec_insert`
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`exec_insert` cannot return last inserted id if `use_insert_returning?`
is true. `sql_for_insert` should be called inside `exec_insert`.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Fix inconsistent the signature of finder methods for collection association
|
| | |_|_|_|/
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`#second`, `#third`, etc finder methods was added in 03855e790de2224519f55382e3c32118be31eeff.
But the signature of these methods is inconsistent with the original
finder methods. And also the signature of `#first` and `#last` methods
is different from the original. This commit fixes the inconsistency.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
kamipo/finder_bang_method_should_call_non_bang_method
Finder bang method should call non bang method
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | | |
Otherwise CollectionProxy's bang methdos cannot respect dirty target.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Check if the logger is not nil before using it
|
| | | | | | | |
|