UNPKG

@abaplint/core

Version:
18 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CDSSelect = void 0; const _1 = require("."); const combi_1 = require("../../abap/2_statements/combi"); const cds_association_1 = require("./cds_association"); const cds_join_1 = require("./cds_join"); class CDSSelect extends combi_1.Expression { getRunnable() { const fields = (0, combi_1.seq)((0, combi_1.star)((0, combi_1.seq)(_1.CDSElement, ",")), _1.CDSElement); const distinct = (0, combi_1.str)("DISTINCT"); const elementList = (0, combi_1.seq)(_1.CDSElement, (0, combi_1.starPrio)((0, combi_1.seq)(",", _1.CDSElement))); const elements = (0, combi_1.seq)((0, combi_1.str)("{"), (0, combi_1.altPrio)("*", elementList), (0, combi_1.str)("}")); return (0, combi_1.seq)("SELECT", (0, combi_1.optPrio)(distinct), (0, combi_1.opt)((0, combi_1.alt)("*", fields)), "FROM", _1.CDSSource, (0, combi_1.star)(cds_join_1.CDSJoin), (0, combi_1.star)((0, combi_1.alt)(_1.CDSComposition, cds_association_1.CDSAssociation)), (0, combi_1.opt)(elements), (0, combi_1.optPrio)(_1.CDSWhere), (0, combi_1.optPrio)(_1.CDSGroupBy), (0, combi_1.optPrio)(_1.CDSHaving), (0, combi_1.optPrio)((0, combi_1.seq)("UNION", (0, combi_1.optPrio)("ALL"), CDSSelect))); } } exports.CDSSelect = CDSSelect; //# sourceMappingURL=cds_select.js.map