Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix null comparison in case when
  • Loading branch information
tfraney committed Aug 5, 2025
commit 96ebb57727fba8628f29d204b3701d9f951a0330
17 changes: 13 additions & 4 deletions QueryBuilder/Compilers/Compiler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -420,8 +420,8 @@ private void SetUpCaseWhenUpdatePart(SqlResult ctx, List<string> parts, string c

while (pointer <= (subparts.Length - 1))
{
var piece = subparts[pointer].ToString().ToUpperInvariant().Trim();
if (pointer > 0 && !substart)
var piece = subparts[pointer]?.ToString().ToUpperInvariant().Trim();
if (pointer > 0 && !substart && piece != null)
{
if (!VERB.SpecialChar.Any(s => s == piece) && criteriaValue)
{
Expand All @@ -444,7 +444,8 @@ private void SetUpCaseWhenUpdatePart(SqlResult ctx, List<string> parts, string c
}
}

if (!criteriaValue && VERB.AndOrOpertors.Any(s => s == piece))

if (!criteriaValue && (piece is null || VERB.AndOrOpertors.Any(s => s == piece)))
{
pointer = subparts.Length;
break;
Expand Down Expand Up @@ -481,6 +482,7 @@ private void SetUpCaseWhenUpdatePart(SqlResult ctx, List<string> parts, string c
{
field = piece;
}

if (substart && criteriaValue && !string.IsNullOrEmpty(field))
{

Expand All @@ -494,7 +496,14 @@ private void SetUpCaseWhenUpdatePart(SqlResult ctx, List<string> parts, string c
casewrap.Append(" ").Append(VERB.When);
}

casewrap.Append($" {field} = {(setasfield ? subparts[pointer] : Parameter(ctx, subparts[pointer]))}");
if (subparts[pointer] is not null)
{
casewrap.Append($" {field} = {(setasfield ? subparts[pointer] : Parameter(ctx, subparts[pointer]))}");
}
else
{
casewrap.Append($" {field} is NULL");
}
substart = false;
setasfield = false;
start = false;
Expand Down