File: formataltertable.cpp

package info (click to toggle)
sqlitestudio 3.4.17-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 61,252 kB
  • sloc: ansic: 403,094; cpp: 122,803; yacc: 2,619; java: 992; tcl: 495; sh: 440; xml: 426; makefile: 19
file content (32 lines) | stat: -rw-r--r-- 763 bytes parent folder | download
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();
}