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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x | import {IStatement} from "./_statement"; import {seq, alt, opt, tok} from "../combi"; import {DatabaseTable, SQLSource, Select, DatabaseConnection, SQLClient} from "../expressions"; import {WParenLeftW, WParenRightW} from "../../1_lexer/tokens"; import {IStatementRunnable} from "../statement_runnable"; export class InsertDatabase implements IStatement { public getMatcher(): IStatementRunnable { const sub = seq(tok(WParenLeftW), Select, tok(WParenRightW)); const f = seq(opt(SQLClient), opt(DatabaseConnection), "FROM", opt("TABLE"), alt(SQLSource, sub), opt("ACCEPTING DUPLICATE KEYS")); const from = seq(DatabaseTable, opt(alt(f, SQLClient, DatabaseConnection))); const into = seq("INTO", DatabaseTable, opt(SQLClient), opt(DatabaseConnection), "VALUES", SQLSource); return seq("INSERT", alt(from, into)); } } |