fix: error with empty functions/procedures

This commit is contained in:
Fabio Di Stasio 2021-01-11 18:56:51 +01:00
parent 49d71722e2
commit f150508547
3 changed files with 31 additions and 2 deletions

View File

@ -433,6 +433,19 @@ export class MySQLClient extends AntaresCore {
const results = await this.raw(sql); const results = await this.raw(sql);
return results.rows.map(row => { return results.rows.map(row => {
if (!row['Create Procedure']) {
return {
definer: null,
sql: '',
parameters: [],
name: row.Procedure,
comment: '',
security: 'DEFINER',
deterministic: false,
dataAccess: 'CONTAINS SQL'
};
}
const parameters = row['Create Procedure'] const parameters = row['Create Procedure']
.match(/(?<=\().*?(?=\))/s)[0] .match(/(?<=\().*?(?=\))/s)[0]
.replaceAll('\r', '') .replaceAll('\r', '')
@ -538,6 +551,21 @@ export class MySQLClient extends AntaresCore {
const results = await this.raw(sql); const results = await this.raw(sql);
return results.rows.map(row => { return results.rows.map(row => {
if (!row['Create Function']) {
return {
definer: null,
sql: '',
parameters: [],
name: row.Procedure,
comment: '',
security: 'DEFINER',
deterministic: false,
dataAccess: 'CONTAINS SQL',
returns: 'INT',
returnsLength: null
};
}
const parameters = row['Create Function'] const parameters = row['Create Function']
.match(/(?<=\().*?(?=\))/s)[0] .match(/(?<=\().*?(?=\))/s)[0]
.replaceAll('\r', '') .replaceAll('\r', '')

View File

@ -4,7 +4,7 @@
@close-context="closeContext" @close-context="closeContext"
> >
<div <div
v-if="selectedMisc.type === 'procedure'" v-if="['procedure', 'function'].includes(selectedMisc.type)"
class="context-element disabled" class="context-element disabled"
@click="showRunModal" @click="showRunModal"
> >

View File

@ -25,13 +25,14 @@ const arrayToFile = args => {
break; break;
} }
const file = new Blob([content], { mime }); const file = new Blob([content], { type: mime });
const downloadLink = document.createElement('a'); const downloadLink = document.createElement('a');
downloadLink.download = `${args.filename}.${args.type}`; downloadLink.download = `${args.filename}.${args.type}`;
downloadLink.href = window.URL.createObjectURL(file); downloadLink.href = window.URL.createObjectURL(file);
downloadLink.style.display = 'none'; downloadLink.style.display = 'none';
document.body.appendChild(downloadLink); document.body.appendChild(downloadLink);
downloadLink.click(); downloadLink.click();
downloadLink.remove();
}; };
export default arrayToFile; export default arrayToFile;