1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Merge branch 'master' into collector

* master:
  removing unused join_sql method
This commit is contained in:
Aaron Patterson 2014-04-08 16:27:45 -07:00
commit 462a0197b2
6 changed files with 7 additions and 110 deletions

View file

@ -29,6 +29,7 @@ lib/arel/nodes/descending.rb
lib/arel/nodes/equality.rb
lib/arel/nodes/extract.rb
lib/arel/nodes/false.rb
lib/arel/nodes/full_outer_join.rb
lib/arel/nodes/function.rb
lib/arel/nodes/grouping.rb
lib/arel/nodes/in.rb
@ -40,6 +41,7 @@ lib/arel/nodes/named_function.rb
lib/arel/nodes/node.rb
lib/arel/nodes/outer_join.rb
lib/arel/nodes/over.rb
lib/arel/nodes/right_outer_join.rb
lib/arel/nodes/select_core.rb
lib/arel/nodes/select_statement.rb
lib/arel/nodes/sql_literal.rb
@ -65,11 +67,9 @@ lib/arel/visitors/depth_first.rb
lib/arel/visitors/dot.rb
lib/arel/visitors/ibm_db.rb
lib/arel/visitors/informix.rb
lib/arel/visitors/join_sql.rb
lib/arel/visitors/mssql.rb
lib/arel/visitors/mysql.rb
lib/arel/visitors/oracle.rb
lib/arel/visitors/order_clauses.rb
lib/arel/visitors/postgresql.rb
lib/arel/visitors/sqlite.rb
lib/arel/visitors/to_sql.rb
@ -120,7 +120,6 @@ test/visitors/test_dispatch_contamination.rb
test/visitors/test_dot.rb
test/visitors/test_ibm_db.rb
test/visitors/test_informix.rb
test/visitors/test_join_sql.rb
test/visitors/test_mssql.rb
test/visitors/test_mysql.rb
test/visitors/test_oracle.rb

View file

@ -215,13 +215,6 @@ module Arel
end
alias limit= take
def join_sql
return nil if @ctx.source.right.empty?
sql = visitor.dup.extend(Visitors::JoinSql).accept @ctx
Nodes::SqlLiteral.new sql
end
def join_sources
@ctx.source.right
end

View file

@ -6,7 +6,6 @@ require 'arel/visitors/postgresql'
require 'arel/visitors/mysql'
require 'arel/visitors/mssql'
require 'arel/visitors/oracle'
require 'arel/visitors/join_sql'
require 'arel/visitors/where_sql'
require 'arel/visitors/dot'
require 'arel/visitors/ibm_db'

View file

@ -1,19 +0,0 @@
module Arel
module Visitors
###
# This class produces SQL for JOIN clauses but omits the "single-source"
# part of the Join grammar:
#
# http://www.sqlite.org/syntaxdiagrams.html#join-source
#
# This visitor is used in SelectManager#join_sql and is for backwards
# compatibility with Arel V1.0
module JoinSql
private
def visit_Arel_Nodes_SelectCore o
o.source.right.map { |j| visit j }.join ' '
end
end
end
end

View file

@ -584,9 +584,8 @@ module Arel
aliaz = table.alias
manager = Arel::SelectManager.new Table.engine
manager.from Nodes::InnerJoin.new(aliaz, table[:id].eq(aliaz[:id]))
manager.join_sql.must_be_like %{
INNER JOIN "users" "users_2" "users"."id" = "users_2"."id"
}
assert_match 'INNER JOIN "users" "users_2" "users"."id" = "users_2"."id"',
manager.to_sql
end
it 'returns outer join sql' do
@ -594,9 +593,8 @@ module Arel
aliaz = table.alias
manager = Arel::SelectManager.new Table.engine
manager.from Nodes::OuterJoin.new(aliaz, table[:id].eq(aliaz[:id]))
manager.join_sql.must_be_like %{
LEFT OUTER JOIN "users" "users_2" "users"."id" = "users_2"."id"
}
assert_match 'LEFT OUTER JOIN "users" "users_2" "users"."id" = "users_2"."id"',
manager.to_sql
end
it 'can have a non-table alias as relation name' do
@ -619,12 +617,7 @@ module Arel
it 'returns string join sql' do
manager = Arel::SelectManager.new Table.engine
manager.from Nodes::StringJoin.new(Nodes.build_quoted('hello'))
manager.join_sql.must_be_like %{ 'hello' }
end
it 'returns nil join sql' do
manager = Arel::SelectManager.new Table.engine
manager.join_sql.must_be_nil
assert_match "'hello'", manager.to_sql
end
end

View file

@ -1,68 +0,0 @@
require 'helper'
module Arel
module Visitors
describe 'the join_sql visitor' do
before do
@visitor = ToSql.new Table.engine.connection
@visitor.extend(JoinSql)
end
it 'should visit string join' do
sql = @visitor.accept Nodes::StringJoin.new(Nodes.build_quoted('omg'))
sql.must_be_like "'omg'"
end
describe 'inner join' do
it 'should visit left if left is a join' do
t = Table.new :users
sm = t.select_manager
sm.join(t).on(t[:id]).join(t).on(t[:id])
sm.join_sql.must_be_like %{
INNER JOIN "users" ON "users"."id"
INNER JOIN "users" ON "users"."id"
}
end
end
describe 'FULL outer join' do
it 'should visit left if left is a join' do
t = Table.new :users
sm = t.select_manager
sm.join(t, Nodes::FullOuterJoin).on(t[:id]).join(
t, Nodes::FullOuterJoin).on(t[:id])
sm.join_sql.must_be_like %{
FULL OUTER JOIN "users" ON "users"."id"
FULL OUTER JOIN "users" ON "users"."id"
}
end
end
describe 'outer join' do
it 'should visit left if left is a join' do
t = Table.new :users
sm = t.select_manager
sm.join(t, Nodes::OuterJoin).on(t[:id]).join(
t, Nodes::OuterJoin).on(t[:id])
sm.join_sql.must_be_like %{
LEFT OUTER JOIN "users" ON "users"."id"
LEFT OUTER JOIN "users" ON "users"."id"
}
end
end
describe 'right outer join' do
it 'should visit left if left is a join' do
t = Table.new :users
sm = t.select_manager
sm.join(t, Nodes::RightOuterJoin).on(t[:id]).join(
t, Nodes::RightOuterJoin).on(t[:id])
sm.join_sql.must_be_like %{
RIGHT OUTER JOIN "users" ON "users"."id"
RIGHT OUTER JOIN "users" ON "users"."id"
}
end
end
end
end
end