UNPKG

rhombic

Version:

SQL parsing, lineage extraction and manipulation

24 lines 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.removeUnusedOrderItems = void 0; const ProjectionItemsVisitor_1 = require("../visitors/ProjectionItemsVisitor"); const replaceText_1 = require("./replaceText"); const removeUnusedOrderItems = (parsedSql, orderToRemove) => { const visitor = new ProjectionItemsVisitor_1.ProjectionItemsVisitor(); visitor.visit(parsedSql.cst); let orderStatement = visitor.sort .filter(i => i.expression !== orderToRemove) .map(i => `${i.expression}${i.order ? " " + i.order.toUpperCase() : ""}${i.nullsOrder ? `NULLS ${i.nullsOrder.toUpperCase()}` : ""}`) .join(", "); if (orderStatement) { orderStatement = `ORDER BY ${orderStatement}`; } if (visitor.sortRange) { return replaceText_1.replaceText(parsedSql.toString(), orderStatement, visitor.sortRange); } else { return parsedSql.toString(); } }; exports.removeUnusedOrderItems = removeUnusedOrderItems; //# sourceMappingURL=removeUnusedOrderItems.js.map