Skip to content

Commit bd50953

Browse files
Merge branch 'union_fix'
2 parents acc482e + 9070a93 commit bd50953

2 files changed

Lines changed: 14 additions & 14 deletions

File tree

QueryBuilder.Tests/QueryBuilderTest.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ public void Union()
585585

586586
var c = Compile(mobiles);
587587

588-
Assert.Equal("SELECT * FROM [Phones] UNION (SELECT * FROM [Laptops])", c[0]);
588+
Assert.Equal("SELECT * FROM [Phones] UNION SELECT * FROM [Laptops]", c[0]);
589589

590590

591591
Assert.Equal("SELECT * FROM \"PHONES\" UNION SELECT * FROM \"LAPTOPS\"", c[3]);
@@ -600,21 +600,21 @@ public void UnionWithBindings()
600600

601601
var c = Compile(mobiles);
602602

603-
Assert.Equal("SELECT * FROM [Phones] UNION (SELECT * FROM [Laptops] WHERE [Type] = 'A')", c[0]);
604-
Assert.Equal("SELECT * FROM `Phones` UNION (SELECT * FROM `Laptops` WHERE `Type` = 'A')", c[1]);
603+
Assert.Equal("SELECT * FROM [Phones] UNION SELECT * FROM [Laptops] WHERE [Type] = 'A'", c[0]);
604+
Assert.Equal("SELECT * FROM `Phones` UNION SELECT * FROM `Laptops` WHERE `Type` = 'A'", c[1]);
605605

606606
Assert.Equal("SELECT * FROM \"PHONES\" UNION SELECT * FROM \"LAPTOPS\" WHERE \"TYPE\" = 'A'", c[3]);
607607
}
608608

609609
[Fact]
610610
public void RawUnionWithBindings()
611611
{
612-
var mobiles = new Query("Phones").UnionRaw("UNION (SELECT * FROM [Laptops] WHERE [Type] = ?)", "A");
612+
var mobiles = new Query("Phones").UnionRaw("UNION SELECT * FROM [Laptops] WHERE [Type] = ?", "A");
613613

614614
var c = Compile(mobiles);
615615

616-
Assert.Equal("SELECT * FROM [Phones] UNION (SELECT * FROM [Laptops] WHERE [Type] = 'A')", c[0]);
617-
Assert.Equal("SELECT * FROM `Phones` UNION (SELECT * FROM `Laptops` WHERE `Type` = 'A')", c[1]);
616+
Assert.Equal("SELECT * FROM [Phones] UNION SELECT * FROM [Laptops] WHERE [Type] = 'A'", c[0]);
617+
Assert.Equal("SELECT * FROM `Phones` UNION SELECT * FROM `Laptops` WHERE `Type` = 'A'", c[1]);
618618
}
619619

620620
[Fact]
@@ -627,7 +627,7 @@ public void MultipleUnion()
627627

628628
var c = Compile(mobiles);
629629

630-
Assert.Equal("SELECT * FROM [Phones] UNION (SELECT * FROM [Laptops]) UNION (SELECT * FROM [Tablets])",
630+
Assert.Equal("SELECT * FROM [Phones] UNION SELECT * FROM [Laptops] UNION SELECT * FROM [Tablets]",
631631
c[0]);
632632

633633

@@ -646,7 +646,7 @@ public void MultipleUnionWithBindings()
646646
var c = Compile(mobiles);
647647

648648
Assert.Equal(
649-
"SELECT * FROM [Phones] WHERE [Price] < 3000 UNION (SELECT * FROM [Laptops] WHERE [Price] > 1000) UNION (SELECT * FROM [Tablets] WHERE [Price] > 2000)",
649+
"SELECT * FROM [Phones] WHERE [Price] < 3000 UNION SELECT * FROM [Laptops] WHERE [Price] > 1000 UNION SELECT * FROM [Tablets] WHERE [Price] > 2000",
650650
c[0]);
651651

652652

@@ -667,7 +667,7 @@ public void MultipleUnionWithBindingsAndPagination()
667667
var c = Compile(mobiles);
668668

669669
Assert.Equal(
670-
"SELECT * FROM [Phones] WHERE [Price] < 3000 UNION (SELECT * FROM [Laptops] WHERE [Price] > 1000) UNION ALL (SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS [row_num] FROM [Tablets] WHERE [Price] > 2000) AS [results_wrapper] WHERE [row_num] BETWEEN 16 AND 30)",
670+
"SELECT * FROM [Phones] WHERE [Price] < 3000 UNION SELECT * FROM [Laptops] WHERE [Price] > 1000 UNION ALL SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS [row_num] FROM [Tablets] WHERE [Price] > 2000) AS [results_wrapper] WHERE [row_num] BETWEEN 16 AND 30",
671671
c[0]);
672672

673673

@@ -687,7 +687,7 @@ public void UnionWithCallbacks()
687687
var c = Compile(mobiles);
688688

689689
Assert.Equal(
690-
"SELECT * FROM [Phones] WHERE [Price] < 3000 UNION (SELECT * FROM [Laptops]) UNION ALL (SELECT * FROM [Tablets])",
690+
"SELECT * FROM [Phones] WHERE [Price] < 3000 UNION SELECT * FROM [Laptops] UNION ALL SELECT * FROM [Tablets]",
691691
c[0]);
692692

693693

@@ -710,15 +710,15 @@ public void UnionWithDifferentEngine()
710710
var c = Compile(mobiles);
711711

712712
Assert.Equal(
713-
"SELECT * FROM [Phones] WHERE [Price] < 300 EXCEPT (SELECT * FROM [Phones] WHERE NOT ([Os] = 'iOS')) UNION ALL (SELECT * FROM [Tablets] WHERE [Price] < 100)",
713+
"SELECT * FROM [Phones] WHERE [Price] < 300 EXCEPT SELECT * FROM [Phones] WHERE NOT ([Os] = 'iOS') UNION ALL SELECT * FROM [Tablets] WHERE [Price] < 100",
714714
c[0]);
715715

716716
Assert.Equal(
717-
"SELECT * FROM `Phones` WHERE `Price` < 300 INTERSECT ALL (SELECT * FROM `Watches` WHERE `Os` = 'Android') UNION ALL (SELECT * FROM `Tablets` WHERE `Price` < 100)",
717+
"SELECT * FROM `Phones` WHERE `Price` < 300 INTERSECT ALL SELECT * FROM `Watches` WHERE `Os` = 'Android' UNION ALL SELECT * FROM `Tablets` WHERE `Price` < 100",
718718
c[1]);
719719

720720
Assert.Equal(
721-
"SELECT * FROM \"Phones\" WHERE \"Price\" < 300 UNION (SELECT * FROM \"Laptops\" WHERE \"Price\" < 800) UNION ALL (SELECT * FROM \"Tablets\" WHERE \"Price\" < 100)",
721+
"SELECT * FROM \"Phones\" WHERE \"Price\" < 300 UNION SELECT * FROM \"Laptops\" WHERE \"Price\" < 800 UNION ALL SELECT * FROM \"Tablets\" WHERE \"Price\" < 100",
722722
c[2]);
723723

724724
Assert.Equal(

QueryBuilder/Compilers/Compiler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ public virtual string CompileUnion(SqlResult ctx)
450450

451451
ctx.Bindings.AddRange(subCtx.Bindings);
452452

453-
combinedQueries.Add($"{combineOperator}({subCtx.RawSql})");
453+
combinedQueries.Add($"{combineOperator}{subCtx.RawSql}");
454454
}
455455
else
456456
{

0 commit comments

Comments
 (0)