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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import {seq, opt, alt, ver, Expression, altPrio, plus, optPrio, failStar} from "../combi"; import {FieldSub, Field} from "."; import {Version} from "../../../version"; import {IStatementRunnable} from "../statement_runnable"; export class TypeTableKey extends Expression { public getRunnable(): IStatementRunnable { const uniqueness = alt("NON-UNIQUE", "UNIQUE"); const defaultKey = "DEFAULT KEY"; const emptyKey = ver(Version.v740sp02, "EMPTY KEY"); const components = plus(alt(seq("WITH", failStar()), FieldSub)); const further = seq(alt("WITHOUT", "WITH"), "FURTHER SECONDARY KEYS"); const alias = seq("ALIAS", Field); const key = seq("WITH", opt(uniqueness), altPrio(defaultKey, emptyKey, seq(opt(alt("SORTED", "HASHED")), "KEY", alt(seq(Field, opt(alias), "COMPONENTS", components), components))), optPrio(further), optPrio("READ-ONLY")); return key; } } |