summaryrefslogtreecommitdiff
path: root/internal/mapr/parserfieldplan_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-20 11:06:50 +0200
committerPaul Buetow <paul@buetow.org>2026-03-20 11:06:50 +0200
commit13b21feb07c86f65760f7338f284f3b492364cd9 (patch)
treec9fa6fc4fb0c7fe8b927297d26e5f3b1448a3518 /internal/mapr/parserfieldplan_test.go
parentda8e581617a0240626d2bc922916416440e65bae (diff)
Optimize mapr parsing and stabilize aggregate shutdown
Diffstat (limited to 'internal/mapr/parserfieldplan_test.go')
-rw-r--r--internal/mapr/parserfieldplan_test.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/mapr/parserfieldplan_test.go b/internal/mapr/parserfieldplan_test.go
new file mode 100644
index 0000000..f6d664f
--- /dev/null
+++ b/internal/mapr/parserfieldplan_test.go
@@ -0,0 +1,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)
+ }
+ }
+}