diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2018-11-13 17:21:58 -0500 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2018-11-13 17:37:05 -0500 |
commit | 3dea7f0615144e891d4122697638db735fbea71d (patch) | |
tree | bb758058b7d54787afac9498f763b7c9b489b0b2 /activerecord/test/cases | |
parent | 6741e70518b55c4bbd7a53346b5937319a31a15f (diff) | |
parent | 63dd8d8e12edb25d8d5bac324aacb1caf05bbe22 (diff) | |
download | rails-3dea7f0615144e891d4122697638db735fbea71d.tar.gz rails-3dea7f0615144e891d4122697638db735fbea71d.tar.bz2 rails-3dea7f0615144e891d4122697638db735fbea71d.zip |
Merge pull request #34437 from kbrock/union_all_paren
Fix: Arel now emits a single pair of parens for UNION and UNION ALL
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/arel/visitors/mysql_test.rb | 10 | ||||
-rw-r--r-- | activerecord/test/cases/arel/visitors/to_sql_test.rb | 22 |
2 files changed, 22 insertions, 10 deletions
diff --git a/activerecord/test/cases/arel/visitors/mysql_test.rb b/activerecord/test/cases/arel/visitors/mysql_test.rb index 9d3bad8516..dae98b0583 100644 --- a/activerecord/test/cases/arel/visitors/mysql_test.rb +++ b/activerecord/test/cases/arel/visitors/mysql_test.rb @@ -13,16 +13,6 @@ module Arel @visitor.accept(node, Collectors::SQLString.new).value end - it "squashes parenthesis on multiple unions" do - subnode = Nodes::Union.new Arel.sql("left"), Arel.sql("right") - node = Nodes::Union.new subnode, Arel.sql("topright") - assert_equal 1, compile(node).scan("(").length - - subnode = Nodes::Union.new Arel.sql("left"), Arel.sql("right") - node = Nodes::Union.new Arel.sql("topleft"), subnode - assert_equal 1, compile(node).scan("(").length - end - ### # :'( # http://dev.mysql.com/doc/refman/5.0/en/select.html#id3482214 diff --git a/activerecord/test/cases/arel/visitors/to_sql_test.rb b/activerecord/test/cases/arel/visitors/to_sql_test.rb index b6426a211e..680c26a9ab 100644 --- a/activerecord/test/cases/arel/visitors/to_sql_test.rb +++ b/activerecord/test/cases/arel/visitors/to_sql_test.rb @@ -480,6 +480,28 @@ module Arel end end + describe "Nodes::Union" do + it "squashes parenthesis on multiple unions" do + subnode = Nodes::Union.new Arel.sql("left"), Arel.sql("right") + node = Nodes::Union.new subnode, Arel.sql("topright") + assert_equal("( left UNION right UNION topright )", compile(node)) + subnode = Nodes::Union.new Arel.sql("left"), Arel.sql("right") + node = Nodes::Union.new Arel.sql("topleft"), subnode + assert_equal("( topleft UNION left UNION right )", compile(node)) + end + end + + describe "Nodes::UnionAll" do + it "squashes parenthesis on multiple union alls" do + subnode = Nodes::UnionAll.new Arel.sql("left"), Arel.sql("right") + node = Nodes::UnionAll.new subnode, Arel.sql("topright") + assert_equal("( left UNION ALL right UNION ALL topright )", compile(node)) + subnode = Nodes::UnionAll.new Arel.sql("left"), Arel.sql("right") + node = Nodes::UnionAll.new Arel.sql("topleft"), subnode + assert_equal("( topleft UNION ALL left UNION ALL right )", compile(node)) + end + end + describe "Nodes::NotIn" do it "should know how to visit" do node = @attr.not_in [1, 2, 3] |