diff options
author | Vladimir Kochnev <hashtable@yandex.ru> | 2018-09-25 14:54:03 +0400 |
---|---|---|
committer | Vladimir Kochnev <hashtable@yandex.ru> | 2018-09-25 15:39:14 +0400 |
commit | 41b92914f89be855cc6af768f13fd5fc53c967fa (patch) | |
tree | 7ee8310a3727a51a8a7f5e2bcf95427488930057 /activerecord/lib/arel/visitors/depth_first.rb | |
parent | 4f3eb86ffec8ebc4faea3143dda8ebb5aad74d08 (diff) | |
download | rails-41b92914f89be855cc6af768f13fd5fc53c967fa.tar.gz rails-41b92914f89be855cc6af768f13fd5fc53c967fa.tar.bz2 rails-41b92914f89be855cc6af768f13fd5fc53c967fa.zip |
Abandon TOP support.
Initially, `TOP` was introduced to support `limit` for MSSQL database.
Unlike PostgreSQL/MySQL/SQLite, MSSQL does not have native `LIMIT`/`OFFSET` support.
The commit adding `TOP` is 1a246f71616cf246a75ef6cbdb56032e43d4e643.
However, it figured out that `TOP` implementation was weak and it's not sufficient
to also support `OFFSET`, then `TOP` was substituted with
`ROW_NUMBER()` subquery in be48ed3071fd6524d0145c4ad3faeb4aafe3eda3.
This is a well known trick in MSSQL -
https://stackoverflow.com/questions/2135418/equivalent-of-limit-and-offset-for-sql-server.
So now we don't need this `visit_Arel_Nodes_Top` at all.
It does nothing useful but also adds an extra space after `SELECT` when `LIMIT` is being
used for **any** database.
Diffstat (limited to 'activerecord/lib/arel/visitors/depth_first.rb')
-rw-r--r-- | activerecord/lib/arel/visitors/depth_first.rb | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/activerecord/lib/arel/visitors/depth_first.rb b/activerecord/lib/arel/visitors/depth_first.rb index bcf8f8f980..5948622aea 100644 --- a/activerecord/lib/arel/visitors/depth_first.rb +++ b/activerecord/lib/arel/visitors/depth_first.rb @@ -34,7 +34,6 @@ module Arel # :nodoc: all alias :visit_Arel_Nodes_Ordering :unary alias :visit_Arel_Nodes_Ascending :unary alias :visit_Arel_Nodes_Descending :unary - alias :visit_Arel_Nodes_Top :unary alias :visit_Arel_Nodes_UnqualifiedColumn :unary def function(o) |