| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \
| |/
|/|
| | |
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
|
|/
|
|
|
| |
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.
|
|\ \
| | |
| | |
| | |
| | | |
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`.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Currently uniqueness validator is coupled with building Arel ASTs.
This commit extracts `PredicateBuilder::CaseSensitiveHandler` for
decouple the building Arel ASTs.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Avoid to allow unused splat args for `t.timestamps` in `create_table`
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Unfortunately `t.timestamps` in `create_table` allows unused splat args.
But the same one in `change_table` does not allow them.
This commit fixes the inconsistent behavior.
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
Refactor `quoted_columns_for_index` by extracted `add_options_for_index_columns`
|
| |/ / / |
|
|\ \ \ \
| | | | |
| | | | | |
Support multiple indexes on the same column when loading the schema
|
| | | | | |
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Style/SpaceBeforeBlockBraces
Style/SpaceInsideBlockBraces
Style/SpaceInsideHashLiteralBraces
Fix all violations in the repository.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If you call `remove_index` with wrong options, say a type, like I did,
you get:
```
== 20160810072541 RemoveUniqueIndexOnGoals: migrating =========================
-- remove_index(:goal, {:coulmn=>:kid_id, :unique=>true})
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
undefined method `ArgumentError' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x007fb7dec91b28>
```
What happened is that I mistyped column (coulmn) and got a
`NoMethodError`, because of a missing comma during the raise. This made
Ruby think we're calling the method `ArgumentError`.
|
| | | |
| | | |
| | | |
| | | | |
Hash syntax auto-correcting breaks alignments. 411ccbdab2608c62aabdb320d52cb02d446bb39c
|
| |_|/
|/| | |
|
|\ \ \
| | | |
| | | | |
Revert passing arel node with splat binds for `where`
|
| | |/
| |/|
| | |
| | |
| | | |
A `value` is only used for checking `value.nil?`. It is unnecessary if
immediately return when `value.nil?`.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| | |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
|\ \
| | |
| | | |
Make `name` and `binds` to optional args for `exec_{insert,update,delete}`
|
| | |
| | |
| | |
| | |
| | |
| | | |
`insert`, `update`, `delete`, and `exec_query` have a default value
against `name` and `binds`. But `exec_insert`, `exec_update`, and
`exec_delete` not have. It is an inconvenience and inconsistent.
|
| | | |
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Introduce new ActiveRecord transaction error classes
Closes #26018
|
| | | |
|
| | | |
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | | |
- Followup of https://github.com/rails/rails/pull/23179.
|
|\ \ \
| | | |
| | | | |
Remove `prepare_binds_for_database` internal method
|
| | | |
| | | |
| | | |
| | | | |
To avoid relying on the connection adapter for type casting binds.
|
|\ \ \ \
| | | | |
| | | | | |
Prevent `table_comment` query if a table doesn't have a comment
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
kamipo/avoid_calling_current_database_in_table_comment
Avoid calling `current_database` in `table_comment`
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
`current_database` executes a query and `table_comment` is called to all
tables even if a table does not have a comment. Using `current_database`
increases extra queries.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Caching a mutable string causes the following issue.
```
Loading development environment (Rails 5.1.0.alpha)
irb(main):001:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!'
=> "`foo`!!"
irb(main):002:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!'
=> "`foo`!!!!"
irb(main):003:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!'
=> "`foo`!!!!!!"
```
|
| | | |
| | | |
| | | | |
[Rafael Mendonça França + Takeshi AKIMA]
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
kamipo/decouple_statement_cache_from_connection_adapter
Decouple statement cache from connection adapter
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`StatementCache` is hard-coded in `cacheable_query` and be passed
`visitor` and `collector` from connection adapter. Simply it is
enough to pass a collected value.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Quoting booleans should return a frozen string
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If reuse `QUOTED_TRUE` and `QUOTED_FALSE` without frozen, causing the
following issue.
```
Loading development environment (Rails 5.1.0.alpha)
irb(main):001:0> ActiveRecord::Base.connection.quote(true) << ' foo'
=> "1 foo"
irb(main):002:0> ActiveRecord::Base.connection.quote(true) << ' foo'
=> "1 foo foo"
irb(main):003:0> type = ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::MysqlString.new
=> #<ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::MysqlString:0x007fd40c15e018 @precision=nil, @scale=nil, @limit=nil>
irb(main):004:0> type.serialize(true) << ' bar'
=> "1 foo foo bar"
irb(main):005:0> type.cast(true) << ' bar'
=> "1 foo foo bar bar"
```
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Extract `type_casted_binds` method
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Because `type_cast` against `binds` always requires
`attr.value_for_database` and this pattern appears frequently.
|
| |/ / / /
|/| | | | |
|