aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/DbSqlite2/queryexecutorsqlite2delete.cpp
blob: 95ae98e69af8134c9294c20687a1be7c9ef6330d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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;
}