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 | 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 {CDSElement, CDSAs, CDSParametersSelect, CDSComposition, CDSGroupBy, CDSSource, CDSWhere, CDSHaving} from "."; import {Expression, seq, str, plus, star, opt} from "../../abap/2_statements/combi"; import {IStatementRunnable} from "../../abap/2_statements/statement_runnable"; import {CDSAssociation} from "./cds_association"; import {CDSJoin} from "./cds_join"; export class CDSSelect extends Expression { public getRunnable(): IStatementRunnable { const fields = opt(seq(star(seq(CDSElement, ",")), CDSElement)); const distinct = str("DISTINCT"); const elements = seq(str("{"), plus(CDSElement), star(seq(",", CDSElement)), str("}")); return seq("SELECT", opt(distinct), opt(fields), "FROM", CDSSource, opt(CDSParametersSelect), opt(CDSAs), star(CDSJoin), star(CDSComposition), star(CDSAssociation), star(CDSComposition), opt(elements), opt(CDSWhere), opt(CDSGroupBy), opt(CDSHaving), opt(seq("UNION", opt("ALL"), CDSSelect))); } } |