aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuhiro Matsumoto <mattn.jp@gmail.com>2017-03-21 09:14:48 +0900
committerYasuhiro Matsumoto <mattn.jp@gmail.com>2017-03-21 09:14:48 +0900
commit866c3293d9a76aa491e56cc978d0d7fb0e63e121 (patch)
tree8e97fadc977d5f2d21d1c9372b2e50dc93bf13f7
parentfix test (diff)
downloadgolite-866c3293d9a76aa491e56cc978d0d7fb0e63e121.tar.gz
golite-866c3293d9a76aa491e56cc978d0d7fb0e63e121.tar.xz
fix breaking compatibility.
revert cf4bd560f1588d96c502b4c3407fe1a10cef4a28 close #394
-rw-r--r--backup.go4
-rw-r--r--error.go7
-rw-r--r--error_test.go8
-rw-r--r--sqlite3.go12
4 files changed, 15 insertions, 16 deletions
diff --git a/backup.go b/backup.go
index 7f1eec9..5ab3a54 100644
--- a/backup.go
+++ b/backup.go
@@ -48,7 +48,7 @@ func (b *SQLiteBackup) Step(p int) (bool, error) {
if ret == C.SQLITE_DONE {
return true, nil
} else if ret != 0 && ret != C.SQLITE_LOCKED && ret != C.SQLITE_BUSY {
- return false, &Error{Code: ErrNo(ret)}
+ return false, Error{Code: ErrNo(ret)}
}
return false, nil
}
@@ -79,7 +79,7 @@ func (b *SQLiteBackup) Close() error {
runtime.SetFinalizer(b, nil)
if ret != 0 {
- return &Error{Code: ErrNo(ret)}
+ return Error{Code: ErrNo(ret)}
}
return nil
}
diff --git a/error.go b/error.go
index be530e5..49ab890 100644
--- a/error.go
+++ b/error.go
@@ -58,7 +58,7 @@ var (
// Error return error message from errno.
func (err ErrNo) Error() string {
- return (&Error{Code: err}).Error()
+ return Error{Code: err}.Error()
}
// Extend return extended errno.
@@ -68,11 +68,10 @@ func (err ErrNo) Extend(by int) ErrNoExtended {
// Error return error message that is extended code.
func (err ErrNoExtended) Error() string {
- return (&Error{Code: ErrNo(C.int(err) & ErrNoMask), ExtendedCode: err}).Error()
+ return Error{Code: ErrNo(C.int(err) & ErrNoMask), ExtendedCode: err}.Error()
}
-// Error return error message.
-func (err *Error) Error() string {
+func (err Error) Error() string {
if err.err != "" {
return err.err
}
diff --git a/error_test.go b/error_test.go
index 339b57a..1ccbe5b 100644
--- a/error_test.go
+++ b/error_test.go
@@ -40,7 +40,7 @@ func TestCorruptDbErrors(t *testing.T) {
_, err = db.Exec("drop table foo")
}
- sqliteErr := err.(*Error)
+ sqliteErr := err.(Error)
if sqliteErr.Code != ErrNotADB {
t.Error("wrong error code for corrupted DB")
}
@@ -110,7 +110,7 @@ func TestExtendedErrorCodes_ForeignKey(t *testing.T) {
if err == nil {
t.Error("No error!")
} else {
- sqliteErr := err.(*Error)
+ sqliteErr := err.(Error)
if sqliteErr.Code != ErrConstraint {
t.Errorf("Wrong basic error code: %d != %d",
sqliteErr.Code, ErrConstraint)
@@ -166,7 +166,7 @@ func TestExtendedErrorCodes_NotNull(t *testing.T) {
if err == nil {
t.Error("No error!")
} else {
- sqliteErr := err.(*Error)
+ sqliteErr := err.(Error)
if sqliteErr.Code != ErrConstraint {
t.Errorf("Wrong basic error code: %d != %d",
sqliteErr.Code, ErrConstraint)
@@ -222,7 +222,7 @@ func TestExtendedErrorCodes_Unique(t *testing.T) {
if err == nil {
t.Error("No error!")
} else {
- sqliteErr := err.(*Error)
+ sqliteErr := err.(Error)
if sqliteErr.Code != ErrConstraint {
t.Errorf("Wrong basic error code: %d != %d",
sqliteErr.Code, ErrConstraint)
diff --git a/sqlite3.go b/sqlite3.go
index 2d504d9..3a9a4dd 100644
--- a/sqlite3.go
+++ b/sqlite3.go
@@ -298,7 +298,7 @@ func (ai *aggInfo) Done(ctx *C.sqlite3_context) {
// Commit transaction.
func (tx *SQLiteTx) Commit() error {
_, err := tx.c.exec(context.Background(), "COMMIT", nil)
- if err != nil && err.(*Error).Code == C.SQLITE_BUSY {
+ if err != nil && err.(Error).Code == C.SQLITE_BUSY {
// sqlite3 will leave the transaction open in this scenario.
// However, database/sql considers the transaction complete once we
// return from Commit() - we must clean up to honour its semantics.
@@ -399,12 +399,12 @@ func (c *SQLiteConn) AutoCommit() bool {
return int(C.sqlite3_get_autocommit(c.db)) != 0
}
-func (c *SQLiteConn) lastError() *Error {
+func (c *SQLiteConn) lastError() error {
rv := C.sqlite3_errcode(c.db)
if rv == C.SQLITE_OK {
return nil
}
- return &Error{
+ return Error{
Code: ErrNo(rv),
ExtendedCode: ErrNoExtended(C.sqlite3_extended_errcode(c.db)),
err: C.GoString(C.sqlite3_errmsg(c.db)),
@@ -519,7 +519,7 @@ func (c *SQLiteConn) begin(ctx context.Context) (driver.Tx, error) {
return &SQLiteTx{c}, nil
}
-func errorString(err *Error) string {
+func errorString(err Error) string {
return C.GoString(C.sqlite3_errstr(C.int(err.Code)))
}
@@ -601,7 +601,7 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
C.SQLITE_OPEN_CREATE,
nil)
if rv != 0 {
- return nil, &Error{Code: ErrNo(rv)}
+ return nil, Error{Code: ErrNo(rv)}
}
if db == nil {
return nil, errors.New("sqlite succeeded without returning a database")
@@ -609,7 +609,7 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) {
rv = C.sqlite3_busy_timeout(db, C.int(busyTimeout))
if rv != C.SQLITE_OK {
- return nil, &Error{Code: ErrNo(rv)}
+ return nil, Error{Code: ErrNo(rv)}
}
conn := &SQLiteConn{db: db, loc: loc, txlock: txlock}