Skip to content

Commit 9dbd71f

Browse files
[278] fix nested where clauses missing parantheses
1 parent 6aee531 commit 9dbd71f

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

QueryBuilder.Tests/GeneralTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,5 +386,20 @@ public void Can_Change_Generic_Offset_After_SpecificLimit()
386386
Assert.Equal("SELECT * FROM `mytable` LIMIT 5 OFFSET 7", c[EngineCodes.MySql].ToString());
387387
Assert.Equal("SELECT * FROM \"mytable\" LIMIT 20 OFFSET 7", c[EngineCodes.PostgreSql].ToString());
388388
}
389+
390+
[Fact]
391+
public void Where_Nested()
392+
{
393+
var query = new Query("table")
394+
.Where(q => q.Where("a", 1).OrWhere("a", 2));
395+
396+
var engines = new[] {
397+
EngineCodes.SqlServer,
398+
};
399+
400+
var c = Compilers.Compile(engines, query);
401+
402+
Assert.Equal("SELECT * FROM [table] WHERE ([a] = 1 OR [a] = 2)", c[EngineCodes.SqlServer].ToString());
403+
}
389404
}
390405
}

QueryBuilder/Compilers/Compiler.Conditions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ protected virtual string CompileNestedCondition<Q>(SqlResult ctx, NestedConditio
174174

175175
var sql = CompileConditions(ctx, clauses);
176176

177-
return x.IsNot ? $"NOT ({sql})" : sql;
177+
return x.IsNot ? $"NOT ({sql})" : $"({sql})";
178178
}
179179

180180
protected string CompileTwoColumnsCondition(SqlResult ctx, TwoColumnsCondition clause)

0 commit comments

Comments
 (0)