diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-07-19 18:10:04 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-07-22 08:40:16 +0900 |
commit | a265d4b29cf9c1be84603ec53a6f8b17b53321a9 (patch) | |
tree | 1a6201eaaedb9c03d3c6b388229731268f089998 /activerecord/lib/active_record/relation.rb | |
parent | af08044d6a6aa87d3b389f63c78564be2f60b1ab (diff) | |
download | rails-a265d4b29cf9c1be84603ec53a6f8b17b53321a9.tar.gz rails-a265d4b29cf9c1be84603ec53a6f8b17b53321a9.tar.bz2 rails-a265d4b29cf9c1be84603ec53a6f8b17b53321a9.zip |
Fix `COUNT(DISTINCT ...)` with `ORDER BY` and `LIMIT`
Since #26972, `ORDER BY` is kept if `LIMIT` is presented for
performance. But in most SQL servers (e.g. PostgreSQL, SQL Server, etc),
`ORDER BY` expressions must appear in select list for `SELECT DISTINCT`.
We should not replace existing select list in that case.
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index 90e4fe98d5..7b4e44f61c 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -648,6 +648,10 @@ module ActiveRecord @values == klass.unscoped.values end + def has_limit_or_offset? # :nodoc: + limit_value || offset_value + end + protected def load_records(records) |