UNPKG

ddl-manager

Version:

store postgres procedures and triggers in files

41 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reassignVariables = void 0; const ast_1 = require("../../../../ast"); const assignCombinedJoinVariables_1 = require("./assignCombinedJoinVariables"); const groupJoinsByTableAndFilter_1 = require("./groupJoinsByTableAndFilter"); const replaceTableToVariableOrRow_1 = require("./replaceTableToVariableOrRow"); function reassignVariables(newJoins, oldJoins) { const lines = []; const oldCombinedJoins = groupJoinsByTableAndFilter_1.groupJoinsByTableAndFilter(oldJoins); const newCombinedJoins = groupJoinsByTableAndFilter_1.groupJoinsByTableAndFilter(newJoins); for (let i = 0, n = newCombinedJoins.length; i < n; i++) { const newCombinedJoin = newCombinedJoins[i]; const oldCombinedJoin = oldCombinedJoins[i]; const newByColumn = replaceTableToVariableOrRow_1.replaceTableToVariableOrRow(newCombinedJoin.byColumn, newJoins, "new"); const oldByColumn = replaceTableToVariableOrRow_1.replaceTableToVariableOrRow(oldCombinedJoin.byColumn, oldJoins, "old"); lines.push(new ast_1.If({ if: ast_1.Expression.and([ newByColumn + " is not distinct from " + oldByColumn ]), then: newCombinedJoin.variables.map((newVarName, j) => new ast_1.AssignVariable({ variable: newVarName, value: new ast_1.HardCode({ sql: oldCombinedJoin.variables[j] }) })), else: [ new ast_1.If({ if: ast_1.Expression.and([ `${newByColumn} is not null` ]), then: assignCombinedJoinVariables_1.assignCombinedJoinVariables(newCombinedJoin, newJoins, "new") }) ] })); lines.push(new ast_1.BlankLine()); } return lines; } exports.reassignVariables = reassignVariables; //# sourceMappingURL=reassignVariables.js.map