protected function UpsertRowsQuery(QueryBuilder $QueryBuilder, Table $Table, array $Rows, $ShouldReturnKeyData)
{
if ($ShouldReturnKeyData) {
throw new \Storm\Drivers\Base\Relational\PlatformException('SQLite does not support returning data');
}
$Columns = $Table->GetColumns();
$PrimaryKeyColumns = $Table->GetPrimaryKeyColumns();
$ColumnNames = array_keys($Columns);
$PrimaryKeyColumnNames = array_keys($PrimaryKeyColumns);
$TableName = $Table->GetName();
$DerivedTableName = $TableName . 'Values';
$PrimaryKeyIdentifiers = [];
foreach ($PrimaryKeyColumnNames as $ColumnName) {
$PrimaryKeyIdentifiers[] = [$TableName, $ColumnName];
}
$QueryBuilder->AppendIdentifier('INSERT OR REPLACE INTO #', [$TableName]);
$QueryBuilder->AppendIdentifiers('(#)', $ColumnNames, ',');
//TODO: Fix unique constraint conflicts
$this->AppendDataAsInlineTable($QueryBuilder, $Table->GetColumns(), $DerivedTableName, $Rows);
}