#ifndef SQLITEUPSERT_H #define SQLITEUPSERT_H #include "sqlitestatement.h" #include "sqliteindexedcolumn.h" class SqliteExpr; class SqliteOrderBy; class SqliteUpsert : public SqliteStatement { public: typedef QPair ColumnAndValue; SqliteUpsert(); SqliteUpsert(const QList& conflictColumns, SqliteExpr* conflictWhere); SqliteUpsert(const QList& conflictColumns, SqliteExpr* conflictWhere, const QList& values, SqliteExpr* setWhere); SqliteUpsert(const SqliteUpsert& other); SqliteStatement* clone(); QList conflictColumns; SqliteExpr* conflictWhere = nullptr; QList keyValueMap; SqliteExpr* setWhere = nullptr; bool doNothing = false; protected: TokenList rebuildTokensFromContents(); QStringList getColumnsInStatement(); TokenList getColumnTokensInStatement(); }; #endif // SQLITEUPSERT_H