influxdb/influxql/query/compile_internal_test.go

25 lines
723 B
Go

package query
import (
"testing"
"github.com/influxdata/influxql"
"github.com/stretchr/testify/require"
)
func TestCompile_RewriteSubqueryRegex(t *testing.T) {
q := `SELECT top(mean, 10), host FROM (SELECT mean(value) FROM cpu WHERE id =~ /^(server-1|server-2|server-3)$/ GROUP BY host)`
stmt, err := influxql.ParseStatement(q)
require.NoError(t, err)
s := stmt.(*influxql.SelectStatement)
compiled, err := Compile(s, CompileOptions{})
require.NoError(t, err)
c := compiled.(*compiledStatement)
require.Len(t, c.stmt.Sources, 1)
subquery := c.stmt.Sources[0]
require.Equal(t, `(SELECT mean(value) FROM cpu WHERE id = 'server-1' OR id = 'server-2' OR id = 'server-3' GROUP BY host)`, subquery.String())
}