Specs for the backup api
This commit is contained in:
@@ -943,7 +943,7 @@ esqlite_backup_step(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
||||
|
||||
int rc = sqlite3_backup_step(backup->backup, n_page);
|
||||
if(rc == SQLITE_DONE) {
|
||||
return make_atom(env, "done");
|
||||
return make_atom(env, "$done");
|
||||
}
|
||||
|
||||
if(rc != SQLITE_OK) {
|
||||
|
||||
@@ -430,22 +430,28 @@ backup_init(#esqlite3{db=Dest}, DestName, #esqlite3{db=Src}, SrcName) ->
|
||||
end.
|
||||
|
||||
%% @doc Release the resources held by the backup.
|
||||
-spec backup_finish(esqlite3_backup()) -> ok | {error, _}.
|
||||
-spec backup_finish(Backup) -> Result when
|
||||
Backup :: esqlite3_backup(),
|
||||
Result :: ok | error().
|
||||
backup_finish(#esqlite3_backup{backup=Backup}) ->
|
||||
esqlite3_nif:backup_finish(Backup).
|
||||
|
||||
%% @doc Do a backup step.
|
||||
-spec backup_step(esqlite3_backup(), integer()) -> ok | {error, _}.
|
||||
-spec backup_step(esqlite3_backup(), integer()) -> ok | '$done' | error().
|
||||
backup_step(#esqlite3_backup{backup=Backup}, NPage) ->
|
||||
esqlite3_nif:backup_step(Backup, NPage).
|
||||
|
||||
%% @doc Get the remaining number of pages which need to be backed up.
|
||||
-spec backup_remaining(esqlite3_backup()) -> pos_integer().
|
||||
-spec backup_remaining(Backup) -> Remaining when
|
||||
Backup :: esqlite3_backup(),
|
||||
Remaining :: integer().
|
||||
backup_remaining(#esqlite3_backup{backup=Backup}) ->
|
||||
esqlite3_nif:backup_remaining(Backup).
|
||||
|
||||
%% @doc Get the remaining number of pages which need to be backed up.
|
||||
-spec backup_pagecount(esqlite3_backup()) -> pos_integer().
|
||||
-spec backup_pagecount(Backup) -> Pagecount when
|
||||
Backup :: esqlite3_backup(),
|
||||
Pagecount :: integer().
|
||||
backup_pagecount(#esqlite3_backup{backup=Backup}) ->
|
||||
esqlite3_nif:backup_pagecount(Backup).
|
||||
|
||||
|
||||
@@ -224,25 +224,37 @@ column_decltypes(_Stmt) ->
|
||||
|
||||
|
||||
%% @doc Initialize a backup procedure of a database.
|
||||
% erlang:nif_error(nif_library_not_loaded).
|
||||
-spec backup_init(Destination, DestinationName, Source, SourceName) -> InitResult when
|
||||
Destination :: esqlite3_ref(),
|
||||
DestinationName :: iodata(),
|
||||
Source :: esqlite3_ref(),
|
||||
SourceName :: iodata(),
|
||||
InitResult :: {ok, esqlite3_backup_ref()} | {error, _}.
|
||||
InitResult :: {ok, esqlite3_backup_ref()} | error().
|
||||
backup_init(_Dest, _DestName, _Src, _SrcName) ->
|
||||
erlang:nif_error(nif_library_not_loaded).
|
||||
|
||||
-spec backup_remaining(Backup) -> Remaining when
|
||||
Backup :: esqlite3_backup_ref(),
|
||||
Remaining :: integer().
|
||||
backup_remaining(_Backup) ->
|
||||
erlang:nif_error(nif_library_not_loaded).
|
||||
|
||||
-spec backup_pagecount(Backup) -> Pagecount when
|
||||
Backup :: esqlite3_backup_ref(),
|
||||
Pagecount :: integer().
|
||||
backup_pagecount(_Backup) ->
|
||||
erlang:nif_error(nif_library_not_loaded).
|
||||
|
||||
-spec backup_step(Backup, NPage) -> Result when
|
||||
Backup :: esqlite3_backup_ref(),
|
||||
NPage :: integer(),
|
||||
Result :: ok | '$done' | error().
|
||||
backup_step(_Backup, _PageCount) ->
|
||||
erlang:nif_error(nif_library_not_loaded).
|
||||
|
||||
-spec backup_finish(Backup) -> Result when
|
||||
Backup :: esqlite3_backup_ref(),
|
||||
Result :: ok | error().
|
||||
backup_finish(_Backup) ->
|
||||
erlang:nif_error(nif_library_not_loaded).
|
||||
|
||||
|
||||
@@ -430,7 +430,7 @@ backup_test() ->
|
||||
0 = esqlite3:backup_remaining(Backup),
|
||||
0 = esqlite3:backup_pagecount(Backup),
|
||||
|
||||
done = esqlite3:backup_step(Backup, 1),
|
||||
'$done' = esqlite3:backup_step(Backup, 1),
|
||||
|
||||
cleanup(),
|
||||
|
||||
@@ -467,7 +467,7 @@ backup1_test() ->
|
||||
27 = esqlite3:backup_pagecount(Backup),
|
||||
|
||||
%% Do all the remaining pages.
|
||||
done = esqlite3:backup_step(Backup, -1),
|
||||
'$done' = esqlite3:backup_step(Backup, -1),
|
||||
|
||||
0 = esqlite3:backup_remaining(Backup),
|
||||
27 = esqlite3:backup_pagecount(Backup),
|
||||
|
||||
Reference in New Issue
Block a user