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