github.com/influxdata/influxdb/v2@v2.7.6/influxql/query/compile_internal_test.go (about)

     1  package query
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/influxdata/influxql"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestCompile_RewriteSubqueryRegex(t *testing.T) {
    11  	q := `SELECT top(mean, 10), host FROM (SELECT mean(value) FROM cpu WHERE id =~ /^(server-1|server-2|server-3)$/ GROUP BY host)`
    12  	stmt, err := influxql.ParseStatement(q)
    13  	require.NoError(t, err)
    14  	s := stmt.(*influxql.SelectStatement)
    15  
    16  	compiled, err := Compile(s, CompileOptions{})
    17  	require.NoError(t, err)
    18  
    19  	c := compiled.(*compiledStatement)
    20  	require.Len(t, c.stmt.Sources, 1)
    21  
    22  	subquery := c.stmt.Sources[0]
    23  	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())
    24  }