diff options
Diffstat (limited to 'Plugins/DbSqlite2/queryexecutorsqlite2delete.cpp')
| -rw-r--r-- | Plugins/DbSqlite2/queryexecutorsqlite2delete.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Plugins/DbSqlite2/queryexecutorsqlite2delete.cpp b/Plugins/DbSqlite2/queryexecutorsqlite2delete.cpp new file mode 100644 index 0000000..95ae98e --- /dev/null +++ b/Plugins/DbSqlite2/queryexecutorsqlite2delete.cpp @@ -0,0 +1,30 @@ +#include "queryexecutorsqlite2delete.h" +#include "db/sqlquery.h" +#include "parser/ast/sqlitedelete.h" + +bool QueryExecutorSqlite2Delete::exec() +{ + if (db->getVersion() != 2) + return true; + + SqliteQueryPtr lastQuery = context->parsedQueries.last(); + + if (!lastQuery) + return true; + + SqliteDeletePtr deleteQuery = lastQuery.dynamicCast<SqliteDelete>(); + if (!deleteQuery) + return true; + + if (!deleteQuery->where) + { + deleteQuery->where = new SqliteExpr(); + deleteQuery->where->setParent(deleteQuery.data()); + deleteQuery->where->mode = SqliteExpr::Mode::LITERAL_VALUE; + deleteQuery->where->literalValue = 1; + } + + deleteQuery->rebuildTokens(); + updateQueries(); + return true; +} |
