| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
[ci skip] Fix typo `beacuse` -> `because`
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
To avoid newly adding the warnings, which are frequently addressed.
ac721c855203ac7570545c0e85fe086f8e94d94a
951383bd9afa4a71c17e56d1d4eb5866da851483
8a0f235fd3bd3f3c813fa7034c6d741831e55c3e
c33c03e80cbe9f27274b45fe55f93bad3af988fb
424b2019830ea4c08e86ba9ff9600aa23a54cb4f
|
|
|
|
| |
https://github.com/rails/rails/pull/35451#discussion_r262746834
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since #23461, all adapters supports prepared statements, so that clears
the prepared statements cache is no longer database specific.
Actually, I struggled to identify the cause of random CI failure in
#23461, that was missing `@statements.clear` in `clear_cache!`.
This extracts `clear_cache!` to ensure the common concerns in the
abstract adapter.
|
|/
|
|
| |
Enumerable#excluding
|
|
|
|
|
| |
Adds a method to ActiveRecord allowing records to be inserted in bulk without instantiating ActiveRecord models. This method supports options for handling uniqueness violations by skipping duplicate records or overwriting them in an UPSERT operation.
ActiveRecord already supports bulk-update and bulk-destroy actions that execute SQL UPDATE and DELETE commands directly. It also supports bulk-read actions through `pluck`. It makes sense for it also to support bulk-creation.
|
|
|
|
|
|
|
|
|
| |
Most existing tests expects `connection_handlers` has only one default
handler, but the test added at #34779 dirties that.
We need to reset `connection_handlers` to default in that case.
Closes #35471.
|
| |
|
|\
| |
| |
| |
| | |
Fix Getting Started guide to state the correct number of files created by the controller generator
[ci skip]
|
| |
| |
| |
| |
| |
| |
| |
| | |
In e8546aba904fb6685ef2e61f1623c64e699a2c9c, the Getting Started guide
was updated to reflect the removal of CoffeeScript stubs being generated
by the controller generator. However, the comment above the table of
generated files wasn't updated, so it incorrectly remained "This creates
five files and one empty directory". This fixes it to now say "This
creates four files and one empty directory".
|
|\ \
| |/
|/| |
Fix typo in test name
|
|/ |
|
|\
| |
| | |
Copy the forking isolated test runner from railties
|
| | |
|
| |
| |
| |
| |
| |
| | |
All the tests have a substantial chunk of identical setup effort (in
cases/helper.rb); this makes isolated tests run much faster, without any
change to the variety of how we load files.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Add `ActiveRecord::Base.connection.truncate` for SQLite3 adapter.
SQLite doesn't support `TRUNCATE TABLE`, but SQLite3 adapter can support
`ActiveRecord::Base.connection.truncate` by using `DELETE FROM`.
`DELETE` without `WHERE` uses "The Truncate Optimization",
see https://www.sqlite.org/lang_delete.html.
* Add `rails db:seed:replant` that truncates database tables and loads the seeds
Closes #34765
|
|\ \
| | |
| | | |
Fix typo in CHANGELOG.md [ci skip]
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/deprecate_validate_uniqueness_mismatched_collation
Deprecate mismatched collation comparison for uniquness validator
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In MySQL, the default collation is case insensitive. Since the
uniqueness validator enforces case sensitive comparison by default, it
frequently causes mismatched collation issues (performance, weird
behavior, etc) to MySQL users.
https://grosser.it/2009/12/11/validates_uniqness_of-mysql-slow/
https://github.com/rails/rails/issues/1399
https://github.com/rails/rails/pull/13465
https://github.com/gitlabhq/gitlabhq/commit/c1dddf8c7d947691729f6d64a8ea768b5c915855
https://github.com/huginn/huginn/pull/1330#discussion_r55152573
I'd like to deprecate the implicit default enforcing since I frequently
experienced the problems in code reviews.
Note that this change has no effect to sqlite3, postgresql, and
oracle-enhanced adapters which are implemented as case sensitive by
default, only affect to mysql2 adapter (I can take a work if sqlserver
adapter will support Rails 6.0).
|
|\ \
| | |
| | |
| | |
| | | |
bogdanvlviv/move-changelog-entry-about-reselect-method
Move changelog entry about `reselect` method to the section of the next release [ci skip]
|
|/ /
| |
| |
| |
| |
| |
| | |
Fixes https://github.com/rails/rails/pull/33611#discussion_r261549790
Related to https://3.basecamp.com/3076981/buckets/24956/chats/12416418@1631552581
[ci skip]
|
| |
| |
| |
| | |
Ref: https://travis-ci.org/rails/rails/jobs/501220262#L1194
|
| |
| |
| | |
Similarly to https://github.com/rails/webpacker/pull/1976
|
|\ \
| | |
| | | |
Fixed reselect throwing NoMethodError on ActiveRecord.
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Remove unnecessary `current_adapter?(:OracleAdapter)` for index length
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Follow up #35455, there are two more test cases unnecessary `if current_adapter?(:OracleAdapter)`
```ruby
$ ARCONN=oracle bin/test test/cases/associations/eager_test.rb -n test_include_has_many_using_primary_key
Using oracle
Run options: -n test_include_has_many_using_primary_key --seed 62842
.
Finished in 50.280024s, 0.0199 runs/s, 0.0398 assertions/s.
1 runs, 2 assertions, 0 failures, 0 errors, 0 skips
$
```
```
$ ARCONN=oracle bin/test test/cases/migration/index_test.rb -n test_add_index
Using oracle
Run options: -n test_add_index --seed 52034
.
Finished in 13.152620s, 0.0760 runs/s, 0.0000 assertions/s.
1 runs, 0 assertions, 0 failures, 0 errors, 0 skips
$
```
|
|\ \
| | |
| | | |
Oracle database can run `delete` with `order by` and`fetch first n rows only`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
rows only`
Since https://github.com/rails/arel/pull/337 Oracle adapter uses better
top N query using `fetch first n rows only`, which can remove this
unless condition.
* This commit passes with Oracle database
```ruby
$ ARCONN=oracle bin/test test/cases/relation/delete_all_test.rb -n test_delete_all_with_order_and_limit_deletes_subset_only
Using oracle
Run options: -n test_delete_all_with_order_and_limit_deletes_subset_only --seed 1081
.
Finished in 8.068626s, 0.1239 runs/s, 0.6197 assertions/s.
1 runs, 5 assertions, 0 failures, 0 errors, 0 skips
$
```
* SQL statement includes `ORDER BY` and `FETCH FIRST n ROWS ONLY`
```sql
Post Destroy (12.5ms) DELETE FROM "POSTS" WHERE "POSTS"."ID" IN (SELECT "POSTS"."ID" FROM "POSTS" WHERE "POSTS"."AUTHOR_ID" = :a1 ORDER BY "POSTS"."ID" ASC FETCH FIRST :a2 ROWS ONLY) [["author_id", 1], ["LIMIT", 1]]
```
|
|\ \ \
| | | |
| | | | |
Rails `DateTime` type is mapped to Oracle `TIMESTAMP` since Rails 5.0
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Kind of reverting https://github.com/rails/rails/commit/3a1cbc5c3b3bcb2de4be6e4469bb87b99759dc59
```
From: test/cases/date_test.rb @ line 26 :
21:
22: invalid_dates = [[2007, 11, 31], [1993, 2, 29], [2007, 2, 29]]
23:
24: valid_dates.each do |date_src|
25: topic = Topic.new("last_read(1i)" => date_src[0].to_s, "last_read(2i)" => date_src[1].to_s, "last_read(3i)" => date_src[2].to_s)
=> 26: binding.irb
27: assert_equal(topic.last_read, Date.new(*date_src))
28: end
29:
30: invalid_dates.each do |date_src|
31: assert_nothing_raised do
irb(#<DateTest:0x0000556618194668>):001:0> topic.last_read.class
=> Date
```
Refer rsim/oracle-enhanced#845
rails/rails#25897
|
|\ \ \
| |/ /
|/| | |
Oracle 12.2+ supports 128 byte identifier length
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
```ruby
$ ARCONN=oracle bin/test test/cases/migration/columns_test.rb -n test_rename_column_with_multi_column_index
... snip ...
F
Failure:
ActiveRecord::Migration::ColumnsTest#test_rename_column_with_multi_column_index [/home/yahonda/git/rails/activerecord/test/cases/migration/columns_test.rb:113]:
--- expected
+++ actual
@@ -1 +1 @@
-["i_test_models_hat_style_size"]
+["index_test_models_on_hat_style_and_size"]
```
Kind of reverting #9395
Refer https://github.com/rsim/oracle-enhanced/pull/1703
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
* activesupport(class_attribute): Use redefine_singleton_method
* activesupport(class_attribute): Use keyword arguments
* activesupport(class_attribute): Avoid unnecessary redefinition for default
|
|\ \
| | |
| | | |
Add test and change how format set in ActionMailer
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously this used self.formats= to set the format which render would
use to find templates. This worked, but was untested, and looked a
little confusing because it was doing the mutation within a loop.
This commit replaces the assignment with passing formats: [format] into
the render call, which makes it more obvious that that's the purpose of
the format. It also adds a test to verify the formats being used.
|
|\ \
| | |
| | | |
Allow nil format on templates
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This was using a model without a default scope what made the test don't
break anymore if the code is removed.
|
|\ \ \
| | | |
| | | | |
Relax table name detection in `from` to allow any extension like INDEX hint
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
#35360 allows table name qualified if `from` has original table name.
But that is still too strict. We have a valid use case that `from` with
INDEX hint (e.g. `from("comments USE INDEX (PRIMARY)")`).
So I've relaxed the table name detection in `from` to allow any
extension like INDEX hint.
Fixes #35359.
|
|\ \ \ \
| |/ / /
|/| | | |
Enable SQL statement cache for `find` on base class as with `find_by`
|
| | | |
| | | |
| | | |
| | | | |
Related and follows d333d85254d27cd572e6ecce8ee850c107a4f340.
|
|\ \ \ \
| | | | |
| | | | | |
Add reselect method
|
| | | | | |
|