Re-enabled a lot of tests
This commit is contained in:
@@ -89,7 +89,7 @@ get_sqlite3_return_code_msg(int r)
|
|||||||
case SQLITE_INTERNAL: return "internal";
|
case SQLITE_INTERNAL: return "internal";
|
||||||
case SQLITE_PERM: return "perm";
|
case SQLITE_PERM: return "perm";
|
||||||
case SQLITE_ABORT: return "abort";
|
case SQLITE_ABORT: return "abort";
|
||||||
case SQLITE_BUSY: return "busy";
|
case SQLITE_BUSY: return "$busy";
|
||||||
case SQLITE_LOCKED: return "locked";
|
case SQLITE_LOCKED: return "locked";
|
||||||
case SQLITE_NOMEM: return "nomem";
|
case SQLITE_NOMEM: return "nomem";
|
||||||
case SQLITE_READONLY: return "readonly";
|
case SQLITE_READONLY: return "readonly";
|
||||||
@@ -112,7 +112,7 @@ get_sqlite3_return_code_msg(int r)
|
|||||||
case SQLITE_RANGE: return "range";
|
case SQLITE_RANGE: return "range";
|
||||||
case SQLITE_NOTADB: return "notadb";
|
case SQLITE_NOTADB: return "notadb";
|
||||||
case SQLITE_ROW: return "row";
|
case SQLITE_ROW: return "row";
|
||||||
case SQLITE_DONE: return "done";
|
case SQLITE_DONE: return "$done";
|
||||||
}
|
}
|
||||||
|
|
||||||
return "unknown";
|
return "unknown";
|
||||||
@@ -865,6 +865,38 @@ esqlite_close(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
|||||||
return make_atom(env, "ok");
|
return make_atom(env, "ok");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Exec a sql statement
|
||||||
|
*/
|
||||||
|
static ERL_NIF_TERM
|
||||||
|
esqlite_exec(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
||||||
|
{
|
||||||
|
esqlite3 *conn;
|
||||||
|
ErlNifBinary bin;
|
||||||
|
int rc;
|
||||||
|
ERL_NIF_TERM eos = enif_make_int(env, 0);
|
||||||
|
|
||||||
|
if(argc != 2) {
|
||||||
|
return enif_make_badarg(env);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!enif_get_resource(env, argv[0], esqlite3_type, (void **) &conn)) {
|
||||||
|
return enif_make_badarg(env);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!enif_inspect_iolist_as_binary(env, enif_make_list2(env, argv[1], eos), &bin)) {
|
||||||
|
return enif_make_badarg(env);
|
||||||
|
}
|
||||||
|
|
||||||
|
rc = sqlite3_exec(conn->db, (char *) bin.data, NULL, NULL, NULL);
|
||||||
|
if(rc != SQLITE_OK) {
|
||||||
|
return make_sqlite3_error_tuple(env, rc);
|
||||||
|
}
|
||||||
|
|
||||||
|
return make_atom(env, "ok");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Prepare the sql statement
|
* Prepare the sql statement
|
||||||
*/
|
*/
|
||||||
@@ -1353,9 +1385,9 @@ esqlite_step(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
|||||||
case SQLITE_DONE:
|
case SQLITE_DONE:
|
||||||
/* since 3.6.23.1 it is no longer required to do an explict reset.
|
/* since 3.6.23.1 it is no longer required to do an explict reset.
|
||||||
*/
|
*/
|
||||||
return make_atom(env, "done");
|
return make_atom(env, "$done");
|
||||||
case SQLITE_BUSY:
|
case SQLITE_BUSY:
|
||||||
return make_atom(env, "busy");
|
return make_atom(env, "$busy");
|
||||||
}
|
}
|
||||||
|
|
||||||
return make_sqlite3_error_tuple(env, rc);
|
return make_sqlite3_error_tuple(env, rc);
|
||||||
@@ -1685,6 +1717,7 @@ static ErlNifFunc nif_funcs[] = {
|
|||||||
{"open", 1, esqlite_open, ERL_NIF_DIRTY_JOB_IO_BOUND},
|
{"open", 1, esqlite_open, ERL_NIF_DIRTY_JOB_IO_BOUND},
|
||||||
{"close", 1, esqlite_close, ERL_NIF_DIRTY_JOB_IO_BOUND},
|
{"close", 1, esqlite_close, ERL_NIF_DIRTY_JOB_IO_BOUND},
|
||||||
|
|
||||||
|
{"exec", 2, esqlite_exec},
|
||||||
{"prepare", 3, esqlite_prepare},
|
{"prepare", 3, esqlite_prepare},
|
||||||
|
|
||||||
{"column_names", 1, esqlite_column_names},
|
{"column_names", 1, esqlite_column_names},
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
% set_update_hook/2, set_update_hook/3,
|
% set_update_hook/2, set_update_hook/3,
|
||||||
|
|
||||||
|
exec/2,
|
||||||
prepare/2,
|
prepare/2,
|
||||||
prepare/3,
|
prepare/3,
|
||||||
|
|
||||||
@@ -45,7 +46,6 @@
|
|||||||
step/1,
|
step/1,
|
||||||
reset/1
|
reset/1
|
||||||
|
|
||||||
% exec/2, exec/3, exec/4,
|
|
||||||
% insert/2, insert/3,
|
% insert/2, insert/3,
|
||||||
%
|
%
|
||||||
% fetchone/1,
|
% fetchone/1,
|
||||||
@@ -391,6 +391,17 @@ changes(#esqlite3{db=Connection}) ->
|
|||||||
get_autocommit(#esqlite3{db=Connection}) ->
|
get_autocommit(#esqlite3{db=Connection}) ->
|
||||||
esqlite3_nif:get_autocommit(Connection).
|
esqlite3_nif:get_autocommit(Connection).
|
||||||
|
|
||||||
|
%% @doc Compile a SQL statement. Returns a cached compiled statement which can be used in
|
||||||
|
%% queries.
|
||||||
|
%%
|
||||||
|
-spec exec(Connection, Sql) -> ExecResult
|
||||||
|
when Connection :: esqlite3(),
|
||||||
|
Sql :: sql(),
|
||||||
|
ExecResult :: ok | {error, _}.
|
||||||
|
exec(#esqlite3{db=Connection}, Sql) ->
|
||||||
|
esqlite3_nif:exec(Connection, Sql).
|
||||||
|
|
||||||
|
|
||||||
%% @doc Compile a SQL statement. Returns a cached compiled statement which can be used in
|
%% @doc Compile a SQL statement. Returns a cached compiled statement which can be used in
|
||||||
%% queries.
|
%% queries.
|
||||||
%%
|
%%
|
||||||
@@ -476,8 +487,6 @@ column_names(#esqlite3_stmt{stmt=Stmt}) ->
|
|||||||
column_decltypes(#esqlite3_stmt{stmt=Stmt}) ->
|
column_decltypes(#esqlite3_stmt{stmt=Stmt}) ->
|
||||||
esqlite3_nif:column_decltypes(Stmt).
|
esqlite3_nif:column_decltypes(Stmt).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%%
|
%%
|
||||||
%% Backup API
|
%% Backup API
|
||||||
%%
|
%%
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
last_insert_rowid/1,
|
last_insert_rowid/1,
|
||||||
changes/1,
|
changes/1,
|
||||||
|
|
||||||
|
exec/2,
|
||||||
prepare/3,
|
prepare/3,
|
||||||
|
|
||||||
column_names/1,
|
column_names/1,
|
||||||
@@ -97,6 +98,16 @@ open(_Filename) ->
|
|||||||
close(_Db) ->
|
close(_Db) ->
|
||||||
erlang:nif_error(nif_library_not_loaded).
|
erlang:nif_error(nif_library_not_loaded).
|
||||||
|
|
||||||
|
%% @doc Execute a sql statement
|
||||||
|
%%
|
||||||
|
-spec exec(Connection, Sql) -> ExecResult
|
||||||
|
when Connection :: esqlite3(),
|
||||||
|
Sql :: sql(),
|
||||||
|
ExecResult :: ok | {error, _}.
|
||||||
|
exec(_Connection, _Sql) ->
|
||||||
|
erlang:nif_error(nif_library_not_loaded).
|
||||||
|
|
||||||
|
|
||||||
%% @doc Compile a sql statement.
|
%% @doc Compile a sql statement.
|
||||||
%%
|
%%
|
||||||
-spec prepare(Connection, Sql, PrepareFlags) -> PrepareResult
|
-spec prepare(Connection, Sql, PrepareFlags) -> PrepareResult
|
||||||
|
|||||||
@@ -83,21 +83,21 @@ step_test() ->
|
|||||||
{ok, Stmt} = esqlite3:prepare(C, "select 1, 2, 3;" ),
|
{ok, Stmt} = esqlite3:prepare(C, "select 1, 2, 3;" ),
|
||||||
|
|
||||||
?assertEqual([1,2,3], esqlite3:step(Stmt)),
|
?assertEqual([1,2,3], esqlite3:step(Stmt)),
|
||||||
?assertEqual(done, esqlite3:step(Stmt)),
|
?assertEqual('$done', esqlite3:step(Stmt)),
|
||||||
|
|
||||||
%% After the done, the statement is reset and
|
%% After the done, the statement is reset and
|
||||||
?assertEqual([1,2,3], esqlite3:step(Stmt)),
|
?assertEqual([1,2,3], esqlite3:step(Stmt)),
|
||||||
?assertEqual(done, esqlite3:step(Stmt)),
|
?assertEqual('$done', esqlite3:step(Stmt)),
|
||||||
|
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
|
iodata_test() ->
|
||||||
|
{ok, C} = esqlite3:open(":memory:"),
|
||||||
|
|
||||||
%iodata_test() ->
|
?assertError(badarg, esqlite3:exec(C, 1000)),
|
||||||
% {ok, C} = esqlite3:open(":memory:"),
|
?assertError(badarg, esqlite3:exec(C, 1000)),
|
||||||
% {error, no_iodata} = esqlite3:exec(1000, C),
|
|
||||||
% {error, no_iodata} = esqlite3:insert(1000, C),
|
|
||||||
|
|
||||||
% ok.
|
ok.
|
||||||
|
|
||||||
open_multiple_same_databases_test() ->
|
open_multiple_same_databases_test() ->
|
||||||
cleanup(),
|
cleanup(),
|
||||||
@@ -117,25 +117,25 @@ open_multiple_different_databases_test() ->
|
|||||||
cleanup(),
|
cleanup(),
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
%get_autocommit_test() ->
|
get_autocommit_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
{ok, Db} = esqlite3:open(":memory:"),
|
||||||
% ok = esqlite3:exec("CREATE TABLE test (id INTEGER PRIMARY KEY, val STRING);", Db),
|
ok = esqlite3:exec(Db, "CREATE TABLE test (id INTEGER PRIMARY KEY, val STRING);"),
|
||||||
% true = esqlite3:get_autocommit(Db),
|
true = esqlite3:get_autocommit(Db),
|
||||||
% ok = esqlite3:exec("BEGIN;", Db),
|
ok = esqlite3:exec(Db, "BEGIN;"),
|
||||||
% false = esqlite3:get_autocommit(Db),
|
false = esqlite3:get_autocommit(Db),
|
||||||
% ok = esqlite3:exec("INSERT INTO test (val) VALUES ('this is a test');", Db),
|
ok = esqlite3:exec(Db, "INSERT INTO test (val) VALUES ('this is a test');"),
|
||||||
% ok = esqlite3:exec("COMMIT;", Db),
|
ok = esqlite3:exec(Db, "COMMIT;"),
|
||||||
% true = esqlite3:get_autocommit(Db),
|
true = esqlite3:get_autocommit(Db),
|
||||||
% ok.
|
ok.
|
||||||
|
|
||||||
%last_insert_rowid_test() ->
|
last_insert_rowid_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
{ok, Db} = esqlite3:open(":memory:"),
|
||||||
% ok = esqlite3:exec("CREATE TABLE test (id INTEGER PRIMARY KEY, val STRING);", Db),
|
ok = esqlite3:exec(Db, "CREATE TABLE test (id INTEGER PRIMARY KEY, val STRING);"),
|
||||||
% ok = esqlite3:exec("INSERT INTO test (val) VALUES ('this is a test');", Db),
|
ok = esqlite3:exec(Db, "INSERT INTO test (val) VALUES ('this is a test');"),
|
||||||
% {ok, 1} = esqlite3:last_insert_rowid(Db),
|
1 = esqlite3:last_insert_rowid(Db),
|
||||||
% ok = esqlite3:exec("INSERT INTO test (val) VALUES ('this is another test');", Db),
|
ok = esqlite3:exec(Db, "INSERT INTO test (val) VALUES ('this is another test');"),
|
||||||
% {ok, 2} = esqlite3:last_insert_rowid(Db),
|
2 = esqlite3:last_insert_rowid(Db),
|
||||||
% ok.
|
ok.
|
||||||
|
|
||||||
%update_hook_test() ->
|
%update_hook_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
% {ok, Db} = esqlite3:open(":memory:"),
|
||||||
@@ -149,44 +149,44 @@ open_multiple_different_databases_test() ->
|
|||||||
% ok = receive {delete, "test", 1} -> ok after 150 -> no_message end,
|
% ok = receive {delete, "test", 1} -> ok after 150 -> no_message end,
|
||||||
% ok.
|
% ok.
|
||||||
|
|
||||||
%simple_query_test() ->
|
simple_query_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
{ok, Db} = esqlite3:open(":memory:"),
|
||||||
% ok = esqlite3:exec("begin;", Db),
|
ok = esqlite3:exec(Db, "begin;"),
|
||||||
% ok = esqlite3:exec("create table test_table(one varchar(10), two int);", Db),
|
ok = esqlite3:exec(Db, "create table test_table(one varchar(10), two int);"),
|
||||||
% ok = esqlite3:exec("insert into test_table values('hello1', 10);", Db),
|
ok = esqlite3:exec(Db, "insert into test_table values('hello1', 10);"),
|
||||||
% {ok, 1} = esqlite3:changes(Db),
|
?assertEqual(1, esqlite3:changes(Db)),
|
||||||
%
|
|
||||||
% ok = esqlite3:exec("insert into test_table values('hello2', 11);", Db),
|
|
||||||
% {ok, 1} = esqlite3:changes(Db),
|
|
||||||
% ok = esqlite3:exec("insert into test_table values('hello3', 12);", Db),
|
|
||||||
% {ok, 1} = esqlite3:changes(Db),
|
|
||||||
% ok = esqlite3:exec("insert into test_table values('hello4', 13);", Db),
|
|
||||||
% {ok, 1} = esqlite3:changes(Db),
|
|
||||||
% ok = esqlite3:exec("commit;", Db),
|
|
||||||
% ok = esqlite3:exec("select * from test_table;", Db),
|
|
||||||
%
|
|
||||||
% ok = esqlite3:exec("delete from test_table;", Db),
|
|
||||||
% {ok, 4} = esqlite3:changes(Db),
|
|
||||||
|
|
||||||
% ok.
|
ok = esqlite3:exec(Db, "insert into test_table values('hello2', 11);"),
|
||||||
|
?assertEqual(1, esqlite3:changes(Db)),
|
||||||
|
ok = esqlite3:exec(Db, "insert into test_table values('hello3', 12);"),
|
||||||
|
?assertEqual(1, esqlite3:changes(Db)),
|
||||||
|
ok = esqlite3:exec(Db, "insert into test_table values('hello4', 13);"),
|
||||||
|
?assertEqual(1, esqlite3:changes(Db)),
|
||||||
|
ok = esqlite3:exec(Db, "commit;"),
|
||||||
|
ok = esqlite3:exec(Db, "select * from test_table;"),
|
||||||
|
|
||||||
|
ok = esqlite3:exec(Db, "delete from test_table;"),
|
||||||
|
?assertEqual(4, esqlite3:changes(Db)),
|
||||||
|
|
||||||
|
ok.
|
||||||
|
|
||||||
|
prepare2_test() ->
|
||||||
|
{ok, Db} = esqlite3:open(":memory:"),
|
||||||
|
esqlite3:exec(Db, "begin;"),
|
||||||
|
esqlite3:exec(Db, "create table test_table(one varchar(10), two int);"),
|
||||||
|
{ok, Statement} = esqlite3:prepare(Db, "insert into test_table values('one', 2)"),
|
||||||
|
|
||||||
|
'$done' = esqlite3:step(Statement),
|
||||||
|
1 = esqlite3:changes(Db),
|
||||||
|
|
||||||
|
ok = esqlite3:exec(Db, "insert into test_table values('hello4', 13);"),
|
||||||
|
|
||||||
%prepare_test() ->
|
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
|
||||||
% esqlite3:exec("begin;", Db),
|
|
||||||
% esqlite3:exec("create table test_table(one varchar(10), two int);", Db),
|
|
||||||
% {ok, Statement} = esqlite3:prepare("insert into test_table values('one', 2)", Db),
|
|
||||||
%
|
|
||||||
% '$done' = esqlite3:step(Statement),
|
|
||||||
% {ok, 1} = esqlite3:changes(Db),
|
|
||||||
%
|
|
||||||
% ok = esqlite3:exec("insert into test_table values('hello4', 13);", Db),
|
|
||||||
%
|
|
||||||
%% Check if the values are there.
|
%% Check if the values are there.
|
||||||
% [{<<"one">>, 2}, {<<"hello4">>, 13}] = esqlite3:q("select * from test_table order by two", Db),
|
%% [{<<"one">>, 2}, {<<"hello4">>, 13}] = esqlite3:q(Db, "select * from test_table order by two"),
|
||||||
% esqlite3:exec("commit;", Db),
|
esqlite3:exec(Db, "commit;"),
|
||||||
% esqlite3:close(Db),
|
esqlite3:close(Db),
|
||||||
|
|
||||||
% ok.
|
ok.
|
||||||
|
|
||||||
%bind_test() ->
|
%bind_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
% {ok, Db} = esqlite3:open(":memory:"),
|
||||||
@@ -339,41 +339,43 @@ open_multiple_different_databases_test() ->
|
|||||||
% {} = esqlite3:column_types(Stmt2),
|
% {} = esqlite3:column_types(Stmt2),
|
||||||
%
|
%
|
||||||
% ok.
|
% ok.
|
||||||
%
|
|
||||||
%nil_column_types_test() ->
|
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
|
||||||
% ok = esqlite3:exec("begin;", Db),
|
|
||||||
% ok = esqlite3:exec("create table t1(c1 variant);", Db),
|
|
||||||
% ok = esqlite3:exec("commit;", Db),
|
|
||||||
|
|
||||||
% {ok, Stmt} = esqlite3:prepare("select c1 + 1, c1 from t1", Db),
|
nil_column_decltypes_test() ->
|
||||||
% {nil, variant} = esqlite3:column_types(Stmt),
|
{ok, Db} = esqlite3:open(":memory:"),
|
||||||
% ok.
|
ok = esqlite3:exec(Db, "begin;"),
|
||||||
|
ok = esqlite3:exec(Db, "create table t1(c1 variant);"),
|
||||||
|
ok = esqlite3:exec(Db, "commit;"),
|
||||||
|
|
||||||
%reset_test() ->
|
{ok, Stmt} = esqlite3:prepare(Db, "select c1 + 1, c1 from t1"),
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
?assertEqual([undefined, <<"variant">>], esqlite3:column_decltypes(Stmt)),
|
||||||
|
|
||||||
|
ok.
|
||||||
|
|
||||||
|
reset_test() ->
|
||||||
|
{ok, Db} = esqlite3:open(":memory:"),
|
||||||
|
|
||||||
|
{ok, Stmt} = esqlite3:prepare(Db, "select * from (values (1), (2));"),
|
||||||
|
[1] = esqlite3:step(Stmt),
|
||||||
|
|
||||||
|
ok = esqlite3:reset(Stmt),
|
||||||
|
|
||||||
|
[1] = esqlite3:step(Stmt),
|
||||||
|
[2] = esqlite3:step(Stmt),
|
||||||
|
'$done' = esqlite3:step(Stmt),
|
||||||
|
|
||||||
|
% After a done the statement is automatically reset.
|
||||||
|
[1] = esqlite3:step(Stmt),
|
||||||
|
|
||||||
|
% Calling reset multiple times...
|
||||||
|
ok = esqlite3:reset(Stmt),
|
||||||
|
ok = esqlite3:reset(Stmt),
|
||||||
|
ok = esqlite3:reset(Stmt),
|
||||||
|
ok = esqlite3:reset(Stmt),
|
||||||
|
|
||||||
% {ok, Stmt} = esqlite3:prepare("select * from (values (1), (2));", Db),
|
|
||||||
% {row, {1}} = esqlite3:step(Stmt),
|
|
||||||
%
|
|
||||||
% ok = esqlite3:reset(Stmt),
|
|
||||||
% {row, {1}} = esqlite3:step(Stmt),
|
|
||||||
% {row, {2}} = esqlite3:step(Stmt),
|
|
||||||
% '$done' = esqlite3:step(Stmt),
|
|
||||||
%
|
|
||||||
% % After a done the statement is automatically reset.
|
|
||||||
% {row, {1}} = esqlite3:step(Stmt),
|
|
||||||
%
|
|
||||||
% % Calling reset multiple times...
|
|
||||||
% ok = esqlite3:reset(Stmt),
|
|
||||||
% ok = esqlite3:reset(Stmt),
|
|
||||||
% ok = esqlite3:reset(Stmt),
|
|
||||||
% ok = esqlite3:reset(Stmt),
|
|
||||||
%
|
|
||||||
% The statement should still be reset.
|
% The statement should still be reset.
|
||||||
% {row, {1}} = esqlite3:step(Stmt),
|
[1] = esqlite3:step(Stmt),
|
||||||
%
|
|
||||||
% ok.
|
ok.
|
||||||
%
|
%
|
||||||
%foreach_test() ->
|
%foreach_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
% {ok, Db} = esqlite3:open(":memory:"),
|
||||||
@@ -583,20 +585,20 @@ open_multiple_different_databases_test() ->
|
|||||||
% ok.
|
% ok.
|
||||||
|
|
||||||
|
|
||||||
%sqlite_version_test() ->
|
sqlite_version_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
{ok, Db} = esqlite3:open(":memory:"),
|
||||||
% {ok, Stmt} = esqlite3:prepare("select sqlite_version() as sqlite_version;", Db),
|
{ok, Stmt} = esqlite3:prepare(Db, "select sqlite_version() as sqlite_version;"),
|
||||||
% {sqlite_version} = esqlite3:column_names(Stmt),
|
[<<"sqlite_version">>] = esqlite3:column_names(Stmt),
|
||||||
%% ?assertEqual({row, {<<"3.38.0">>}}, esqlite3:step(Stmt)),
|
?assertEqual([<<"3.38.0">>], esqlite3:step(Stmt)),
|
||||||
% ok.
|
ok.
|
||||||
|
|
||||||
%sqlite_source_id_test() ->
|
sqlite_source_id_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
{ok, Db} = esqlite3:open(":memory:"),
|
||||||
% {ok, Stmt} = esqlite3:prepare("select sqlite_source_id() as sqlite_source_id;", Db),
|
{ok, Stmt} = esqlite3:prepare(Db, "select sqlite_source_id() as sqlite_source_id;"),
|
||||||
% {sqlite_source_id} = esqlite3:column_names(Stmt),
|
[<<"sqlite_source_id">>] = esqlite3:column_names(Stmt),
|
||||||
% ?assertEqual({row, {<<"2022-02-22 18:58:40 40fa792d359f84c3b9e9d6623743e1a59826274e221df1bde8f47086968a1bab">>}},
|
?assertEqual([<<"2022-02-22 18:58:40 40fa792d359f84c3b9e9d6623743e1a59826274e221df1bde8f47086968a1bab">>],
|
||||||
% esqlite3:step(Stmt)),
|
esqlite3:step(Stmt)),
|
||||||
% ok.
|
ok.
|
||||||
|
|
||||||
%interrupt_on_timeout_test() ->
|
%interrupt_on_timeout_test() ->
|
||||||
% {ok, Db} = esqlite3:open(":memory:"),
|
% {ok, Db} = esqlite3:open(":memory:"),
|
||||||
|
|||||||
Reference in New Issue
Block a user