1
1
mirror of https://github.com/Fabio286/antares.git synced 2025-02-11 09:10:51 +01:00

feat: support to aliased tables

This commit is contained in:
Fabio 2020-10-20 13:30:36 +02:00
parent a8cd17748f
commit 1658432fd3
4 changed files with 19 additions and 41 deletions

View File

@ -353,7 +353,8 @@ export class MySQLClient extends AntaresCore {
name: field.name,
orgName: field.orgName,
schema: field.db,
table: field.orgTable,
table: field.table,
orgTable: field.orgTable,
type: 'varchar'
};
}) : [];

View File

@ -106,7 +106,7 @@ export default {
return resultsWithRows[index].fields.map(field => {
if (field.table) cachedTable = field.table;// Needed for some queries on information_schema
return {
table: field.table || cachedTable,
table: field.orgTable || cachedTable,
schema: field.schema || 'INFORMATION_SCHEMA'
};
}).filter((val, i, arr) => arr.findIndex(el => el.schema === val.schema && el.table === val.table) === i);
@ -158,8 +158,12 @@ export default {
if (selectedFields.length) {
fields = fields.map(field => {
const alias = result.fields.find(resField => resField.orgName === field.name).name || field.name;
return { ...field, alias };
const aliasObj = result.fields.find(resField => resField.orgName === field.name);
return {
...field,
alias: aliasObj.name || field.name,
tableAlias: aliasObj.table || field.table
};
});
}

View File

@ -288,10 +288,18 @@ export default {
return this.fields.filter(field =>
field.name === cKey ||
field.alias === cKey ||
`${field.table}.${field.name}` === cKey ||
`${field.table}.${field.alias}` === cKey ||
`${field.table.toLowerCase()}.${field.name}` === cKey ||
`${field.table.toLowerCase()}.${field.alias}` === cKey)[0];
`${field.table.toLowerCase()}.${field.alias}` === cKey ||
`${field.tableAlias}.${field.name}` === cKey ||
`${field.tableAlias}.${field.alias}` === cKey ||
`${field.tableAlias.toLowerCase()}.${field.name}` === cKey ||
`${field.tableAlias.toLowerCase()}.${field.alias}` === cKey)[0];
},
isNull (value) {
return value === null ? ' is-null' : '';

View File

@ -1,5 +1,5 @@
<template>
<div class="workspace-query-tab column col-12 columns col-gapless">
<div v-show="isSelected" class="workspace-query-tab column col-12 columns col-gapless">
<div class="workspace-query-runner column col-12">
<div class="workspace-query-runner-footer">
<div class="workspace-query-buttons">
@ -234,38 +234,3 @@ export default {
}
};
</script>
<style lang="scss">
.workspace-tabs {
align-content: baseline;
.workspace-query-runner {
.workspace-query-runner-footer {
display: flex;
justify-content: space-between;
padding: 0.3rem 0.6rem 0.4rem;
align-items: center;
.workspace-query-buttons {
display: flex;
.btn {
display: flex;
align-self: center;
color: $body-font-color;
margin-right: 0.4rem;
}
}
.workspace-query-info {
display: flex;
> div + div {
padding-left: 0.6rem;
}
}
}
}
}
</style>