UNPKG

ddl-manager

Version:

store postgres procedures and triggers in files

39 lines 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findNecessaryTableMatrix = void 0; const findMinimalRoute_1 = require("./findMinimalRoute"); const buildConditionsMatrix_1 = require("./buildConditionsMatrix"); function findNecessaryTableMatrix(context) { const conditionsMatrix = buildConditionsMatrix_1.buildConditionsMatrix(context.cache); const linksToChangedTable = context.getTableReferencesToTriggerTable(); const necessaryTableMatrix = []; for (const andConditions of conditionsMatrix) { const necessaryTableAliases = []; const graph = andConditions.map(condition => { const points = condition.getColumnReferences() .map(columnRef => columnRef.tableReference.getIdentifier()); return points; }); for (const changedTableInSelect of linksToChangedTable) { const minimalRoute = findMinimalRoute_1.findMinimalRoute({ graph, start: changedTableInSelect.getIdentifier(), end: context.cache.for.getIdentifier() }); if (!minimalRoute) { continue; } const middlePoints = minimalRoute.slice(1, -1); for (const middlePoint of middlePoints) { if (necessaryTableAliases.includes(middlePoint)) { continue; } necessaryTableAliases.push(middlePoint); } } necessaryTableMatrix.push(necessaryTableAliases); } return necessaryTableMatrix; } exports.findNecessaryTableMatrix = findNecessaryTableMatrix; //# sourceMappingURL=findNecessaryTableMatrix.js.map