UNPKG

node-sql-parser

Version:
42 lines (41 loc) 1.57 kB
(function (global, factory) { if (typeof define === "function" && define.amd) { define(["exports", "./util", "./expr", "./window"], factory); } else if (typeof exports !== "undefined") { factory(exports, require("./util"), require("./expr"), require("./window")); } else { var mod = { exports: {} }; factory(mod.exports, global.util, global.expr, global.window); global.over = mod.exports; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _util, _expr, _window) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.overToSQL = overToSQL; function overToSQL(over) { if (!over) return; const { as_window_specification: asWindowSpec, expr, keyword, type, parentheses } = over; const upperType = (0, _util.toUpper)(type); if (upperType === 'WINDOW') return `OVER ${(0, _window.asWindowSpecToSQL)(asWindowSpec)}`; if (upperType === 'ON UPDATE') { let onUpdate = `${(0, _util.toUpper)(type)} ${(0, _util.toUpper)(keyword)}`; const args = (0, _expr.exprToSQL)(expr) || []; if (parentheses) onUpdate = `${onUpdate}(${args.join(', ')})`; return onUpdate; } if (over.partitionby) { return ['OVER', `(${(0, _expr.orderOrPartitionByToSQL)(over.partitionby, 'partition by')}`, `${(0, _expr.orderOrPartitionByToSQL)(over.orderby, 'order by')})`].filter(_util.hasVal).join(' '); } throw new Error('unknown over type'); } });