mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-01 06:13:59 +00:00
API: queryReader accepts systemConnection (fixes duckDb export filtered data)
This commit is contained in:
@@ -7,6 +7,8 @@ const logger = getLogger('queryReader');
|
|||||||
* Returns reader object for {@link copyStream} function. This reader object reads data from query.
|
* Returns reader object for {@link copyStream} function. This reader object reads data from query.
|
||||||
* @param {object} options
|
* @param {object} options
|
||||||
* @param {connectionType} options.connection - connection object
|
* @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.query - SQL query
|
* @param {string} options.query - SQL query
|
||||||
* @param {string} [options.queryType] - query type
|
* @param {string} [options.queryType] - query type
|
||||||
* @param {string} [options.sql] - SQL query. obsolete; use query instead
|
* @param {string} [options.sql] - SQL query. obsolete; use query instead
|
||||||
@@ -16,6 +18,8 @@ async function queryReader({
|
|||||||
connection,
|
connection,
|
||||||
query,
|
query,
|
||||||
queryType,
|
queryType,
|
||||||
|
systemConnection,
|
||||||
|
driver,
|
||||||
// obsolete; use query instead
|
// obsolete; use query instead
|
||||||
sql,
|
sql,
|
||||||
}) {
|
}) {
|
||||||
@@ -28,10 +32,13 @@ async function queryReader({
|
|||||||
logger.info({ sql: query || sql }, `Reading query`);
|
logger.info({ sql: query || sql }, `Reading query`);
|
||||||
// else console.log(`Reading query ${JSON.stringify(json)}`);
|
// else console.log(`Reading query ${JSON.stringify(json)}`);
|
||||||
|
|
||||||
const driver = requireEngineDriver(connection);
|
if (!driver) {
|
||||||
const pool = await connectUtility(driver, connection, queryType == 'json' ? 'read' : 'script');
|
driver = requireEngineDriver(connection);
|
||||||
|
}
|
||||||
|
const dbhan = systemConnection || (await connectUtility(driver, connection, queryType == 'json' ? 'read' : 'script'));
|
||||||
|
|
||||||
const reader =
|
const reader =
|
||||||
queryType == 'json' ? await driver.readJsonQuery(pool, query) : await driver.readQuery(pool, query || sql);
|
queryType == 'json' ? await driver.readJsonQuery(dbhan, query) : await driver.readQuery(dbhan, query || sql);
|
||||||
return reader;
|
return reader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const sql = require('./sql');
|
|||||||
const { mapSchemaRowToSchemaInfo } = require('./Analyser.helpers');
|
const { mapSchemaRowToSchemaInfo } = require('./Analyser.helpers');
|
||||||
const { zipObject } = require('lodash');
|
const { zipObject } = require('lodash');
|
||||||
|
|
||||||
const logger = getLogger('sqliteDriver');
|
const logger = getLogger('duckdbDriver');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {import('@duckdb/node-api')}
|
* @type {import('@duckdb/node-api')}
|
||||||
|
|||||||
Reference in New Issue
Block a user