Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit d5f3130

Browse files
committed
Replace Empty IN() with IN(NULL)
1 parent d0ad185 commit d5f3130

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -556,8 +556,15 @@ private string FormatFilter(string sqlFilter, params object[] filterParams)
556556

557557
if (filterParam is SqlInValues sqlParams)
558558
{
559-
var sqlIn = CreateInParamSql(sqlParams.GetValues());
560-
sqlFilter = sqlFilter.Replace(pLiteral, sqlIn);
559+
if (sqlParams.Count > 0)
560+
{
561+
var sqlIn = CreateInParamSql(sqlParams.GetValues());
562+
sqlFilter = sqlFilter.Replace(pLiteral, sqlIn);
563+
}
564+
else
565+
{
566+
sqlFilter = sqlFilter.Replace(pLiteral, SqlInValues.EmptyIn);
567+
}
561568
}
562569
else
563570
{

src/ServiceStack.OrmLite/SqlInValues.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ namespace ServiceStack.OrmLite
44
{
55
public class SqlInValues
66
{
7+
public const string EmptyIn = "NULL";
8+
79
private readonly IEnumerable values;
810
private readonly IOrmLiteDialectProvider dialectProvider;
911

@@ -24,7 +26,7 @@ public SqlInValues(IEnumerable values, IOrmLiteDialectProvider dialectProvider=n
2426
public string ToSqlInString()
2527
{
2628
return Count == 0
27-
? "NULL"
29+
? EmptyIn
2830
: OrmLiteUtils.SqlJoin(values, dialectProvider);
2931
}
3032

0 commit comments

Comments
 (0)