diff --git a/packages/engines/mysql/MySqlAnalyser.js b/packages/engines/mysql/MySqlAnalyser.js index e963a5ecf..f3c6775aa 100644 --- a/packages/engines/mysql/MySqlAnalyser.js +++ b/packages/engines/mysql/MySqlAnalyser.js @@ -103,6 +103,7 @@ class MySqlAnalyser extends DatabaseAnalayser { ...view, columns: columns.rows.filter((col) => col.pureName == view.pureName).map(getColumnInfo), createSql: viewTexts[view.pureName], + requiresFormat: true, })), procedures: programmables.rows.filter((x) => x.objectType == 'PROCEDURE').map(fp.omit(['objectType'])), functions: programmables.rows.filter((x) => x.objectType == 'FUNCTION').map(fp.omit(['objectType'])), diff --git a/packages/types/dbinfo.d.ts b/packages/types/dbinfo.d.ts index 5c55ae9e8..55082defe 100644 --- a/packages/types/dbinfo.d.ts +++ b/packages/types/dbinfo.d.ts @@ -49,6 +49,7 @@ export interface DatabaseObjectInfo extends NamedObjectInfo { export interface SqlObjectInfo extends DatabaseObjectInfo { createSql?: string; + requiresFormat?: boolean; // SQL is human unreadable, requires formatting (eg. MySQL views) } export interface TableInfo extends DatabaseObjectInfo { diff --git a/packages/web/src/tabs/QueryTab.js b/packages/web/src/tabs/QueryTab.js index f5762a3db..2e964b7a1 100644 --- a/packages/web/src/tabs/QueryTab.js +++ b/packages/web/src/tabs/QueryTab.js @@ -39,7 +39,10 @@ function useSqlTemplate(sqlTemplate, props) { } if (sqlTemplate == 'CREATE OBJECT') { const objectInfo = await getSqlObjectInfo(props); - if (objectInfo) setSql(objectInfo.createSql); + if (objectInfo) { + if (objectInfo.requiresFormat) setSql(sqlFormatter.format(objectInfo.createSql)); + else setSql(objectInfo.createSql); + } } if (sqlTemplate == 'EXECUTE PROCEDURE') { const procedureInfo = await getSqlObjectInfo(props);