mirror of
https://github.com/silverqx/TinyORM.git
synced 2026-05-09 10:59:45 -05:00
used QStringList in upsert
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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.");
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user