| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
6d5f4de4c420ebb906109668f5702a537ac77692
Simulated & actual (manual/skipped) PostgreSQL auto-reconnection tests.
4b1bca04025a66c54e6e9d5eb6e4d4056bfa92f0
Stop being silly with formatting of method aliasing.
c381d5cbf959208adeb38e7859ee815dfbd2cf54
Fix just-plain-wrongness of psql auto-reconnect test.
1e17a9d367c54c680368be72f44247ae28b98904
Fix only-once stub logic.
f16c2043826ec1991cf94fe17cb671507b7a7f51
Changelog for PostgreSQL auto-reconnect test coverage backport.
|
|\
| |
| | |
type_cast_code should always convert values to integer calling #to_i
|
| |
| |
| |
| | |
integer calling #to_i
|
|/
|
|
|
|
| |
Fix for time type columns with invalid time value
Conflicts:
activerecord/CHANGELOG.md
|
|\
| |
| |
| |
| | |
ManageIQ/fix_table_remove_passing_array_deprecation
Table#remove passed an array to remove_column, which is deprecated.
|
| |
| |
| |
| | |
See 02ca9151a043a4fefbb3f22edd05f0cd392fffaa
|
|/
|
|
| |
Use round to get the right conversion
|
|
|
|
|
|
| |
Fix occasional microsecond conversion inaccuracy
Conflicts:
activerecord/CHANGELOG.md
|
|
|
|
|
|
| |
Remove prepared statement from system query in postgresql adapter
Conflicts:
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
|
|
|
|
| |
postgresql_adapter.rb while creating distincts.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prepared statements (prepare/execute/close) were being used unnecessarily
when no bind variables were present, and disabling prepared statement using
prepared_statements:false was principally broken. While bind variables were
correctly substituted with prepared_statements:false, the prepared statement
interface was still used, costing an extra two round trips per query.
In addition to making this behavioral change, I also cleaned up the internals
of exec_stmt and exec_without_stmt so that they behave the same (calling log
and constructing the ActiveRecord::Result in the same way).
Moving the check for binds.empty? to exec_query also will mean that several
code paths explicitly calling exec_without_stmt could be cleaned up to once
again call exec_query instead. I have also left the check for binds.empty? in
exec_stmt, since it is not a private method and could be called directly with
an empty binds array. For the sake of clarity in this patch, I have not made
those changes.
= The previous behavior =
When issuing a Foo.find(1) with prepared_statements:true, the bind variable
is present in the prepared query, and execute shows a value passed:
Connect root@localhost on rails_test
Query SET SQL_AUTO_IS_NULL=0
Statistics
Query SHOW FULL FIELDS FROM `foos`
Query SHOW TABLES LIKE 'foos'
Query SHOW CREATE TABLE `foos`
Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1
Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Close stmt
Quit
When issuing a Foo.find(1) with prepared_statements:false, the bind variable
has already been removed and substituted with the value, but the prepared
statement interface is used anyway:
Connect root@localhost on rails_test
Query SET SQL_AUTO_IS_NULL=0
Statistics
Query SHOW FULL FIELDS FROM `foos`
Query SHOW TABLES LIKE 'foos'
Query SHOW CREATE TABLE `foos`
Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Close stmt
Quit
= With this patch applied =
When issuing a Foo.find(1) with prepared_statements:true, the bind variable
is present in the prepared query, and execute shows a value passed:
Connect root@localhost on rails_test
Query SET SQL_AUTO_IS_NULL=0
Statistics
Query SHOW FULL FIELDS FROM `foos`
Query SHOW TABLES LIKE 'foos'
Query SHOW CREATE TABLE `foos`
Prepare SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1
Execute SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Close stmt
Quit
When issuing a Foo.find(1) with prepared_statements:false, the bind variable
has been removed and substituted with the value, and the query interface is
used instead of the prepared statement interface:
Connect root@localhost on rails_test
Query SET SQL_AUTO_IS_NULL=0
Statistics
Query SHOW FULL FIELDS FROM `foos`
Query SHOW TABLES LIKE 'foos'
Query SHOW CREATE TABLE `foos`
Query SELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1
Quit
|
| |
|
|
|
|
|
|
| |
Disable query cache for lock queries
Conflicts:
activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb
|
|
|
|
|
|
| |
fix bug in limit of enum columns of mysql
Closes #6432
|
|
|
|
|
|
| |
Require URI in ConnectionSpecification
Conflicts:
activerecord/lib/active_record/connection_adapters/connection_specification.rb
|
|
|
|
|
|
| |
Conflicts:
activerecord/test/cases/adapters/mysql/mysql_adapter_test.rb
|
|
|
|
| |
Properly discover a connection is closed in postgresql_adapter
|
|
|
|
| |
Maximum wait_timeout on Windows is 2147483
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[#6464]
Fixes #6464
Synchronize the contents of the release method in ConnectionPool due to
errors when running in high concurrency environments.
Detected invalid hash contents due to unsynchronized modifications
with concurrent users
org/jruby/RubyHash.java:1356:in `keys'
/usr/local/rvm/gems/jruby-1.6.7@new_import/gems/activerecord-3.2.3/lib/a
ctive_record/connection_adapters/abstract/connection_pool.rb:294:in
`release'
/usr/local/rvm/gems/jruby-1.6.7@new_import/gems/activerecord-3.2.3/lib/a
ctive_record/connection_adapters/abstract/connection_pool.rb:282:in
`checkin'
|
| |
|
|
|
|
| |
Synchronize read and modification of @reserved_connections
|
|
|
|
|
| |
String is Enumerable in 1.8.7, which means that passing a String to
remove_column was generating deprecation warnings during tests.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
option
Backports #5900
Conflicts:
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
activerecord/test/cases/adapters/mysql/mysql_adapter_test.rb
|
|
|
|
| |
Fix GH #5430. A Payload name for schema_search_path should be SCHEMA.
|
|
|
|
| |
variables' in mutex ConditionVariables
|
| |
|
|
|
|
| |
threads, it doesn't since 3.2.0
|
|
|
|
| |
use for the current thread. fixes #5330
|
|
|
|
|
|
| |
Conflicts:
activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 3dbedd2 added NOT NULL constraints both to table
creation and modification. For creation the new default
makes sense, but the generic situation for changing a
table is that there exist records. Those records have
no creation or modification timestamps, and in the
general case you don't even know them, so when updating
a table these constraints are not going to work. See
a bug report for this use case in #3334.
|
| |
|
|
|
|
|
|
|
|
|
| |
Options is needed for some Rails extensions to determine when
referential integrity should be disabled
This reverts commit bcb466c543451dce69403aaae047295758589d8e.
Fixes #5052
|
| |
|
| |
|
| |
|
|
|
|
| |
Restoring ability to derive id/sequence from tables with nonstandard sequences for primary keys
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our schema.rb is being generated with an `add_index` line similar to this:
add_index "foo", ["foo", "bar"], :name => "xxx", :length => {"foo"=>8, "bar=>nil}
This is the same as it was on Rails 3.1.3, however, now when that
schema.rb is evaluated, its generating bad SQL in MySQL:
Mysql::Error: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax
to use near '))' at line 1: CREATE UNIQUE INDEX
`xxx` ON `foo` (`foo`(8), `bar`())
This commit adds a check for nil on the length attribute to prevent the
empty parens from being output.
Conflicts:
activerecord/test/cases/migration/index_test.rb
Signed-off-by: José Valim <jose.valim@gmail.com>
|
|
|
|
|
|
| |
'uninitialized constant ActiveRecord::Deprecation in Rails3.2.1'
Just a typo of 'ActiveSupport::...'
|
|
|
|
| |
Fix for SQLite binary data corrupter (to master branch)
|
|
|
|
| |
[MySQL] Fix GH #4754. Remove double-quote characters around PK when using sql_mode=ANSI_QUOTES
|
|
|
|
| |
[closes #4750]
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
index_name has been using the following expression
"index_#{table_name}_on_#{Array.wrap(options[:column]) * '_and_'}"
since at least 2006 (bc7f2315), and that's how they come out in my DB.
Please check that this is correct before merging into master, perhaps
I'm misunderstanding the section I changed.
|
| |
|
| |
|
| |
|
|
|
|
| |
Allows two models to use the same table but have different primary keys.
|
|
|
|
|
|
|
|
|
|
| |
It was a bad idea to rescue exceptions here. This can interfere with
transaction rollbacks which seems to be the cause of current CI
failure.
Instead, each adapter should implement its own DB-specific O(1)
implementation, and we fall back on the generic, slower, implementation
otherwise.
|