Skip to content

Commit 62165fc

Browse files
authored
test and fix (linq2db#2425)
1 parent 2aafc5b commit 62165fc

File tree

2 files changed

+164
-86
lines changed

2 files changed

+164
-86
lines changed

Source/LinqToDB/SqlProvider/BasicSqlOptimizer.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1115,18 +1115,18 @@ protected ISqlPredicate ConvertEqualPredicate(SqlPredicate.ExprExpr expr)
11151115
return cond;
11161116
}
11171117

1118-
static SqlPredicate.Operator InvertOperator(SqlPredicate.Operator op, bool skipEqual)
1118+
static SqlPredicate.Operator InvertOperator(SqlPredicate.Operator op, bool preserveEqual)
11191119
{
11201120
switch (op)
11211121
{
1122-
case SqlPredicate.Operator.Equal : return skipEqual ? op : SqlPredicate.Operator.NotEqual;
1123-
case SqlPredicate.Operator.NotEqual : return skipEqual ? op : SqlPredicate.Operator.Equal;
1122+
case SqlPredicate.Operator.Equal : return preserveEqual ? op : SqlPredicate.Operator.NotEqual;
1123+
case SqlPredicate.Operator.NotEqual : return preserveEqual ? op : SqlPredicate.Operator.Equal;
11241124
case SqlPredicate.Operator.Greater : return SqlPredicate.Operator.LessOrEqual;
11251125
case SqlPredicate.Operator.NotLess :
1126-
case SqlPredicate.Operator.GreaterOrEqual : return SqlPredicate.Operator.Less;
1126+
case SqlPredicate.Operator.GreaterOrEqual : return preserveEqual ? SqlPredicate.Operator.LessOrEqual : SqlPredicate.Operator.Less;
11271127
case SqlPredicate.Operator.Less : return SqlPredicate.Operator.GreaterOrEqual;
11281128
case SqlPredicate.Operator.NotGreater :
1129-
case SqlPredicate.Operator.LessOrEqual : return SqlPredicate.Operator.Greater;
1129+
case SqlPredicate.Operator.LessOrEqual : return preserveEqual ? SqlPredicate.Operator.GreaterOrEqual : SqlPredicate.Operator.Greater;
11301130
default: throw new InvalidOperationException();
11311131
}
11321132
}

0 commit comments

Comments
 (0)