Skip to content

Commit 4f12139

Browse files
authored
Merge pull request rails#33977 from marshall-lee/abandon-top-support
Abandon TOP support.
2 parents 4f3eb86 + 41b9291 commit 4f12139

File tree

10 files changed

+4
-27
lines changed

10 files changed

+4
-27
lines changed

activerecord/lib/arel/nodes/select_core.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
module Arel # :nodoc: all
44
module Nodes
55
class SelectCore < Arel::Nodes::Node
6-
attr_accessor :top, :projections, :wheres, :groups, :windows
6+
attr_accessor :projections, :wheres, :groups, :windows
77
attr_accessor :havings, :source, :set_quantifier
88

99
def initialize
1010
super()
1111
@source = JoinSource.new nil
12-
@top = nil
1312

1413
# https://ronsavage.github.io/SQL/sql-92.bnf.html#set%20quantifier
1514
@set_quantifier = nil
@@ -43,15 +42,14 @@ def initialize_copy(other)
4342

4443
def hash
4544
[
46-
@source, @top, @set_quantifier, @projections,
45+
@source, @set_quantifier, @projections,
4746
@wheres, @groups, @havings, @windows
4847
].hash
4948
end
5049

5150
def eql?(other)
5251
self.class == other.class &&
5352
self.source == other.source &&
54-
self.top == other.top &&
5553
self.set_quantifier == other.set_quantifier &&
5654
self.projections == other.projections &&
5755
self.wheres == other.wheres &&

activerecord/lib/arel/nodes/unary.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ def eql?(other)
3737
On
3838
Ordering
3939
RollUp
40-
Top
4140
}.each do |name|
4241
const_set(name, Class.new(Unary))
4342
end

activerecord/lib/arel/select_manager.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,8 @@ def with(*subqueries)
222222
def take(limit)
223223
if limit
224224
@ast.limit = Nodes::Limit.new(limit)
225-
@ctx.top = Nodes::Top.new(limit)
226225
else
227226
@ast.limit = nil
228-
@ctx.top = nil
229227
end
230228
self
231229
end

activerecord/lib/arel/visitors/depth_first.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ def unary(o)
3434
alias :visit_Arel_Nodes_Ordering :unary
3535
alias :visit_Arel_Nodes_Ascending :unary
3636
alias :visit_Arel_Nodes_Descending :unary
37-
alias :visit_Arel_Nodes_Top :unary
3837
alias :visit_Arel_Nodes_UnqualifiedColumn :unary
3938

4039
def function(o)

activerecord/lib/arel/visitors/dot.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ def unary(o)
8181
alias :visit_Arel_Nodes_Not :unary
8282
alias :visit_Arel_Nodes_Offset :unary
8383
alias :visit_Arel_Nodes_On :unary
84-
alias :visit_Arel_Nodes_Top :unary
8584
alias :visit_Arel_Nodes_UnqualifiedColumn :unary
8685
alias :visit_Arel_Nodes_Preceding :unary
8786
alias :visit_Arel_Nodes_Following :unary

activerecord/lib/arel/visitors/mssql.rb

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,6 @@ def initialize(*)
1212

1313
private
1414

15-
# `top` wouldn't really work here. I.e. User.select("distinct first_name").limit(10) would generate
16-
# "select top 10 distinct first_name from users", which is invalid query! it should be
17-
# "select distinct top 10 first_name from users"
18-
def visit_Arel_Nodes_Top(o)
19-
""
20-
end
21-
2215
def visit_Arel_Visitors_MSSQL_RowNumber(o, collector)
2316
collector << "ROW_NUMBER() OVER (ORDER BY "
2417
inject_join(o.children, collector, ", ") << ") as _row_num"

activerecord/lib/arel/visitors/to_sql.rb

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,6 @@ def visit_Arel_Nodes_SelectOptions(o, collector)
237237
def visit_Arel_Nodes_SelectCore(o, collector)
238238
collector << "SELECT"
239239

240-
collector = maybe_visit o.top, collector
241-
242240
collector = maybe_visit o.set_quantifier, collector
243241

244242
collect_nodes_for o.projections, collector, SPACE
@@ -405,11 +403,6 @@ def visit_Arel_Nodes_Limit(o, collector)
405403
visit o.expr, collector
406404
end
407405

408-
# FIXME: this does nothing on most databases, but does on MSSQL
409-
def visit_Arel_Nodes_Top(o, collector)
410-
collector
411-
end
412-
413406
def visit_Arel_Nodes_Lock(o, collector)
414407
visit o.expr, collector
415408
end

activerecord/test/cases/arel/select_manager_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,15 @@ def test_join_sources
131131
right = table.alias
132132
mgr = table.from
133133
mgr.join(right).on("omg")
134-
mgr.to_sql.must_be_like %{ SELECT FROM "users" INNER JOIN "users" "users_2" ON omg }
134+
mgr.to_sql.must_be_like %{ SELECT FROM "users" INNER JOIN "users" "users_2" ON omg }
135135
end
136136

137137
it "converts to sqlliterals with multiple items" do
138138
table = Table.new :users
139139
right = table.alias
140140
mgr = table.from
141141
mgr.join(right).on("omg", "123")
142-
mgr.to_sql.must_be_like %{ SELECT FROM "users" INNER JOIN "users" "users_2" ON omg AND 123 }
142+
mgr.to_sql.must_be_like %{ SELECT FROM "users" INNER JOIN "users" "users_2" ON omg AND 123 }
143143
end
144144
end
145145
end

activerecord/test/cases/arel/visitors/depth_first_test.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ def test_raises_with_object
3333
Arel::Nodes::Ordering,
3434
Arel::Nodes::StringJoin,
3535
Arel::Nodes::UnqualifiedColumn,
36-
Arel::Nodes::Top,
3736
Arel::Nodes::Limit,
3837
Arel::Nodes::Else,
3938
].each do |klass|

activerecord/test/cases/arel/visitors/dot_test.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ def test_named_function
3737
Arel::Nodes::Offset,
3838
Arel::Nodes::Ordering,
3939
Arel::Nodes::UnqualifiedColumn,
40-
Arel::Nodes::Top,
4140
Arel::Nodes::Limit,
4241
].each do |klass|
4342
define_method("test_#{klass.name.gsub('::', '_')}") do

0 commit comments

Comments
 (0)