Skip to content
This repository was archived by the owner on Jan 28, 2021. It is now read-only.

sql: better errors for invalid argument number #596

Merged
merged 1 commit into from
Jan 28, 2019
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 sql/expression/function/ceil_round_floor.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ type Round struct {
func NewRound(args ...sql.Expression) (sql.Expression, error) {
argLen := len(args)
if argLen == 0 || argLen > 2 {
return nil, sql.ErrInvalidArgumentNumber.New("1 or 2", argLen)
return nil, sql.ErrInvalidArgumentNumber.New("ROUND", "1 or 2", argLen)
}

var right sql.Expression
Expand Down
2 changes: 1 addition & 1 deletion sql/expression/function/coalesce.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ type Coalesce struct {
// NewCoalesce creates a new Coalesce sql.Expression.
func NewCoalesce(args ...sql.Expression) (sql.Expression, error) {
if len(args) == 0 {
return nil, sql.ErrInvalidArgumentNumber.New("1 or more", 0)
return nil, sql.ErrInvalidArgumentNumber.New("COALESCE", "1 or more", 0)
}

return &Coalesce{args}, nil
Expand Down
2 changes: 1 addition & 1 deletion sql/expression/function/concat.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ var ErrConcatArrayWithOthers = errors.NewKind("can't concat a string array with
// NewConcat creates a new Concat UDF.
func NewConcat(args ...sql.Expression) (sql.Expression, error) {
if len(args) == 0 {
return nil, sql.ErrInvalidArgumentNumber.New("1 or more", 0)
return nil, sql.ErrInvalidArgumentNumber.New("CONCAT", "1 or more", 0)
}

for _, arg := range args {
Expand Down
2 changes: 1 addition & 1 deletion sql/expression/function/concat_ws.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ type ConcatWithSeparator struct {
// NewConcatWithSeparator creates a new NewConcatWithSeparator UDF.
func NewConcatWithSeparator(args ...sql.Expression) (sql.Expression, error) {
if len(args) == 0 {
return nil, sql.ErrInvalidArgumentNumber.New("1 or more", 0)
return nil, sql.ErrInvalidArgumentNumber.New("CONCAT_WS", "1 or more", 0)
}

for _, arg := range args {
Expand Down
2 changes: 1 addition & 1 deletion sql/expression/function/json_extract.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ type JSONExtract struct {
// NewJSONExtract creates a new JSONExtract UDF.
func NewJSONExtract(args ...sql.Expression) (sql.Expression, error) {
if len(args) < 2 {
return nil, sql.ErrInvalidArgumentNumber.New(2, len(args))
return nil, sql.ErrInvalidArgumentNumber.New("JSON_EXTRACT", 2, len(args))
}

return &JSONExtract{args[0], args[1:]}, nil
Expand Down
8 changes: 4 additions & 4 deletions sql/expression/function/logarithm.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package function

import (
"fmt"
"math"
"reflect"
"fmt"

"gopkg.in/src-d/go-mysql-server.v0/sql/expression"
"gopkg.in/src-d/go-mysql-server.v0/sql"
"gopkg.in/src-d/go-errors.v1"
"gopkg.in/src-d/go-mysql-server.v0/sql"
"gopkg.in/src-d/go-mysql-server.v0/sql/expression"
)

// ErrInvalidArgumentForLogarithm is returned when an invalid argument value is passed to a
Expand Down Expand Up @@ -94,7 +94,7 @@ type Log struct {
func NewLog(args ...sql.Expression) (sql.Expression, error) {
argLen := len(args)
if argLen == 0 || argLen > 2 {
return nil, sql.ErrInvalidArgumentNumber.New("1 or 2", argLen)
return nil, sql.ErrInvalidArgumentNumber.New("LOG", "1 or 2", argLen)
}

if argLen == 1 {
Expand Down
5 changes: 3 additions & 2 deletions sql/expression/function/rpad_lpad.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@ import (
"reflect"
"strings"

"gopkg.in/src-d/go-mysql-server.v0/sql"
"gopkg.in/src-d/go-errors.v1"
"gopkg.in/src-d/go-mysql-server.v0/sql"
)

var ErrDivisionByZero = errors.NewKind("division by zero")

type padType rune

const (
lPadType padType = 'l'
rPadType padType = 'r'
Expand All @@ -28,7 +29,7 @@ func NewPadFunc(pType padType) func(e ...sql.Expression) (sql.Expression, error)
func NewPad(pType padType, args ...sql.Expression) (sql.Expression, error) {
argLen := len(args)
if argLen != 3 {
return nil, sql.ErrInvalidArgumentNumber.New("3", argLen)
return nil, sql.ErrInvalidArgumentNumber.New(string(pType)+"pad", "3", argLen)
}

return &Pad{args[0], args[1], args[2], pType}, nil
Expand Down
2 changes: 1 addition & 1 deletion sql/expression/function/substring.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func NewSubstring(args ...sql.Expression) (sql.Expression, error) {
start = args[1]
ln = args[2]
default:
return nil, sql.ErrInvalidArgumentNumber.New("2 or 3", len(args))
return nil, sql.ErrInvalidArgumentNumber.New("SUBSTRING", "2 or 3", len(args))
}
return &Substring{str, start, ln}, nil
}
Expand Down
2 changes: 1 addition & 1 deletion sql/functionregistry.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ var ErrFunctionNotFound = errors.NewKind("function not found: %s")

// ErrInvalidArgumentNumber is returned when the number of arguments to call a
// function is different from the function arity.
var ErrInvalidArgumentNumber = errors.NewKind("expecting %v arguments for calling this function, %d received")
var ErrInvalidArgumentNumber = errors.NewKind("%s: expecting %v arguments for calling this function, %d received")

// Function is a function defined by the user that can be applied in a SQL
// query.
Expand Down