27 lines
764 B
JavaScript
27 lines
764 B
JavaScript
|
'use strict';
|
||
|
|
||
|
const PSQL = require('cartodb-psql');
|
||
|
const queryTables = require('cartodb-query-tables');
|
||
|
|
||
|
module.exports = function affectedTables () {
|
||
|
return function affectedTablesMiddleware (req, res, next) {
|
||
|
const { sql } = res.locals.params;
|
||
|
const { authDbParams } = res.locals;
|
||
|
const pg = new PSQL(authDbParams);
|
||
|
|
||
|
queryTables.getAffectedTablesFromQuery(pg, sql, (err, affectedTables) => {
|
||
|
if (err) {
|
||
|
const message = (err && err.message) || 'unknown error';
|
||
|
console.error('Error on query explain \'%s\': %s', sql, message);
|
||
|
|
||
|
return next();
|
||
|
}
|
||
|
|
||
|
res.locals.affectedTables = affectedTables;
|
||
|
|
||
|
return next();
|
||
|
});
|
||
|
|
||
|
};
|
||
|
};
|