diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2025-07-02 02:11:26 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2025-07-02 02:11:26 -0400 |
| commit | d67596acd921f75caaa4e604bc1ccf163bd0729e (patch) | |
| tree | d7d0d30d20a1a63173acc183e3edd4163a82bc1d /pkg/query/query.go | |
| parent | 3b3fc9ebfce6e0944b12b929b6abc95251a0e64e (diff) | |
Add experimental http server
Diffstat (limited to 'pkg/query/query.go')
| -rw-r--r-- | pkg/query/query.go | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/pkg/query/query.go b/pkg/query/query.go index 57ba3e1..3552c3f 100644 --- a/pkg/query/query.go +++ b/pkg/query/query.go @@ -1,9 +1,27 @@ package query -import "strings" +import ( + "fmt" + "strings" +) func writeIndent(b *strings.Builder, level int) { for range level { b.WriteByte('\t') } } + +func Compile(userQuery string, optimizationLevel int, numWorkers uint) (CompilationArtifact, error) { + if numWorkers == 0 { + return CompilationArtifact{}, fmt.Errorf("Cannot compile with 0 workers") + } + + clause, err := Parse(Lex(userQuery)) + if err != nil { + return CompilationArtifact{}, err + } + + NewOptimizer(clause, numWorkers).Optimize(optimizationLevel) + + return clause.Compile() +} |
