aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/SqlEnterpriseFormatter/formataltertable.cpp
blob: 0f9a8ac6bc8827d0f9e80819a6c8f00cef87edae (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
#include "formataltertable.h"
#include "parser/ast/sqlitealtertable.h"

FormatAlterTable::FormatAlterTable(SqliteAlterTable* alterTable) :
    alterTable(alterTable)
{
}

void FormatAlterTable::formatInternal()
{
    handleExplainQuery(alterTable);
    withKeyword("ALTER").withKeyword("TABLE");

    if (!alterTable->database.isNull())
        withId(alterTable->database).withIdDot();

    withId(alterTable->table);

    if (alterTable->newColumn)
    {
        withKeyword("ADD");
        if (alterTable->columnKw)
            withKeyword("COLUMN");

        withStatement(alterTable->newColumn);
    }
    else if (!alterTable->newName.isNull())
    {
        withKeyword("RENAME").withKeyword("TO").withId(alterTable->newName);
    }
    withSemicolon();
}