rails/activerecord/test/models
Ryuta Kamizono 699b64ab63 Improve WhereClause#ast to make concise Arel ast
If only one Arel node exist, wrapping a node by `And` node is obviously
redundant, make concise Arel ast will improve performance for visiting
the ast (about 20% faster for complex ast case).

```ruby
class Post < ActiveRecord::Base
end

posts = (0..500).map { |i| Post.where(id: i) }

Benchmark.ips do |x|
  x.report("inject scopes") { posts.inject { |res, scope| res.or(scope) }.to_sql }
end
```

Before:

```
Warming up --------------------------------------
      where with ids     8.000  i/100ms
Calculating -------------------------------------
      where with ids     80.416  (± 2.5%) i/s -    408.000  in   5.078118s
```

After:

```
Warming up --------------------------------------
      where with ids     9.000  i/100ms
Calculating -------------------------------------
      where with ids     96.126  (± 2.1%) i/s -    486.000  in   5.058960s
```
2020-04-25 18:46:10 +09:00
..
admin Update prefix and allow suffix options for store accessors 2018-06-12 07:10:09 -07:00
autoloadable Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
publisher Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
account.rb Ensure Contextual validations fire on associations 2019-10-04 12:17:53 +01:00
admin.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
aircraft.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
arunit2_model.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
author.rb Avoid extraneous preloading when loading across has_one associations 2020-01-08 08:14:04 +13:00
auto_id.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
binary.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
bird.rb Revert "Merge pull request #35186 from kamipo/fix_leaking_scope_on_relation_create" 2019-02-15 12:06:45 +09:00
book.rb Allow AR::Enum definitions with boolean values 2019-12-24 07:05:42 -10:00
boolean.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
bulb.rb Allow extra scoping in callbacks when create on association relation 2020-04-10 16:10:49 +09:00
cake_designer.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
car.rb Fix unscoping association scope on joins not to raise an error 2020-04-16 00:34:41 +09:00
carrier.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
cat.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
categorization.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
category.rb Fix reset of the source association when through association is loaded 2019-02-20 13:48:51 +02:00
chef.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
citation.rb Eager loading/preloading should be worked regardless of large number of records 2018-09-12 01:11:38 +09:00
club.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
college.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
column_name.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
column.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
comment.rb Check that entire collection has been loaded before short circuiting 2019-11-19 15:32:36 -06:00
company_in_module.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
company.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
computer.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
contact.rb Deduplicate various Active Record schema cache structures 2019-06-03 13:31:42 +02:00
content.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
contract.rb Fix pluck and select with custom attributes 2019-02-13 02:47:46 +09:00
country.rb create_table with :primary_key option has no effect if id: false is given 2018-10-27 22:57:16 +09:00
course.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
customer_carrier.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
customer.rb Remove unused/missing to_money converter in the test/doc 2018-01-29 16:45:29 +09:00
dashboard.rb Ensure custom PK types are casted in through reflection queries 2019-08-07 16:27:33 -04:00
default.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
department.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
developer.rb Reload schema after ignored_columns reassignment 2020-04-23 07:50:06 +02:00
dog_lover.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
dog.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
doubloon.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
drink_designer.rb Polymorphic has_one touch: Reset association cache result after create transaction 2019-07-31 05:59:23 +02:00
edge.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
electron.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
engine.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
entrant.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
essay.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
event.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
eye.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
face.rb Fix comment for "broken" inverse_of associations [ci skip] 2019-05-28 18:22:22 +02:00
family_tree.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
family.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
friendship.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
frog.rb Merge pull request #30956 from CJStadler/with-lock-changed-deprecation 2018-03-28 13:11:01 -04:00
guid.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
guitar.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
hotel.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
image.rb :polymorphic, :as, and :foreign_type are valid for polymorphic association 2019-11-10 10:54:58 +09:00
interest.rb Don't run callbacks on has_many inverse add 2019-10-10 16:18:13 -04:00
invoice.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
item.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
job.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
joke.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
keyboard.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
legacy_thing.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
lesson.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
line_item.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
liquid.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
man.rb Don't run callbacks on has_many inverse add 2019-10-10 16:18:13 -04:00
matey.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
measurement.rb This PR adds support to retrieve partitioned indexes when asking for 2020-02-06 07:36:44 +02:00
member_detail.rb Using existing models for building multiple has_one through tests 2018-04-22 04:16:44 +09:00
member_type.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
member.rb Ensure to calculate column aliases after all table aliases are constructed 2018-06-19 22:21:51 +09:00
membership.rb allow table name and direction in string order arg 2017-11-09 22:41:33 +10:30
mentor.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
minimalistic.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
minivan.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
mixed_case_monkey.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
molecule.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
mouse.rb Don't validate non dirty association targets 2019-07-15 18:21:20 +01:00
movie.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
node.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
non_primary_key.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
notification.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
numeric_data.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
order.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
organization.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
other_dog.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
owner.rb try using regexes 2017-11-09 22:42:15 +10:30
parrot.rb Exercise HABTM fixtures with foreign key constraints 2018-10-30 11:08:41 +09:00
person.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
personal_legacy_thing.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
pet_treasure.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
pet.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
pirate.rb Ensure Contextual validations fire on associations 2019-10-04 12:17:53 +01:00
possession.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
post.rb Fix merging left_joins to maintain its own join_type context 2019-04-27 21:43:57 +09:00
price_estimate.rb Fix numericality validator not to be affected by custom getter 2018-08-13 23:28:46 +09:00
professor.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
project.rb try using regexes 2017-11-09 22:42:15 +10:30
publisher.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
randomly_named_c1.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
rating.rb Maintain extra joins for string or complex arel conditions 2019-10-04 13:29:18 +09:00
reader.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
recipe.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
record.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
reference.rb Ensure StatementCache#execute never raises RangeError 2019-01-18 16:01:14 +09:00
reply.rb Raise deprecation for calling [:f] = 'b' or [:f] << 'b' 2019-03-31 22:59:12 +08:00
section.rb Fix circular autosave: true 2018-07-23 14:53:27 -07:00
seminar.rb Fix circular autosave: true 2018-07-23 14:53:27 -07:00
session.rb Fix circular autosave: true 2018-07-23 14:53:27 -07:00
ship_part.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
ship.rb Ensure Contextual validations fire on associations 2019-10-04 12:17:53 +01:00
shop_account.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
shop.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
speedometer.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
sponsor.rb Make reflection.klass raise if polymorphic? not to be misused 2018-02-19 00:11:29 +09:00
squeak.rb Don't validate non dirty association targets 2019-07-15 18:21:20 +01:00
string_key_object.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
student.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
subscriber.rb Ensure custom PK types are casted in through reflection queries 2019-08-07 16:27:33 -04:00
subscription.rb Ensure custom PK types are casted in through reflection queries 2019-08-07 16:27:33 -04:00
tag.rb Fix newly added reflection order when redefining association 2018-01-04 22:55:16 +09:00
tagging.rb Don't update counter cache when through record was not destroyed 2018-01-14 20:46:19 +00:00
task.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
topic.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
toy.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
traffic_light.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
treasure.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
treaty.rb create_table with :primary_key option has no effect if id: false is given 2018-10-27 22:57:16 +09:00
tree.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
tuning_peg.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
tyre.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
user.rb Allow token length configuration for has_secure_token method 2019-04-09 17:25:50 -04:00
uuid_child.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
uuid_item.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
uuid_parent.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
vegetables.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
vertex.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
warehouse_thing.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
wheel.rb Fix touch option to behave consistently with Persistence#touch method 2018-06-18 19:08:41 +09:00
without_table.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
zine.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00