| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix inconsistent the signature of finder methods for collection association
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`#second`, `#third`, etc finder methods was added in 03855e790de2224519f55382e3c32118be31eeff.
But the signature of these methods is inconsistent with the original
finder methods. And also the signature of `#first` and `#last` methods
is different from the original. This commit fixes the inconsistency.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
kamipo/finder_bang_method_should_call_non_bang_method
Finder bang method should call non bang method
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
Otherwise CollectionProxy's bang methdos cannot respect dirty target.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Fix count which would sometimes force a DISTINCT
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The current behaviour of checking if there is a LEFT OUTER JOIN arel
node to detect if we are doing eager_loading is wrong. This problem
wasn't frequent before as only some pretty specific cases would add
a LEFT OUTER JOIN arel node. However, the recent new feature
left_outer_joins also add this node and made this problem happen
frequently.
Since in the perform_calculation function, we don't have access to
eager_loading information, I had to extract the logic for the distinct
out to the calculate method.
As I was in the file for left_outer_join tests, I fixed a few that had
bugs and I replaced some that were really weak with something that
will catch more issues.
In relation tests, the first test I changed would have failed if it
had validated the hash returned by count instead of just checking how
many pairs were in it. This is because this merge of join currently
transforms the join node into an outer join node, which then made
count do a distinct. So before this change, the return was
{1=>1, 4=>1, 5=>1}.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
kamipo/dont_handle_as_associated_predicate_if_table_has_column
Do not handle as an associated predicate if a table has the column
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If handled as an associated predicate even though a table has the
column, will generate invalid SQL by valid column name treated as a
table name.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Remove internal `sanitize` method
|
| | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | | |
Currently internal `sanitize`/`quote_value` method is only used for `quoted_id`.
Simply it is enough to use `connection.quote` public API instead.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Makes touch_later respects no_touching policy
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
`where` by `array|range` attribute with array or range value
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently predicate builder cannot build a predicate for `array|range`
attribute. This commit fixes the issue.
Related #25671.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
When calling association.find RecordNotFound is now raised with the s…
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
argument as when we do it in Record.find (primary_key, id and model).
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Avoid to allow unused splat args for `t.timestamps` in `create_table`
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Unfortunately `t.timestamps` in `create_table` allows unused splat args.
But the same one in `change_table` does not allow them.
This commit fixes the inconsistent behavior.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
`CollectionProxy#take` should respect dirty target
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
`#first`, `#second`, ..., `#last` methods respects dirty target. But
`#take` doesn't respect it. This commit fixes the inconsistent behavior.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Support multiple indexes on the same column when loading the schema
|
| | |_|_|/ / /
| |/| | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Style/SpaceBeforeBlockBraces
Style/SpaceInsideBlockBraces
Style/SpaceInsideHashLiteralBraces
Fix all violations in the repository.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Consolidate `ActiveRecord::TestCase` and `ActiveSupport::TestCase` in AR test cases
|
| | |/ / / / /
| |/| | | | |
| | | | | | |
| | | | | | | |
test cases
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | | |
Fixes #26122
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Use `ActiveRecord::TestCase` rather than `ActiveSupport::TestCase` in AR test cases
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | | |
test cases
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Creating a new Topic class instead of class_eval for the existing one
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
since it affects another test `ReflectionTest#test_read_attribute_names`
Address #26099
|
|/ / / / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If you call `remove_index` with wrong options, say a type, like I did,
you get:
```
== 20160810072541 RemoveUniqueIndexOnGoals: migrating =========================
-- remove_index(:goal, {:coulmn=>:kid_id, :unique=>true})
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
undefined method `ArgumentError' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x007fb7dec91b28>
```
What happened is that I mistyped column (coulmn) and got a
`NoMethodError`, because of a missing comma during the raise. This made
Ruby think we're calling the method `ArgumentError`.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Hash syntax auto-correcting breaks alignments. 411ccbdab2608c62aabdb320d52cb02d446bb39c
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
also test `ROWNUM <=` for Oracle 11g or older version of Oracle and Oracle visitor
Oracle 12c database and Arel Oracle12 visitor supports better top N query.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
A few have been left for aesthetic reasons, but have made a pass
and removed most of them.
Note that if the method `foo` returns an array, `foo << 1`
is a regular push, nothing to do with assignments, so
no self required.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Some case expressions remain, need to think about those ones.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
Fix `enum` with `alias_attribute`
|
| |/ / /
| | | |
| | | |
| | | | |
Fixes #25892.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
So this bug is kinda funky. The code path is basically "if we weren't passed an
instance of the class we compose to, and we have a converter, call that".
Ignoring the hash case for a moment, everything after that was roughly intended
to be the "else" clause, meaning that we are expected to have an instance of
the class we compose to. Really, we should be blowing up in that case, as we
can give a much better error message than what they user will likely get (e.g.
`NameError: No method first for String` or something). Still, Ruby is duck
typed, so if the object you're assigning responds to the same methods as the
type you compose to, knock yourself out.
The hash case was added in 36e9be8 to remove a bunch of special cased code from
multiparameter assignment. I wrongly assumed that the only time we'd get a hash
there is in that case. Multiparameter assignment will construct a very specific
hash though, where the keys are integers, and we will have a set of keys
covering `1..part.size` exactly. I'm pretty sure this could actually be passed
around as an array, but that's a different story. Really I should convert this
to something like `class MultiParameterAssignment < Hash; end`, which I might
do soon. However for a change that I'm willing to backport to 4-2-stable, this
is what I want to go with for the time being.
Fixes #25978
|
| |_|/
|/| | |
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | | |
Introduce new ActiveRecord transaction error classes
Closes #26018
|
| | | |
|
|\ \ \
| | | |
| | | | |
`FinderMethods` uses `records` (`load_target`) when `loaded?` is true
|
| | | | |
|