diff --git a/runtime/metricsview/metricssql/parser.go b/runtime/metricsview/metricssql/parser.go index 418f4181ce8c..f80bc0d29eab 100644 --- a/runtime/metricsview/metricssql/parser.go +++ b/runtime/metricsview/metricssql/parser.go @@ -188,10 +188,10 @@ type selectField struct { } func (q *query) parseFrom(ctx context.Context, node *ast.TableRefsClause) error { - n := node.TableRefs - if n == nil || n.Left == nil { + if node == nil || node.TableRefs == nil || node.TableRefs.Left == nil { return fmt.Errorf("metrics sql: need `FROM metrics_view` clause") } + n := node.TableRefs if n.Right != nil { return fmt.Errorf("metrics sql: join is not supported") } diff --git a/runtime/metricsview/metricssql/parser_test.go b/runtime/metricsview/metricssql/parser_test.go index ec2c576b53e3..a9bd831d20db 100644 --- a/runtime/metricsview/metricssql/parser_test.go +++ b/runtime/metricsview/metricssql/parser_test.go @@ -251,6 +251,10 @@ func TestCompile(t *testing.T) { "select pub from ad_bids_metrics, ad_bids_metrics_advanced", "metrics sql: join is not supported", }, + { + "select 1", + "metrics sql: need `FROM metrics_view` clause", + }, } clm, err := rt.ResolveSecurity(t.Context(), instanceID, claims, mv)