rhombic
Version:
SQL parsing, lineage extraction and manipulation
24 lines • 1.06 kB
JavaScript
;
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