aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/query/errors.go
blob: 35f8c192f3e83f2ea7fe4c382e3b599fb43122ed (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
40
package query

import (
	"errors"
	"fmt"
)

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

// 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)
}