Skip to content

Commit

Permalink
Fix #203
Browse files Browse the repository at this point in the history
  • Loading branch information
mewim committed Aug 17, 2024
1 parent 05157fb commit 095c789
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
29 changes: 18 additions & 11 deletions src/components/ImporterView/ImporterMainView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,20 @@ export default {
delete this.files[key];
},
escapeName(name) {
let nameSplit = name.split('.');
name = nameSplit.join('_');
nameSplit = name.split('-');
name = nameSplit.join('_');
nameSplit = name.split(' ');
name = nameSplit.join('_');
nameSplit = name.split('"');
name = nameSplit.join('_');
nameSplit = name.split("'");
name = nameSplit.join('_');
return name;
},
async handleFilesSelected(files) {
this.$refs.fileProcessingModal.showModal();
const filesHash = {};
Expand Down Expand Up @@ -264,15 +278,8 @@ export default {
currentFile.detectedFormat = detectedFormat;
let tableNameSplit = currentFile.file.name.split('.');
tableNameSplit.pop();
currentFile.tableName = tableNameSplit.join('_');
tableNameSplit = currentFile.tableName.split('-');
currentFile.tableName = tableNameSplit.join('_');
tableNameSplit = currentFile.tableName.split(' ');
currentFile.tableName = tableNameSplit.join('_');
tableNameSplit = currentFile.tableName.split('"');
currentFile.tableName = tableNameSplit.join('_');
tableNameSplit = currentFile.tableName.split("'");
currentFile.tableName = tableNameSplit.join('_');
currentFile.tableName = tableNameSplit.join('.');
currentFile.tableName = this.escapeName(currentFile.tableName);
currentFile.format = JSON.parse(JSON.stringify(detectedFormat));
if (extension === 'csv') {
currentFile.format.ListStart = '[';
Expand All @@ -281,7 +288,7 @@ export default {
}
currentFile.format.Columns.forEach((c, i) => {
c.type = DuckDB.convertDuckDBTypeToKuzuType(c.type);
c.userDefinedName = c.name;
c.userDefinedName = this.escapeName(c.name);
c.name = currentFile.format.HasHeader ? c.name : `column${i}`;
c.isPrimaryKey = false;
});
Expand Down Expand Up @@ -356,7 +363,7 @@ export default {
columns.forEach((c, i) => {
c.type = DuckDB.convertDuckDBTypeToKuzuType(c.type);
c.name = hasHeader ? c.name : `column${i}`;
c.userDefinedName = c.name;
c.userDefinedName = this.escapeName(c.name);
});
file.format.Delimiter = delimiter;
file.format.Quote = quote;
Expand Down
5 changes: 3 additions & 2 deletions src/utils/DataDefinitionLanguage.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class DataDefinitionLanguage {
if (!name) {
return "";
}
if (name.includes(" ")) {
if (name.includes(" ") || name.includes(".")) {
return `\`${name}\``;
}
return name;
Expand Down Expand Up @@ -44,6 +44,7 @@ class DataDefinitionLanguage {

dropProperty(tableName, columnName) {
tableName = this._escapeName(tableName);
columnName = this._escapeName(columnName);
return `ALTER TABLE ${tableName} DROP ${columnName};`;
}

Expand Down Expand Up @@ -184,7 +185,7 @@ class DataDefinitionLanguage {
}
let returnStatement = "RETURN " +
(columnMapping.map((mapping) => {
return `CAST(${mapping.rawName} AS ${mapping.type})`;
return `CAST(${this._escapeName(mapping.rawName)} AS ${mapping.type})`;
}).join(", "));
loadStatement += ` ${returnStatement}`;
statement += `(${loadStatement});`;
Expand Down

0 comments on commit 095c789

Please sign in to comment.