diff --git a/include/tsqlite.h b/include/tsqlite.h index de09ac7..740d43f 100644 --- a/include/tsqlite.h +++ b/include/tsqlite.h @@ -49,7 +49,10 @@ typedef struct tsqlite_statement { /// @return compiled statement Result(tsqlite_statement*) tsqlite_statement_compile(tsqlite_connection* conn, str sql_code); -void tsqlite_statement_free(tsqlite_statement* st); +void tsqlite_statement_free(NULLABLE(tsqlite_statement*) st); + +/// call this after executing a compiled statement to use it again +void tsqlite_statement_reset(NULLABLE(tsqlite_statement*) st); /// @brief execute statement or move to next result row. /// Documentation: https://sqlite.org/c3ref/step.html @@ -66,9 +69,6 @@ void tsqlite_statement_free(tsqlite_statement* st); /// @return is result row avaliable Result(bool) tsqlite_statement_step(tsqlite_statement* self); -/// call this after executing a compiled statement to use it again -Result(void) tsqlite_statement_reset(tsqlite_statement* st); - /// Bind value to a placeholder Result(void) tsqlite_statement_bind_null(tsqlite_statement* self, cstr key); Result(void) tsqlite_statement_bind_i64(tsqlite_statement* self, cstr key, i64 v); diff --git a/src/statement.c b/src/statement.c index 8a827c0..63c32ce 100644 --- a/src/statement.c +++ b/src/statement.c @@ -27,11 +27,12 @@ void tsqlite_statement_free(tsqlite_statement* self){ free(self); } -Result(void) tsqlite_statement_reset(tsqlite_statement* self){ - try_sqlite3(self->conn, sqlite3_reset(self->st)); +void tsqlite_statement_reset(tsqlite_statement* self){ + if(!self) + return; + sqlite3_reset(self->st); self->result_row = -1; self->result_col = -1; - return RESULT_VOID; }