UNPKG

rhombic

Version:

SQL parsing, lineage extraction and manipulation

39 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OrderByVisitor = void 0; const SqlParser_1 = require("../SqlParser"); const getImageFromChildren_1 = require("../utils/getImageFromChildren"); const getChildrenRange_1 = require("../utils/getChildrenRange"); const Visitor = SqlParser_1.parser.getBaseCstVisitorConstructorWithDefaults(); /** * Visitor to extract information about `ORDER BY` statement */ class OrderByVisitor extends Visitor { constructor() { super(); this.output = []; this.validateVisitor(); } orderItem(ctx) { const range = getChildrenRange_1.getChildrenRange(ctx); const item = Object.assign({ expression: getImageFromChildren_1.getImageFromChildren(ctx.expression[0].children) }, range); if (ctx.Asc) item.order = "asc"; if (ctx.Desc) item.order = "desc"; if (ctx.First) item.nullsOrder = "first"; if (ctx.Last) item.nullsOrder = "last"; this.output.push(item); } select(ctx) { const range = getChildrenRange_1.getChildrenRange(ctx); this.insertLocation = { line: range.endLine, column: range.endColumn }; } } exports.OrderByVisitor = OrderByVisitor; //# sourceMappingURL=OrderByVisitor.js.map