| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
Deprecate passing ranges to `#in` and `#not_in`
|
| | |/ / / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
The goal of these methods should be to generate in nodes, not handle
every possible permutation of more than one value. The `#between` and
`#not_between` methods have been extracted, which better represent the
semantics of handling ranges in SQL.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
These methods duplicate a lot of logic from the other predications. We
can just use those methods directly, and only build nodes with the same
name in our method directly. We've already had one bug that came from
building nodes directly, rather than using the proper predicate.
|
| | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
`#not_in` with a range should respect proper precedence
|
| | | |/ / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Currently, doing
```ruby
relation[:id].not_eq(4).and(relation[:id].not_in(1..3))
```
will generate
```sql
"id" != 4 AND "id" < 1 OR "id" > 3
```
Which would incorrectly include records with an id of 4, as the OR
statement has higher precidence than the AND statement. The `or`
method on `Node` properly groups the statement in parenthesis.
|
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
Improve test coverage for `#in` and `#not_in`
|
| | | |/ / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
These methods are going to go through some heavy refactoring, and moving
logic around. This adds missing tests for each of the branches on the
predicate.
|
| | |\ \ \ \ \ \ \ \
| | | |/ / / / / / /
| | |/| | | | | | | |
Binary nodes should not generate the same hash as nodes of other classes
|
| | |/ / / / / / / |
|
| | |\ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
Completes 08e6491 in reusing `maybe_visit`
|
| | |/ / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
:sweat: I don't know why the tests did not fail, but to keep
the same syntax as before, `collector =` is required.
Maybe `visit` changes `collector` in-place, so the result is the
same, but since I'm not sure about the side effects, I think this
PR is needed to. Sorry! :sweat:
|
| | |\ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
Reuse `maybe_visit` method
|
| | |/ / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
This commit simply removes duplicated code by reusing the
existing `maybe_visit` method.
|
| | |\ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
`Expresssions` => `Expressions`
|
| | |/ / / / / / / |
|
| | |\ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
{Matches,DoesNotMatch} support the ESCAPE clause
|
| | |/ / / / / / / |
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
visitors are not shared among threads, so any mutations to the cache
should be OK. The cache is also pre-populated on construction, but we
should pull that out so we can share the cache among visitors in the
future.
|
| | | | | | | | | |
|
| | |\ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
Fix set visiting spec
|
| | |/ / / / / / / |
|
| | |\ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
Informix versions < 10 use 'FIRST' keyword instead of 'LIMIT'
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Still supported in versions 10+
|
| | |\ \ \ \ \ \ \ \
| | | |/ / / / / / /
| | |/| | | | | | | |
Added a visitor for Set objects
|
| | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
Remove unused @alias, being referenced in hashing.
|
| | |/ / / / / / / / |
|
| | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
Wrap group_by sql with a subquery for limiting rows in Oracle.
|
| | |/ / / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Fixes #128
|
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
`Extract#as` should not mutate the receiver
|
| | |/ / / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Fixes https://github.com/rails/rails/issues/16913
|
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
Add SelectManager#distinct_on to set/unset Arel::Nodes::DistinctOn quantifier
|
| | | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \ \
| | | | | | | | | | | |
| | | | | | | | | | | | |
Fix lt & lteq don't accept most of values.
|
| | | | | | | | | | | | |
|
| | | | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \ \ \
| | | |_|/ / / / / / / /
| | |/| | | | | | | | | |
Wrap nested Nodes::Grouping in brackets only once
|
| | | | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \ \ \
| | | |_|/ / / / / / / /
| | |/| | | | | | | | | |
Allow for alias omission in aggregate expressions
|
| | | | | | | | | | | | |
|
| | | | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | | |
| | | | | | | | | | | | | |
Fix typo `gt` means `>`
|
| | |/ / / / / / / / / / |
|
| | |/ / / / / / / / / |
|
| | |\ \ \ \ \ \ \ \ \
| | | | | | | | | | | |
| | | | | | | | | | | | |
Cleanup SelectManager Test
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
- Remove redundant `ast` variable creation
- Rename similar join tests name to what they actually test
- Move "joins itself" test to "joins" describe instead of defining describe block twice
- Move update manager statement tests in logical order
- Move `project` tests in logical order
|
| | | | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | | |
| | | | | | | | | | | | | |
Support for PARTITION BY in window
|