diff --git a/web/src/components/dashboards/PanelSchemaRenderer.vue b/web/src/components/dashboards/PanelSchemaRenderer.vue index e636495108..05d8865878 100644 --- a/web/src/components/dashboards/PanelSchemaRenderer.vue +++ b/web/src/components/dashboards/PanelSchemaRenderer.vue @@ -837,10 +837,18 @@ export default defineComponent({ if (!parser) { await importSqlParser(); } - + const ast = await parseQuery(originalQuery, parser); if (!ast) return; + + const tableAliases = ast.from + ?.filter((fromEntry: any) => fromEntry.as) + .map((fromEntry: any) => fromEntry.as); + const aliasClause = tableAliases?.length + ? ` AS ${tableAliases.join(", ")}` + : ""; + const breakdownColumn = breakdown[0]?.column; const breakdownValue = drilldownParams[0]?.seriesName; const whereClause = buildWhereClause( @@ -849,11 +857,13 @@ export default defineComponent({ breakdownValue, ); - const modifiedQuery = + let modifiedQuery = drilldownData.data.logsMode === "auto" - ? `SELECT * FROM "${streamName}" ${whereClause}` + ? `SELECT * FROM "${streamName}"${aliasClause} ${whereClause}` : drilldownData.data.logsQuery; + modifiedQuery = modifiedQuery.replace(/`/g, '"'); + const encodedQuery: any = b64EncodeUnicode(modifiedQuery); const pos = window.location.pathname.indexOf("/web/");