| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This is to be consistent with the way the mysql2 adapter times queries
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
When the adapter is with prepared statement disabled and the binds array
is not empty the connection adapter will try to set the binds values and
will fail. Now we are checking if the adapter has the prepared statement
disabled.
Fixes #12023
|
| |
|
|
|
|
| |
Closes #11899.
|
| |
|
|
|
|
| |
In order that set attribute should not be bang method
|
| |
|
| |
|
|
|
|
|
| |
* Constantize parse token
* Remove extra param passed to `parse_data`
|
| |
|
| |
|
| |
|
|
|
|
| |
used at all on non-postgres adapters.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The combination of a :uniq => true association and the #distinct call
in #construct_limited_ids_condition combine to create invalid SQL, because
we're explicitly selecting DISTINCT, and also sending #distinct on to AREL,
via the relation#distinct_value.
Rather than build a select distinct clause in #construct_limited_ids_condition,
I set #distinct! and pass just the columns into the select statement.
This requires introducing a #columns_for_distinct method to return the
select columns but not the statement itself.
|
| |
|
|
|
|
| |
- A string in an array of strings that has a quote char (') needs to have that quote char escaped if the array is getting wrapped in quote chars.
|
|
|
|
|
|
|
| |
This reverts commit 521035af530482d6d9ad2dae568eaeb0ab188e1c, reversing
changes made to 222011dbee842bbc60d3aaaa3145356b90a30fd1.
Reason: This broke the tests
|
|\
| |
| | |
DB with postgres string array column doesn't load fixtures well
|
| | |
|
| |
| |
| |
| | |
bit column in Postgresql, because solving ambiguity.
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
| |
When building the indexes list in PostgreSQL, IndexDefinition objects
are only created if the query for the related attributes really returns
something matching the attributes.
In case it does not, the variables for building the definition objects were
being created but not used.
|
| |
|
|
|
|
|
|
|
|
| |
Adds support for algorithm option in MySQL indexes
Moves USING and algorithm options upstream
The syntax is still specific to the Adapter, so the actual executed string happens
in the corresponding adapter
|
| |
|
|
|
|
|
|
|
| |
ActiveRecord::ConnectionAdapters::Column
See
https://github.com/rails/rails/blob/28b8ca766e3e7c6c43d3ae900c99f8377153c62/activerecord/lib/active_record/connection_adapters/column.rb#L16
|
| |
|
| |
|
|\
| |
| |
| | |
Closes #9184
|
| |
| |
| |
| | |
Previously regex did not strip quotation marks where hstore values were multi-line strings.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
fixes #9170
|
|
|
|
|
|
|
|
|
|
| |
In an AR model a timestamptz attribute would return a ruby string and AR
tests did not check for any type casting. Previous tests would pass
only because an assert_equal was being used on a Time.utc object, which
will parse the right side of the eq to a valid Time instance for
comparision.
switch to test instance of Time instead of ActiveSupport::TimeWithZone
|
|
|
|
| |
When a table or a column is renamed related indexes kept their name. This will lead to confusing names. This patch renames related indexes when a column or a table is renamed. Only indexes with names generated by rails will be renamed. Indexes with custom names will not be renamed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
because of an ambiguous column name. This happened if the association
model had a default scope that referenced a third table, and the third
table also referenced the original table (with an identical
foreign_key).
Mysql requires that ambiguous columns are deambiguated by using the full
table.column syntax. Postgresql and Sqlite use a different syntax for
updates altogether (and don't tolerate table.name syntax), so the fix
requires always including the full table.column and discarding it later
for Sqlite and Postgresql.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we set encoding latin1 for a PostgreSQL database, it calls
PostgreSQLAdapter::create_database with options that have,
among other things:
{ 'encoding' => 'latin1' }
Then, we use reverse_merge(:encoding => "utf8") to setup the default
encoding. In the end, the hash looks like:
{ :encoding => 'utf8', 'encoding' => 'latin1' }
The call to options.symbolize_keys calls to_sym on each_key of this
Hash. It usually means that the encoding passed overwrites the default
utf8, but it's not guaranteed. So, we shouldn't rely on it.
The same was happening in ActiveRecord::ConnectionHandling.
|
|
|
|
|
|
| |
* dependencies/autoload
* concern
* deprecation
|