Use cockroachdb errors

This commit is contained in:
Asdine El Hrychy
2022-01-22 11:37:00 +04:00
parent 406de95078
commit 9187269128
75 changed files with 595 additions and 733 deletions

View File

@@ -6,9 +6,9 @@ import (
"strconv"
"strings"
"github.com/cockroachdb/errors"
"github.com/genjidb/genji/document"
"github.com/genjidb/genji/internal/environment"
"github.com/genjidb/genji/internal/errors"
"github.com/genjidb/genji/internal/expr"
"github.com/genjidb/genji/internal/expr/functions"
"github.com/genjidb/genji/internal/sql/scanner"
@@ -230,16 +230,16 @@ func (p *Parser) parseUnaryExpr(allowed ...scanner.Token) (expr.Expr, error) {
return fs, nil
case scanner.NAMEDPARAM:
if len(lit) == 1 {
return nil, errors.Wrap(&ParseError{Message: "missing param name"})
return nil, errors.WithStack(&ParseError{Message: "missing param name"})
}
if p.orderedParams > 0 {
return nil, errors.Wrap(&ParseError{Message: "cannot mix positional arguments with named arguments"})
return nil, errors.WithStack(&ParseError{Message: "cannot mix positional arguments with named arguments"})
}
p.namedParams++
return expr.NamedParam(lit[1:]), nil
case scanner.POSITIONALPARAM:
if p.namedParams > 0 {
return nil, errors.Wrap(&ParseError{Message: "cannot mix positional arguments with named arguments"})
return nil, errors.WithStack(&ParseError{Message: "cannot mix positional arguments with named arguments"})
}
p.orderedParams++
return expr.PositionalParam(p.orderedParams), nil
@@ -259,14 +259,14 @@ func (p *Parser) parseUnaryExpr(allowed ...scanner.Token) (expr.Expr, error) {
case scanner.NUMBER:
v, err := strconv.ParseFloat(lit, 64)
if err != nil {
return nil, errors.Wrap(&ParseError{Message: "unable to parse number", Pos: pos})
return nil, errors.WithStack(&ParseError{Message: "unable to parse number", Pos: pos})
}
return expr.LiteralValue{Value: types.NewDoubleValue(v)}, nil
case scanner.ADD, scanner.SUB:
sign := tok
tok, pos, lit = p.Scan()
if tok != scanner.NUMBER && tok != scanner.INTEGER {
return nil, errors.Wrap(&ParseError{Message: "syntax error", Pos: pos})
return nil, errors.WithStack(&ParseError{Message: "syntax error", Pos: pos})
}
if sign == scanner.SUB {
lit = "-" + lit
@@ -279,7 +279,7 @@ func (p *Parser) parseUnaryExpr(allowed ...scanner.Token) (expr.Expr, error) {
if v, err := strconv.ParseFloat(lit, 64); err == nil {
return expr.LiteralValue{Value: types.NewDoubleValue(v)}, nil
}
return nil, errors.Wrap(&ParseError{Message: "unable to parse integer", Pos: pos})
return nil, errors.WithStack(&ParseError{Message: "unable to parse integer", Pos: pos})
}
return expr.LiteralValue{Value: types.NewIntegerValue(v)}, nil
case scanner.TRUE, scanner.FALSE:
@@ -401,16 +401,16 @@ func (p *Parser) parseParam() (expr.Expr, error) {
switch tok {
case scanner.NAMEDPARAM:
if len(lit) == 1 {
return nil, errors.Wrap(&ParseError{Message: "missing param name"})
return nil, errors.WithStack(&ParseError{Message: "missing param name"})
}
if p.orderedParams > 0 {
return nil, errors.Wrap(&ParseError{Message: "cannot mix positional arguments with named arguments"})
return nil, errors.WithStack(&ParseError{Message: "cannot mix positional arguments with named arguments"})
}
p.namedParams++
return expr.NamedParam(lit[1:]), nil
case scanner.POSITIONALPARAM:
if p.namedParams > 0 {
return nil, errors.Wrap(&ParseError{Message: "cannot mix positional arguments with named arguments"})
return nil, errors.WithStack(&ParseError{Message: "cannot mix positional arguments with named arguments"})
}
p.orderedParams++
return expr.PositionalParam(p.orderedParams), nil