Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 1x 1x | import {IStatement} from "./_statement";
import {seq, optPrio, opt, altPrio, ver, verNotLang} from "../combi";
import {Dynamic, SQLCond, DatabaseTable, SQLSourceSimple, DatabaseConnection, SQLOrderBy, SQLUpTo, SQLOffset, SQLMappingFromEntity, SQLIndicators, SQLDmlOptions} from "../expressions";
import {LanguageVersion, Release} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
import {SQLClient} from "../expressions/sql_client";
export class DeleteDatabase implements IStatement {
public getMatcher(): IStatementRunnable {
const where = seq("WHERE", altPrio(SQLCond, Dynamic));
const upToOffset = ver(Release.v764, altPrio(
seq(SQLUpTo, optPrio(SQLOffset)),
seq(SQLOffset, optPrio(SQLUpTo)),
));
const orderByTail = ver(Release.v764, seq(SQLOrderBy, optPrio(upToOffset)));
const trailing = optPrio(altPrio(orderByTail, upToOffset));
const from = seq("FROM", DatabaseTable, optPrio(SQLClient), optPrio(DatabaseConnection),
opt(where), trailing, optPrio(SQLDmlOptions));
const fromSomething = seq("FROM", opt("TABLE"), SQLSourceSimple, optPrio(SQLIndicators), optPrio(SQLMappingFromEntity));
const table = seq(DatabaseTable,
optPrio(SQLClient),
optPrio(DatabaseConnection),
optPrio(fromSomething),
optPrio(SQLDmlOptions));
const ret = seq("DELETE", altPrio(from, table));
return verNotLang(LanguageVersion.KeyUser, ret);
}
}
|