From 1ca536cf83c71f5960c79697d5aee49d09f0bcd5 Mon Sep 17 00:00:00 2001 From: mattn Date: Thu, 12 Sep 2013 10:46:35 +0900 Subject: Disable Execer/Queryer until database/sql/driver implement QueryRow: #82 --- sqlite3.go | 120 +++++++++++++++++++++++++++++++------------------------------ 1 file changed, 61 insertions(+), 59 deletions(-) (limited to 'sqlite3.go') diff --git a/sqlite3.go b/sqlite3.go index c3abc78..9993b18 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -134,65 +134,67 @@ func (c *SQLiteConn) AutoCommit() bool { return int(C.sqlite3_get_autocommit(c.db)) != 0 } -// Implements Execer -func (c *SQLiteConn) Exec(query string, args []driver.Value) (driver.Result, error) { - tx, err := c.Begin() - if err != nil { - return nil, err - } - for { - s, err := c.Prepare(query) - if err != nil { - tx.Rollback() - return nil, err - } - na := s.NumInput() - res, err := s.Exec(args[:na]) - if err != nil && err != driver.ErrSkip { - tx.Rollback() - s.Close() - return nil, err - } - args = args[na:] - tail := s.(*SQLiteStmt).t - if tail == "" { - tx.Commit() - return res, nil - } - s.Close() - query = tail - } -} - -// Implements Queryer -func (c *SQLiteConn) Query(query string, args []driver.Value) (driver.Rows, error) { - tx, err := c.Begin() - if err != nil { - return nil, err - } - for { - s, err := c.Prepare(query) - if err != nil { - tx.Rollback() - return nil, err - } - na := s.NumInput() - rows, err := s.Query(args[:na]) - if err != nil && err != driver.ErrSkip { - tx.Rollback() - s.Close() - return nil, err - } - args = args[na:] - tail := s.(*SQLiteStmt).t - if tail == "" { - tx.Commit() - return rows, nil - } - s.Close() - query = tail - } -} +// TODO: Execer & Queryer currently disabled +// https://github.com/mattn/go-sqlite3/issues/82 +//// Implements Execer +//func (c *SQLiteConn) Exec(query string, args []driver.Value) (driver.Result, error) { +// tx, err := c.Begin() +// if err != nil { +// return nil, err +// } +// for { +// s, err := c.Prepare(query) +// if err != nil { +// tx.Rollback() +// return nil, err +// } +// na := s.NumInput() +// res, err := s.Exec(args[:na]) +// if err != nil && err != driver.ErrSkip { +// tx.Rollback() +// s.Close() +// return nil, err +// } +// args = args[na:] +// tail := s.(*SQLiteStmt).t +// if tail == "" { +// tx.Commit() +// return res, nil +// } +// s.Close() +// query = tail +// } +//} +// +//// Implements Queryer +//func (c *SQLiteConn) Query(query string, args []driver.Value) (driver.Rows, error) { +// tx, err := c.Begin() +// if err != nil { +// return nil, err +// } +// for { +// s, err := c.Prepare(query) +// if err != nil { +// tx.Rollback() +// return nil, err +// } +// na := s.NumInput() +// rows, err := s.Query(args[:na]) +// if err != nil && err != driver.ErrSkip { +// tx.Rollback() +// s.Close() +// return nil, err +// } +// args = args[na:] +// tail := s.(*SQLiteStmt).t +// if tail == "" { +// tx.Commit() +// return rows, nil +// } +// s.Close() +// query = tail +// } +//} func (c *SQLiteConn) exec(cmd string) error { pcmd := C.CString(cmd) -- cgit v1.2.3