used QStringList in upsert

This commit is contained in:
silverqx
2022-08-10 08:11:49 +02:00
parent b67d4f5050
commit cfec8e438c
10 changed files with 17 additions and 18 deletions
+1 -2
View File
@@ -57,8 +57,7 @@ namespace Orm::Query::Grammars
/*! Compile an "upsert" statement into SQL. */
virtual QString
compileUpsert(QueryBuilder &query, const QVector<QVariantMap> &values,
const QVector<QString> &uniqueBy,
const QVector<QString> &update) const;
const QStringList &uniqueBy, const QStringList &update) const;
/*! Compile a delete statement into SQL. */
virtual QString compileDelete(QueryBuilder &query) const;
+2 -2
View File
@@ -33,8 +33,8 @@ namespace Orm::Query::Grammars
/*! Compile an "upsert" statement into SQL. */
QString compileUpsert(
QueryBuilder &query, const QVector<QVariantMap> &values,
const QVector<QString> &uniqueBy,
const QVector<QString> &update) const override;
const QStringList &uniqueBy,
const QStringList &update) const override;
/*! Compile the lock into SQL. */
QString compileLock(const QueryBuilder &query) const override;
@@ -37,8 +37,8 @@ namespace Orm::Query::Grammars
/*! Compile an "upsert" statement into SQL. */
QString compileUpsert(
QueryBuilder &query, const QVector<QVariantMap> &values,
const QVector<QString> &uniqueBy,
const QVector<QString> &update) const override;
const QStringList &uniqueBy,
const QStringList &update) const override;
/*! Compile a delete statement into SQL. */
QString compileDelete(QueryBuilder &query) const override;
+2 -2
View File
@@ -33,8 +33,8 @@ namespace Orm::Query::Grammars
/*! Compile an "upsert" statement into SQL. */
QString compileUpsert(
QueryBuilder &query, const QVector<QVariantMap> &values,
const QVector<QString> &uniqueBy,
const QVector<QString> &update) const override;
const QStringList &uniqueBy,
const QStringList &update) const override;
/*! Compile a delete statement into SQL. */
QString compileDelete(QueryBuilder &query) const override;
+3 -3
View File
@@ -133,11 +133,11 @@ namespace Orm::Query
const QVector<UpdateItem> &values);
/*! Insert new records or update the existing ones. */
std::tuple<int, std::optional<QSqlQuery>>
upsert(const QVector<QVariantMap> &values, const QVector<QString> &uniqueBy,
const QVector<QString> &update);
upsert(const QVector<QVariantMap> &values, const QStringList &uniqueBy,
const QStringList &update);
/*! Insert new records or update the existing ones (update all columns). */
std::tuple<int, std::optional<QSqlQuery>>
upsert(const QVector<QVariantMap> &values, const QVector<QString> &uniqueBy);
upsert(const QVector<QVariantMap> &values, const QStringList &uniqueBy);
/*! Delete records from the database. */
std::tuple<int, QSqlQuery> deleteRow();
+1 -1
View File
@@ -98,7 +98,7 @@ Grammar::prepareBindingsForUpdate(const BindingsMap &bindings,
QString Grammar::compileUpsert(
QueryBuilder &/*unused*/, const QVector<QVariantMap> &/*unused*/,
const QVector<QString> &/*unused*/, const QVector<QString> &/*unused*/) const
const QStringList &/*unused*/, const QStringList &/*unused*/) const
{
throw Exceptions::RuntimeError("This database engine does not support upserts.");
}
+1 -1
View File
@@ -26,7 +26,7 @@ QString MySqlGrammar::compileInsertOrIgnore(const QueryBuilder &query,
QString MySqlGrammar::compileUpsert(
QueryBuilder &query, const QVector<QVariantMap> &values,
const QVector<QString> &/*unused*/, const QVector<QString> &update) const
const QStringList &/*unused*/, const QStringList &update) const
{
auto sql = compileInsert(query, values);
+1 -1
View File
@@ -34,7 +34,7 @@ QString PostgresGrammar::compileUpdate(QueryBuilder &query,
QString PostgresGrammar::compileUpsert(
QueryBuilder &query, const QVector<QVariantMap> &values,
const QVector<QString> &uniqueBy, const QVector<QString> &update) const
const QStringList &uniqueBy, const QStringList &update) const
{
auto sql = compileInsert(query, values);
+1 -1
View File
@@ -26,7 +26,7 @@ QString SQLiteGrammar::compileUpdate(QueryBuilder &query,
QString SQLiteGrammar::compileUpsert(
QueryBuilder &query, const QVector<QVariantMap> &values,
const QVector<QString> &uniqueBy, const QVector<QString> &update) const
const QStringList &uniqueBy, const QStringList &update) const
{
auto sql = compileInsert(query, values);
+3 -3
View File
@@ -284,8 +284,8 @@ namespace
} // namespace
std::tuple<int, std::optional<QSqlQuery>>
Builder::upsert(const QVector<QVariantMap> &values, const QVector<QString> &uniqueBy,
const QVector<QString> &update)
Builder::upsert(const QVector<QVariantMap> &values, const QStringList &uniqueBy,
const QStringList &update)
{
// Nothing to do, no values to insert or update
if (values.isEmpty())
@@ -304,7 +304,7 @@ Builder::upsert(const QVector<QVariantMap> &values, const QVector<QString> &uniq
}
std::tuple<int, std::optional<QSqlQuery>>
Builder::upsert(const QVector<QVariantMap> &values, const QVector<QString> &uniqueBy)
Builder::upsert(const QVector<QVariantMap> &values, const QStringList &uniqueBy)
{
// Update all columns
// Columns are obtained only from a first QMap