#40 export query result

This commit is contained in:
Jan Prochazka
2020-10-04 09:10:14 +02:00
parent 34fff77f66
commit 360a4ef1bc
6 changed files with 37 additions and 17 deletions

View File

@@ -10,6 +10,7 @@ const consoleObjectWriter = require('./consoleObjectWriter');
const excelSheetReader = require('./excelSheetReader');
const jsonLinesWriter = require('./jsonLinesWriter');
const jsonLinesReader = require('./jsonLinesReader');
const jslDataReader = require('./jslDataReader');
module.exports = {
queryReader,
@@ -24,4 +25,5 @@ module.exports = {
jsonLinesReader,
fakeObjectReader,
consoleObjectWriter,
jslDataReader,
};

View File

@@ -0,0 +1,10 @@
const path = require('path');
const { jsldir } = require('../utility/directories');
const jsonLinesReader = require('./jsonLinesReader');
function jslDataReader({ jslid }) {
const fileName = path.join(jsldir(), `${jslid}.jsonl`);
return jsonLinesReader({ fileName });
}
module.exports = jslDataReader;

View File

@@ -77,7 +77,6 @@ export default function ColumnHeaderControl({
// },
// });
};
console.log('COLUMN', column);
return (
<HeaderDiv>
<LabelDiv>

View File

@@ -618,11 +618,12 @@ export default function DataGridCore(props) {
<ImportExportModal
modalState={modalState}
initialValues={{
sourceStorageType: 'database',
sourceConnectionId: conid,
sourceDatabaseName: database,
sourceSchemaName: display.baseTable && display.baseTable.schemaName,
sourceList: display.baseTable ? [display.baseTable.pureName] : [],
sourceStorageType: jslid ? 'jsldata' : 'database',
sourceJslId: jslid,
sourceConnectionId: jslid ? undefined : conid,
sourceDatabaseName: jslid ? undefined : database,
sourceSchemaName: jslid ? undefined : display.baseTable && display.baseTable.schemaName,
sourceList: jslid ? ['query-data'] : display.baseTable ? [display.baseTable.pureName] : [],
}}
/>
));

View File

@@ -143,13 +143,16 @@ function SourceTargetConfig({
schemaNameField,
tablesField = undefined,
}) {
const types = [
{ value: 'database', label: 'Database', directions: ['source', 'target'] },
{ value: 'csv', label: 'CSV file(s)', directions: ['source', 'target'] },
{ value: 'jsonl', label: 'JSON lines file(s)', directions: ['source', 'target'] },
{ value: 'excel', label: 'MS Excel file(s)', directions: ['source'] },
];
const { values, setFieldValue } = useFormikContext();
const types =
values[storageTypeField] == 'jsldata'
? [{ value: 'jsldata', label: 'Query result data', directions: ['source'] }]
: [
{ value: 'database', label: 'Database', directions: ['source', 'target'] },
{ value: 'csv', label: 'CSV file(s)', directions: ['source', 'target'] },
{ value: 'jsonl', label: 'JSON lines file(s)', directions: ['source', 'target'] },
{ value: 'excel', label: 'MS Excel file(s)', directions: ['source'] },
];
const storageType = values[storageTypeField];
const dbinfo = useDatabaseInfo({ conid: values[connectionIdField], database: values[databaseNameField] });
return (

View File

@@ -33,7 +33,8 @@ async function getConnection(storageType, conid, database) {
}
function getSourceExpr(sourceName, values, sourceConnection, sourceDriver) {
if (values.sourceStorageType == 'database') {
const { sourceStorageType } = values;
if (sourceStorageType == 'database') {
const fullName = { schemaName: values.sourceSchemaName, pureName: sourceName };
return [
'tableReader',
@@ -43,18 +44,22 @@ function getSourceExpr(sourceName, values, sourceConnection, sourceDriver) {
},
];
}
if (isFileStorage(values.sourceStorageType)) {
if (isFileStorage(sourceStorageType)) {
const sourceFile = values[`sourceFile_${sourceName}`];
if (values.sourceStorageType == 'excel') {
if (sourceStorageType == 'excel') {
return ['excelSheetReader', sourceFile];
}
if (values.sourceStorageType == 'jsonl') {
if (sourceStorageType == 'jsonl') {
return ['jsonLinesReader', sourceFile];
}
if (values.sourceStorageType == 'csv') {
if (sourceStorageType == 'csv') {
return ['csvReader', sourceFile];
}
}
if (sourceStorageType == 'jsldata') {
return ['jslDataReader', { jslid: values.sourceJslId }];
}
throw new Error(`Unknown storage type: ${sourceStorageType}`);
}
function getFlagsFroAction(action) {