Skip to content

Commit

Permalink
fix(replication): fixed update query
Browse files Browse the repository at this point in the history
  • Loading branch information
roehlerw committed May 14, 2020
1 parent 52c2f02 commit 796a48e
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions PluginMySQL/API/Replication/UpsertRecordAsync.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public static async Task UpsertRecordAsync(IConnectionFactory connFactory,
Logger.Debug($"Insert record query: {query}");

var cmd = connFactory.GetCommand(query, conn);

await cmd.ExecuteNonQueryAsync();
}
catch (Exception e)
Expand All @@ -82,33 +82,39 @@ public static async Task UpsertRecordAsync(IConnectionFactory connFactory,
{
rawValue = JsonConvert.SerializeObject(rawValue);
}
querySb.Append(rawValue != null
? $"'{Utility.Utility.GetSafeString(rawValue.ToString(), "'", "''")}',"
: $"NULL,");

if (rawValue != null)
{
querySb.Append(
$"{Utility.Utility.GetSafeName(column.ColumnName, '`')}='{Utility.Utility.GetSafeString(rawValue.ToString(), "'", "''")}',");
}
else
{
querySb.Append($"{Utility.Utility.GetSafeName(column.ColumnName, '`')}=NULL,");
}
}
else
{
querySb.Append($"{Utility.Utility.GetSafeName(column.ColumnName, '`')}=NULL,");
}

}
}

querySb.Length--;

var primaryKey = table.Columns.Find(c => c.PrimaryKey);
var primaryValue = recordMap[primaryKey.ColumnName];
if (primaryKey.Serialize)
{
primaryValue = JsonConvert.SerializeObject(primaryValue);
}

querySb.Append($" WHERE {primaryKey.ColumnName} = '{primaryValue}'");

var query = querySb.ToString();

var cmd = connFactory.GetCommand(query, conn);

await cmd.ExecuteNonQueryAsync();
}
catch (Exception exception)
Expand Down

0 comments on commit 796a48e

Please sign in to comment.