Skip to content

Commit 81cf923

Browse files
authored
reset stmt when done (#305)
1 parent 9d46c02 commit 81cf923

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

c_src/sqlite3_nif.c

+4
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,7 @@ exqlite_multi_step(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
639639
return am_busy;
640640

641641
case SQLITE_DONE:
642+
sqlite3_reset(statement->statement);
642643
return enif_make_tuple2(env, am_done, rows);
643644

644645
case SQLITE_ROW:
@@ -683,10 +684,13 @@ exqlite_step(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
683684
am_row,
684685
make_row(env, statement->statement));
685686
case SQLITE_BUSY:
687+
sqlite3_reset(statement->statement);
686688
return am_busy;
687689
case SQLITE_DONE:
690+
sqlite3_reset(statement->statement);
688691
return am_done;
689692
default:
693+
sqlite3_reset(statement->statement);
690694
return make_sqlite3_error_tuple(env, rc, conn->db);
691695
}
692696
}

lib/exqlite/sqlite3.ex

-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,6 @@ defmodule Exqlite.Sqlite3 do
177177
args_count = length(args)
178178

179179
if args_count == params_count do
180-
reset(stmt)
181180
bind_all(args, stmt, 1)
182181
else
183182
raise ArgumentError, "expected #{params_count} arguments, got #{args_count}"

0 commit comments

Comments
 (0)