Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/blocks-storage/querier.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ querier:

# Logical plan optimizers. Multiple optimizers can be provided as a
# comma-separated list. Supported values: default, all, propagate-matchers,
# sort-matchers, merge-selects, detect-histogram-stats
# sort-matchers, merge-selects, detect-histogram-stats, projection
# CLI flag: -querier.optimizers
[optimizers: <string> | default = "default"]

Expand Down
4 changes: 2 additions & 2 deletions docs/configuration/config-file-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -4779,7 +4779,7 @@ thanos_engine:

# Logical plan optimizers. Multiple optimizers can be provided as a
# comma-separated list. Supported values: default, all, propagate-matchers,
# sort-matchers, merge-selects, detect-histogram-stats
# sort-matchers, merge-selects, detect-histogram-stats, projection
# CLI flag: -querier.optimizers
[optimizers: <string> | default = "default"]

Expand Down Expand Up @@ -5550,7 +5550,7 @@ thanos_engine:

# Logical plan optimizers. Multiple optimizers can be provided as a
# comma-separated list. Supported values: default, all, propagate-matchers,
# sort-matchers, merge-selects, detect-histogram-stats
# sort-matchers, merge-selects, detect-histogram-stats, projection
# CLI flag: -ruler.optimizers
[optimizers: <string> | default = "default"]

Expand Down
8 changes: 7 additions & 1 deletion pkg/engine/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ import (
"fmt"
"strings"

"github.com/prometheus-community/parquet-common/schema"
"github.com/thanos-io/promql-engine/logicalplan"
)

var supportedOptimizers = []string{"default", "all", "propagate-matchers", "sort-matchers", "merge-selects", "detect-histogram-stats"}
var supportedOptimizers = []string{"default", "all", "propagate-matchers", "sort-matchers", "merge-selects", "detect-histogram-stats", "projection"}

// ThanosEngineConfig contains the configuration to create engine.
type ThanosEngineConfig struct {
Expand Down Expand Up @@ -59,6 +60,11 @@ func getOptimizer(name string) ([]logicalplan.Optimizer, error) {
return []logicalplan.Optimizer{logicalplan.MergeSelectsOptimizer{}}, nil
case "detect-histogram-stats":
return []logicalplan.Optimizer{logicalplan.DetectHistogramStatsOptimizer{}}, nil
case "projection":
po := logicalplan.ProjectionOptimizer{
SeriesHashLabel: schema.SeriesHashColumn,
}
return []logicalplan.Optimizer{po}, nil
default:
return nil, fmt.Errorf("unknown optimizer %s", name)
}
Expand Down
4 changes: 2 additions & 2 deletions schemas/cortex-config-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -5994,7 +5994,7 @@
},
"optimizers": {
"default": "default",
"description": "Logical plan optimizers. Multiple optimizers can be provided as a comma-separated list. Supported values: default, all, propagate-matchers, sort-matchers, merge-selects, detect-histogram-stats",
"description": "Logical plan optimizers. Multiple optimizers can be provided as a comma-separated list. Supported values: default, all, propagate-matchers, sort-matchers, merge-selects, detect-histogram-stats, projection",
"type": "string",
"x-cli-flag": "querier.optimizers"
}
Expand Down Expand Up @@ -7015,7 +7015,7 @@
},
"optimizers": {
"default": "default",
"description": "Logical plan optimizers. Multiple optimizers can be provided as a comma-separated list. Supported values: default, all, propagate-matchers, sort-matchers, merge-selects, detect-histogram-stats",
"description": "Logical plan optimizers. Multiple optimizers can be provided as a comma-separated list. Supported values: default, all, propagate-matchers, sort-matchers, merge-selects, detect-histogram-stats, projection",
"type": "string",
"x-cli-flag": "ruler.optimizers"
}
Expand Down
Loading