diff --git a/integration-tests/__tests__/db-import-export.spec.js b/integration-tests/__tests__/db-import-export.spec.js index 88c2bb180..908641a78 100644 --- a/integration-tests/__tests__/db-import-export.spec.js +++ b/integration-tests/__tests__/db-import-export.spec.js @@ -25,12 +25,13 @@ function createImportStream() { } function createExportStream() { - const writable = new Stream.Writable({ objectMode: true }); + const writable = new stream.Writable({ objectMode: true }); writable.result = []; - writable._write = (object, encoding, done) => { - result.push(object); - done(); + writable._write = (chunk, encoding, callback) => { + writable.result.push(chunk); + callback(); }; + return writable; } describe('DB Import/export', () => { @@ -125,18 +126,19 @@ describe('DB Import/export', () => { [6, 'Bosna, Hecegovina'], ]; for (const row of data) { - await runCommandOnDriver(conn, driver, 'insert into ~t1(~id, ~country) values (%v, %v)', ...row); + await runCommandOnDriver(conn, driver, dmp => + dmp.put('insert into ~t1(~id, ~country) values (%v, %v)', ...row) + ); } const reader = await tableReader({ systemConnection: conn, driver, pureName: 't1', - createIfNotExists: true, }); const writer = createExportStream(); await copyStream(reader, writer); - expect(writer.result).toEqual(data); + expect(writer.result.filter(x => !x.__isStreamHeader).map(row => [row.id, row.country])).toEqual(data); }) ); }); diff --git a/packages/api/src/shell/tableReader.js b/packages/api/src/shell/tableReader.js index 3233419b4..5c42418c9 100644 --- a/packages/api/src/shell/tableReader.js +++ b/packages/api/src/shell/tableReader.js @@ -8,12 +8,15 @@ const logger = getLogger('tableReader'); * @param {object} options * @param {connectionType} options.connection - connection object * @param {object} options.systemConnection - system connection (result of driver.connect). If not provided, new connection will be created + * @param {object} options.driver - driver object. If not provided, it will be loaded from connection * @param {string} options.pureName - table name * @param {string} options.schemaName - schema name * @returns {Promise} - reader object */ -async function tableReader({ connection, systemConnection, pureName, schemaName }) { - const driver = requireEngineDriver(connection); +async function tableReader({ connection, systemConnection, pureName, schemaName, driver }) { + if (!driver) { + driver = requireEngineDriver(connection); + } const dbhan = systemConnection || (await connectUtility(driver, connection, 'read')); logger.info(`Connected.`);