mirror of
https://github.com/matrix-construct/construct
synced 2024-11-18 07:50:57 +01:00
modules/console: Improve/add db__cache subcmds.
This commit is contained in:
parent
8537cca439
commit
926a125303
1 changed files with 82 additions and 4 deletions
|
@ -1472,19 +1472,24 @@ try
|
||||||
{
|
{
|
||||||
const params param{line, " ",
|
const params param{line, " ",
|
||||||
{
|
{
|
||||||
"dbname", "column"
|
"dbname", "column", "[key]"
|
||||||
}};
|
}};
|
||||||
|
|
||||||
const auto dbname
|
const auto &dbname
|
||||||
{
|
{
|
||||||
param.at(0)
|
param.at(0)
|
||||||
};
|
};
|
||||||
|
|
||||||
const auto colname
|
const auto &colname
|
||||||
{
|
{
|
||||||
param[1]
|
param[1]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const auto &key
|
||||||
|
{
|
||||||
|
param[2]
|
||||||
|
};
|
||||||
|
|
||||||
auto &database
|
auto &database
|
||||||
{
|
{
|
||||||
db::database::get(dbname)
|
db::database::get(dbname)
|
||||||
|
@ -1504,6 +1509,30 @@ try
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
const auto remove{[&out, &database]
|
||||||
|
(const string_view &colname, const string_view &key)
|
||||||
|
{
|
||||||
|
db::column column
|
||||||
|
{
|
||||||
|
database, colname
|
||||||
|
};
|
||||||
|
|
||||||
|
const bool removed[]
|
||||||
|
{
|
||||||
|
db::remove(cache(column), key),
|
||||||
|
db::remove(cache_compressed(column), key)
|
||||||
|
};
|
||||||
|
|
||||||
|
out << "Removed key from";
|
||||||
|
if(removed[0])
|
||||||
|
out << " [uncompressed cache]";
|
||||||
|
|
||||||
|
if(removed[1])
|
||||||
|
out << " [compressed cache]";
|
||||||
|
|
||||||
|
out << std::endl;
|
||||||
|
}};
|
||||||
|
|
||||||
if(!colname || colname == "**")
|
if(!colname || colname == "**")
|
||||||
{
|
{
|
||||||
for(const auto &colname : database.column_names)
|
for(const auto &colname : database.column_names)
|
||||||
|
@ -1512,8 +1541,57 @@ try
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!key)
|
||||||
|
{
|
||||||
clear(colname);
|
clear(colname);
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
remove(colname, key);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch(const std::out_of_range &e)
|
||||||
|
{
|
||||||
|
out << "No open database by that name" << std::endl;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
console_cmd__db__cache__fetch(opt &out, const string_view &line)
|
||||||
|
try
|
||||||
|
{
|
||||||
|
const params param{line, " ",
|
||||||
|
{
|
||||||
|
"dbname", "column", "key"
|
||||||
|
}};
|
||||||
|
|
||||||
|
const auto dbname
|
||||||
|
{
|
||||||
|
param.at(0)
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto colname
|
||||||
|
{
|
||||||
|
param[1]
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto key
|
||||||
|
{
|
||||||
|
param[2]
|
||||||
|
};
|
||||||
|
|
||||||
|
auto &database
|
||||||
|
{
|
||||||
|
db::database::get(dbname)
|
||||||
|
};
|
||||||
|
|
||||||
|
db::column column
|
||||||
|
{
|
||||||
|
database, colname
|
||||||
|
};
|
||||||
|
|
||||||
|
db::fetch(cache(column), column, key);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
catch(const std::out_of_range &e)
|
catch(const std::out_of_range &e)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue