aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/query/errors.go
blob: 713e9f0e0d836dfdf58fc0faa0d85f0caf41cdfe (plain) (blame)
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
33
34
35
36
37
38
39
package query

import (
	"errors"
	"fmt"
)

var ErrQueryFormat = errors.New("Incorrect query format")
var ErrDatetimeTokenParse = errors.New("Unrecognized format for datetime")

// output errors
var ErrUnrecognizedOutputToken = errors.New("Unrecognized output token")
var ErrExpectedMoreStringTokens = errors.New("Expected more string tokens")

// optimizer errors
var ErrUnexpectedValueType = errors.New("Unexpected value type")
var ErrEmptyResult = errors.New("Queries are contradictory, will lead to an empty result")

type TokenError struct {
	got      Token
	gotPrev  Token
	wantPrev string
}

type CompileError struct {
	s string
}

func (e *TokenError) Error() string {
	if e.wantPrev != "" {
		return fmt.Sprintf("Unexpected token: got %s, got previous %s want previous %s", e.got, e.gotPrev, e.wantPrev)
	}

	return fmt.Sprintf("Unexpected token: got %s, got previous %s", e.got, e.gotPrev)
}

func (e *CompileError) Error() string {
	return fmt.Sprintf("Compile error: %s", e.s)
}