From 3dc340b45f32ab9ef7cfd1febad7aafb7f323898 Mon Sep 17 00:00:00 2001 From: "Josiah Kiehl (formerly @bluepojo)" Date: Sat, 29 Nov 2014 14:08:02 -0800 Subject: [PATCH] Catch missing arguments for Query() Also improved error message on Exec() for consistency. --- sqlite3.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sqlite3.go b/sqlite3.go index d446fb6..cef2048 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -60,6 +60,7 @@ import ( "database/sql" "database/sql/driver" "errors" + "fmt" "io" "runtime" "strings" @@ -174,7 +175,7 @@ func (c *SQLiteConn) Exec(query string, args []driver.Value) (driver.Result, err if s.(*SQLiteStmt).s != nil { na := s.NumInput() if len(args) < na { - return nil, errors.New("args is not enough to execute query") + return nil, fmt.Errorf("Not enough args to execute query. Expected %d, got %d.", na, len(args)) } res, err = s.Exec(args[:na]) if err != nil && err != driver.ErrSkip { @@ -201,6 +202,9 @@ func (c *SQLiteConn) Query(query string, args []driver.Value) (driver.Rows, erro } s.(*SQLiteStmt).cls = true na := s.NumInput() + if len(args) < na { + return nil, fmt.Errorf("Not enough args to execute query. Expected %d, got %d.", na, len(args)) + } rows, err := s.Query(args[:na]) if err != nil && err != driver.ErrSkip { s.Close()