better type habndling, shell-tableReader for preserving table structure

This commit is contained in:
Jan Prochazka
2020-06-18 21:50:37 +02:00
parent cecb88f024
commit bfc6f2a8a8
13 changed files with 52 additions and 16 deletions

View File

@@ -3,6 +3,7 @@ const csvWriter = require('./csvWriter');
const csvReader = require('./csvReader');
const runScript = require('./runScript');
const tableWriter = require('./tableWriter');
const tableReader = require('./tableReader');
const copyStream = require('./copyStream');
const fakeObjectReader = require('./fakeObjectReader');
const consoleObjectWriter = require('./consoleObjectWriter');
@@ -16,6 +17,7 @@ module.exports = {
csvReader,
runScript,
tableWriter,
tableReader,
copyStream,
excelSheetReader,
jsonLinesWriter,

View File

@@ -0,0 +1,28 @@
const { quoteFullName } = require('@dbgate/tools');
const driverConnect = require('../utility/driverConnect');
const engines = require('@dbgate/engines');
async function queryReader({ connection, pureName, schemaName }) {
const driver = engines(connection);
const pool = await driverConnect(driver, connection);
console.log(`Connected.`);
const fullName = { pureName, schemaName };
const table = await driver.analyseSingleObject(pool, fullName, 'tables');
const query = `select * from ${quoteFullName(driver.dialect, fullName)}`;
if (table) {
console.log(`Reading table ${table}`);
return await driver.readQuery(pool, query, table);
}
const view = await driver.analyseSingleObject(pool, fullName, 'views');
if (view) {
console.log(`Reading view ${table}`);
return await driver.readQuery(pool, query, view);
}
return await driver.readQuery(pool, query);
}
module.exports = queryReader;