Commit 786dc13f authored by gwenn's avatar gwenn

Add StmtStatus support.

parent f857010b
......@@ -65,6 +65,9 @@ func TestOpen(t *testing.T) {
db := open(t)
db.Trace(nil, nil)
db.SetAuthorizer(nil, nil)
db.Profile(nil, nil)
db.ProgressHandler(nil, 0, nil)
db.BusyHandler(nil, nil)
db.Close()
}
......@@ -95,15 +98,14 @@ func TestCreateTable(t *testing.T) {
func TestExists(t *testing.T) {
db := open(t)
defer db.Close()
createTable(db, t)
b, err := db.Exists("SELECT * FROM test")
b, err := db.Exists("SELECT 1 where 1 = 0")
if err != nil {
t.Fatalf("Error: %s", err)
}
if b {
t.Error("No row expected")
}
b, err = db.Exists("SELECT count(1) FROM test")
b, err = db.Exists("SELECT 1 where 1 = 1")
if err != nil {
t.Fatalf("Error: %s", err)
}
......@@ -244,6 +246,15 @@ func TestInsertWithStatement(t *testing.T) {
t.Errorf("Expected 'hello' <> %s\n", sstr)
}
}
if 999 != rs.Status(STMTSTATUS_FULLSCAN_STEP, false) {
t.Errorf("Expected full scan")
}
if 1 != rs.Status(STMTSTATUS_SORT, false) {
t.Errorf("Expected one sort")
}
if 0 != rs.Status(STMTSTATUS_AUTOINDEX, false) {
t.Errorf("Expected no auto index")
}
}
func TestTables(t *testing.T) {
......
......@@ -219,3 +219,16 @@ func (c *Conn) ProgressHandler(f ProgressHandler, freq int, arg interface{}) {
c.progressHandler = &sqliteProgressHandler{f, arg}
C.goSqlite3ProgressHandler(c.db, C.int(freq), unsafe.Pointer(c.progressHandler))
}
type StmtStatus int
const (
STMTSTATUS_FULLSCAN_STEP StmtStatus = C.SQLITE_STMTSTATUS_FULLSCAN_STEP
STMTSTATUS_SORT StmtStatus = C.SQLITE_STMTSTATUS_SORT
STMTSTATUS_AUTOINDEX StmtStatus = C.SQLITE_STMTSTATUS_AUTOINDEX
)
// Calls http://sqlite.org/c3ref/stmt_status.html
func (s *Stmt) Status(op StmtStatus, reset bool) int {
return int(C.sqlite3_stmt_status(s.stmt, C.int(op), btocint(reset)))
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment