diff --git a/dbrepo-ui/api/query.mapper.js b/dbrepo-ui/api/query.mapper.js index 5f4ba5155228da00bc642d9c7ce6817eceab777e..7aa33d1038c2dadb7f6862383447531fda35dcb9 100644 --- a/dbrepo-ui/api/query.mapper.js +++ b/dbrepo-ui/api/query.mapper.js @@ -23,8 +23,8 @@ class QueryMapper { { value: 'mediumint', text: 'MEDIUMINT(size)', defaultSize: 10 }, { value: 'bigint', text: 'BIGINT(size)', defaultSize: 255 }, { value: 'float', text: 'FLOAT(p)', defaultSize: 24 }, - { value: 'double', text: 'DOUBLE(size, d)', defaultSize: 25, defaultD: 0 }, - { value: 'decimal', text: 'DECIMAL(size, d)', defaultSize: 10, defaultD: 0 }, + { value: 'double', text: 'DOUBLE(size, d)', defaultSize: 25, defaultD: 4 }, + { value: 'decimal', text: 'DECIMAL(size, d)', defaultSize: 10, defaultD: 4 }, { value: 'date', text: 'DATE' }, { value: 'datetime', text: 'DATETIME(fsp)' }, { value: 'timestamp', text: 'TIMESTAMP(fsp)' }, diff --git a/dbrepo-ui/pages/database/_database_id/table/_table_id/import.vue b/dbrepo-ui/pages/database/_database_id/table/_table_id/import.vue index e9e8bf99931e80c61553874388a2cd212b7b122f..fe1a4f503c915947b629dd623e81d07e478dc8be 100644 --- a/dbrepo-ui/pages/database/_database_id/table/_table_id/import.vue +++ b/dbrepo-ui/pages/database/_database_id/table/_table_id/import.vue @@ -133,7 +133,7 @@ export default { }, tableImport: { location: null, - quote: null, + quote: '"', false_element: null, true_element: null, null_element: null, diff --git a/dbrepo-ui/pages/database/_database_id/table/import.vue b/dbrepo-ui/pages/database/_database_id/table/import.vue index 2e6d696b111757bba588440675451a4873ff466e..8c8d566d8eba6095ee732d9f6ba20b66a6d72761 100644 --- a/dbrepo-ui/pages/database/_database_id/table/import.vue +++ b/dbrepo-ui/pages/database/_database_id/table/import.vue @@ -132,6 +132,19 @@ </v-stepper-step> <v-stepper-content step="3"> <v-form ref="form" v-model="validStep3" @submit.prevent="submit"> + <v-row dense> + <v-col cols="8"> + <v-alert + v-if="warnAnalyseSeparator" + border="left" + color="warning"> + We analysed your .csv/.tsv file and found that the separator you provided + <code>{{ tableImport.separator }}</code> is not correct, the separator + <code>{{ suggestedAnalyseSeparator }}</code> is more likely to be correct. If you really want to import + the .csv/.tsv file still, click "continue". + </v-alert> + </v-col> + </v-row> <v-row dense> <v-col cols="8"> <v-file-input @@ -240,7 +253,7 @@ export default { }, tableImport: { location: null, - quote: null, + quote: '"', false_element: null, true_element: null, null_element: null, @@ -251,6 +264,8 @@ export default { loadingUpload: false, loadingAnalyse: false, loadingImage: false, + warnAnalyseSeparator: false, + suggestedAnalyseSeparator: null, url: null, columns: [], newTableId: 42 // FIXME ??? @@ -331,7 +346,7 @@ export default { this.loadingAnalyse = true AnalyseService.determineDataTypes(filename, this.tableImport.separator) .then((analysis) => { - const { columns } = analysis + const { columns, separator } = analysis const dataTypes = QueryMapper.mySql8DataTypes() this.tableCreate.columns = Object.entries(columns) .map(([key, val]) => { @@ -347,7 +362,12 @@ export default { } }) this.tableImport.location = filename - this.step = 4 + if (separator !== this.tableImport.separator) { + this.warnAnalyseSeparator = true + this.suggestedAnalyseSeparator = separator + } else { + this.step = 4 + } }) .finally(() => { this.loadingAnalyse = false