rails/activerecord/lib/arel/nodes
Jean Boussier bfcc13ab7c Arel: make Or nodes "Nary" like And
Fix: https://github.com/rails/rails/issues/51386

This significantly reduce the depth of the tree for large `OR`
conditions. I was initially a bit on the fence about that fix,
but given that `And` is already implemented this way, I see no
reasons not to do the same.

Amusingly, the reported repro script now makes SQLite fail:

```ruby
SQLite3::SQLException: Expression tree is too large (maximum depth 1000)
```
2024-04-04 14:59:56 +02:00
..
ascending.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
binary.rb Arel: make Or nodes "Nary" like And 2024-04-04 14:59:56 +02:00
bind_param.rb Refactor Arel node Casted, Quoted, and BindParam 2020-04-28 16:26:18 +09:00
bound_sql_literal.rb Relation#where build BoundSqlLiteral rather than eagerly interpolate 2024-02-21 13:22:55 +01:00
case.rb Make And and Case into expression nodes 2019-01-24 14:35:52 -05:00
casted.rb Avoid extra BindParam allocation to generate placeholder in queries 2021-03-02 18:09:05 +09:00
comment.rb Add Relation#annotate for SQL commenting 2019-03-21 20:30:56 -07:00
count.rb Remove math module from count 2018-04-25 17:14:07 +01:00
cte.rb Adds Arel::Nodes::Cte for use in WITH expressions 2023-05-24 19:19:21 -04:00
delete_statement.rb Use nested queries when doing UPDATE in myslq and GROUP_BY and HAVING clauses are present. 2021-11-01 13:27:44 -04:00
descending.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
equality.rb IsDistinctFrom is not equality node 2020-06-19 16:37:37 +09:00
extract.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
false.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
filter.rb Add nodoc to Arel filter classes. 2022-11-13 01:34:30 +01:00
fragments.rb Add ability to concatenate Arel.sql fragments 2023-01-19 09:27:05 +00:00
full_outer_join.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
function.rb Arel: Add support for FILTER clause (SQL:2003) 2021-07-20 15:17:04 +03:00
grouping.rb Refactor fetch_attribute 2020-03-13 13:38:32 -04:00
homogeneous_in.rb Fix HomogeneousIn for serialized attributes 2023-11-09 15:26:13 -06:00
in.rb Implement equality? rather than inheriting Equality for In node 2020-06-21 07:35:17 +09:00
infix_operation.rb Use symbol consistently for operator in InfixOperation 2020-05-18 08:02:00 +09:00
inner_join.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
insert_statement.rb Allow statement nodes' initializer takes a table 2021-03-05 02:43:55 +09:00
join_source.rb Fix docs to replace http with https in activerecord [ci skip] 2019-08-26 22:34:33 +09:00
leading_join.rb Move Arel::Nodes::LeadingJoin into arel. 2022-11-13 01:23:29 +01:00
matches.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
named_function.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
nary.rb Arel: make Or nodes "Nary" like And 2024-04-04 14:59:56 +02:00
node_expression.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
node.rb Arel: make Or nodes "Nary" like And 2024-04-04 14:59:56 +02:00
ordering.rb Properly support reverse_order on relations with nulls_first or nulls_last calls 2020-09-08 11:20:46 -04:00
outer_join.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
over.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
regexp.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
right_outer_join.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
select_core.rb Allow select statement node's initializer takes a table 2021-03-08 02:54:10 +09:00
select_statement.rb Allow select statement node's initializer takes a table 2021-03-08 02:54:10 +09:00
sql_literal.rb Retry known idempotent SELECT queries on connection-related exceptions 2024-03-26 09:25:55 -04:00
string_join.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
table_alias.rb Adds Arel::Nodes::Cte for use in WITH expressions 2023-05-24 19:19:21 -04:00
terminal.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
true.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
unary_operation.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
unary.rb Allow #nulls_first and #nulls_last in PostgreSQL 2019-12-31 15:59:59 -05:00
unqualified_column.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
update_statement.rb Use nested queries when doing UPDATE in myslq and GROUP_BY and HAVING clauses are present. 2021-11-01 13:27:44 -04:00
values_list.rb Get rid of Arel::Nodes::Values 2019-03-18 03:57:16 +09:00
window.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30
with.rb Arel: :nodoc: all 2018-02-24 18:11:47 +10:30