aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitebegintrans.h
blob: b16b6c0f7cbdc172db173171598ad92a6bd57102 (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
31
32
33
34
35
36
37
#ifndef SQLITEBEGINTRANS_H
#define SQLITEBEGINTRANS_H

#include "sqlitequery.h"
#include "sqliteconflictalgo.h"
#include <QString>

class API_EXPORT SqliteBeginTrans : public SqliteQuery
{
    public:
        enum class Type
        {
            null,
            DEFERRED,
            IMMEDIATE,
            EXCLUSIVE
        };

        SqliteBeginTrans();
        SqliteBeginTrans(const SqliteBeginTrans& other);
        SqliteBeginTrans(Type type, bool transactionKw, const QString& name);
        SqliteBeginTrans(bool transactionKw, const QString& name);
        SqliteStatement* clone();

        QString name; // in docs sqlite2 only, but in gramma it's also sqlite3
        bool transactionKw = false;
        Type type = Type::null; // sqlite3 only

        static QString typeToString(Type type);

    protected:
        TokenList rebuildTokensFromContents();
};

typedef QSharedPointer<SqliteBeginTrans> SqliteBeginTransPtr;

#endif // SQLITEBEGINTRANS_H