Method: Libsql::SQLite3::Statement#reset!

Defined in:
ext/libsql/c/libsql_statement.c

#reset!nil

reset the SQLite3 statement back to its initial state.

Returns:

  • (nil)


239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
# File 'ext/libsql/c/libsql_statement.c', line 239

VALUE libsql_ext_sqlite3_statement_reset(VALUE self)
{
    libsql_ext_sqlite3_stmt  *libsql_ext_stmt;
    int               rc;
    
    Data_Get_Struct(self, libsql_ext_sqlite3_stmt, libsql_ext_stmt);
    if ( libsql_ext_stmt->stmt ) {
        rc = sqlite3_reset( libsql_ext_stmt->stmt );
        if ( rc != SQLITE_OK ) {
            rb_raise(eLS_Error, "Error resetting statement: [SQLITE_ERROR %d] : %s\n",
                    rc, sqlite3_errmsg( sqlite3_db_handle( libsql_ext_stmt->stmt) ));
        }
        return Qnil;
    } else {
        rb_raise(eLS_Error, "Attempting to free a non-existent statement");
    }
}