#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 excelSheetReader = require('./excelSheetReader');
const jsonLinesWriter = require('./jsonLinesWriter'); const jsonLinesWriter = require('./jsonLinesWriter');
const jsonLinesReader = require('./jsonLinesReader'); const jsonLinesReader = require('./jsonLinesReader');
const jslDataReader = require('./jslDataReader');
module.exports = { module.exports = {
queryReader, queryReader,
@@ -24,4 +25,5 @@ module.exports = {
jsonLinesReader, jsonLinesReader,
fakeObjectReader, fakeObjectReader,
consoleObjectWriter, 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 ( return (
<HeaderDiv> <HeaderDiv>
<LabelDiv> <LabelDiv>

View File

@@ -618,11 +618,12 @@ export default function DataGridCore(props) {
<ImportExportModal <ImportExportModal
modalState={modalState} modalState={modalState}
initialValues={{ initialValues={{
sourceStorageType: 'database', sourceStorageType: jslid ? 'jsldata' : 'database',
sourceConnectionId: conid, sourceJslId: jslid,
sourceDatabaseName: database, sourceConnectionId: jslid ? undefined : conid,
sourceSchemaName: display.baseTable && display.baseTable.schemaName, sourceDatabaseName: jslid ? undefined : database,
sourceList: display.baseTable ? [display.baseTable.pureName] : [], 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, schemaNameField,
tablesField = undefined, 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 { 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 storageType = values[storageTypeField];
const dbinfo = useDatabaseInfo({ conid: values[connectionIdField], database: values[databaseNameField] }); const dbinfo = useDatabaseInfo({ conid: values[connectionIdField], database: values[databaseNameField] });
return ( return (

View File

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