1
1
mirror of https://github.com/Fabio286/antares.git synced 2025-06-05 21:59:22 +02:00

fix(PostgreSQL): issue with uppercase characters in table field names

This commit is contained in:
2021-10-19 17:42:31 +02:00
parent ea65d8eee7
commit aef17be36c
7 changed files with 52 additions and 14 deletions

View File

@ -131,6 +131,7 @@
<WorkspaceTabTableFilters
v-if="isSearch"
:fields="fields"
:conn-client="connection.client"
@filter="updateFilters"
@filter-change="onFilterChange"
/>

View File

@ -71,9 +71,13 @@
</template>
<script>
import customizations from 'common/customizations';
import { NUMBER, FLOAT } from 'common/fieldTypes';
export default {
props: {
fields: Array
fields: Array,
connClient: String
},
data () {
return {
@ -83,6 +87,11 @@ export default {
]
};
},
computed: {
customizations () {
return customizations[this.connClient];
}
},
created () {
this.addRow();
},
@ -101,40 +110,40 @@ export default {
},
createClausole (filter) {
const field = this.fields.find(field => field.name === filter.field);
const isNumeric = field.type.match(/INT|FLOAT|DECIMAL/);
let value = null;
const isNumeric = [...NUMBER, ...FLOAT].includes(field.type);
const { elementsWrapper: ew, stringsWrapper: sw } = this.customizations;
let value;
switch (filter.op) {
case '=':
case '!=':
value = isNumeric ? filter.value : '"' + filter.value + '"';
value = isNumeric ? filter.value : `${sw}${filter.value}${sw}`;
break;
case 'BETWEEN':
value = isNumeric ? filter.value : '"' + filter.value + '"';
value = isNumeric ? filter.value : `${sw}${filter.value}${sw}`;
value += ' AND ';
value += isNumeric ? filter.value2 : '"' + filter.value2 + '"';
console.log(value);
value += isNumeric ? filter.value2 : `${sw}${filter.value2}${sw}`;
break;
case 'IN':
case 'NOT IN':
value = filter.value.split(',').map(val => {
val = val.trim();
return isNumeric ? val : '"' + val + '"';
return isNumeric ? val : `${sw}${val}${sw}`;
}).join(',');
value = '(' + filter.value + ')';
value = `(${filter.value})`;
break;
case 'IS NULL':
case 'IS NOT NULL':
value = '';
break;
default:
value = '"' + filter.value + '"';
value = `${sw}${filter.value}${sw}`;
}
if (isNumeric && value.length === 0)
value = '""';
if (isNumeric && !value.length && !['IS NULL', 'IS NOT NULL'].includes(filter.op))
value = `${sw}${sw}`;
return `${filter.field} ${filter.op} ${value}`;
return `${ew}${filter.field}${ew} ${filter.op} ${value}`;
}
}
};