summaryrefslogtreecommitdiff
path: root/internal/mapr/parserfieldplan_test.go
blob: f6d664fa5e02924bd5f569ef00e568eb3b5a2f04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package mapr

import "testing"

func TestParserFieldPlan(t *testing.T) {
	q, err := NewQuery(
		"select count($derived) from STATS where $goroutines > 10 " +
			"set $derived = md5sum(foo), $other = $derived group by $derived",
	)
	if err != nil {
		t.Fatalf("Unable to create query: %s", err.Error())
	}

	plan := q.ParserFieldPlan()
	if plan.AllFields {
		t.Fatalf("Expected query-specific field plan")
	}

	requiredFields := []string{"foo", "$goroutines"}
	for _, field := range requiredFields {
		if !plan.Needs(field) {
			t.Errorf("Expected field '%s' to be required", field)
		}
	}

	notRequiredFields := []string{"$derived", "$other", "$time"}
	for _, field := range notRequiredFields {
		if plan.Needs(field) {
			t.Errorf("Expected field '%s' to not be required", field)
		}
	}
}