mirror of
https://github.com/matrix-construct/construct
synced 2024-11-19 00:10:59 +01:00
ircd::db: Distinguish range compact from files compact in interface.
This commit is contained in:
parent
1906ac57b7
commit
8e11620100
3 changed files with 21 additions and 2 deletions
|
@ -47,6 +47,7 @@ namespace ircd::db
|
|||
uint64_t checkpoint(database &);
|
||||
void resume(database &);
|
||||
void check(database &);
|
||||
void compact(database &, const int &level, const compactor & = {});
|
||||
void compact(database &, const compactor & = {});
|
||||
void sort(database &, const bool &blocking = true);
|
||||
void flush(database &, const bool &sync = false);
|
||||
|
|
13
ircd/db.cc
13
ircd/db.cc
|
@ -436,7 +436,18 @@ ircd::db::compact(database &d,
|
|||
{
|
||||
db::column column{*c};
|
||||
compact(column, range, -1, cb);
|
||||
compact(column, -1, cb);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ircd::db::compact(database &d,
|
||||
const int &level,
|
||||
const compactor &cb)
|
||||
{
|
||||
for(const auto &c : d.columns)
|
||||
{
|
||||
db::column column{*c};
|
||||
compact(column, level, cb);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1526,7 +1526,7 @@ try
|
|||
|
||||
const auto colname
|
||||
{
|
||||
param.at(1, "*"_sv)
|
||||
param[1]
|
||||
};
|
||||
|
||||
const auto level
|
||||
|
@ -1539,6 +1539,13 @@ try
|
|||
db::database::get(dbname)
|
||||
};
|
||||
|
||||
if(!colname)
|
||||
{
|
||||
compact(database, level);
|
||||
out << "done" << std::endl;
|
||||
return true;
|
||||
}
|
||||
|
||||
const auto compact_column{[&out, &database, &level]
|
||||
(const string_view &colname)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue