refactor(db): GetTableFile

Former-commit-id: 9b5f8d3a6c3202acc5b16f9b75f4ebe9cb2c6c50
pull/191/head
Xu Peng 2019-05-27 18:30:58 +08:00
parent 59fa814af4
commit ba8929e9a4
4 changed files with 18 additions and 21 deletions

View File

@ -399,9 +399,8 @@ Status DBMetaImpl::files_to_merge(const std::string& table_id,
return Status::OK();
}
Status DBMetaImpl::get_group_file(const std::string& table_id_,
const std::string& file_id_,
TableFileSchema& group_file_info_) {
Status DBMetaImpl::GetTableFile(TableFileSchema& file_schema) {
try {
auto files = ConnectorPtr->select(columns(&TableFileSchema::id,
&TableFileSchema::table_id,
@ -409,19 +408,20 @@ Status DBMetaImpl::get_group_file(const std::string& table_id_,
&TableFileSchema::file_type,
&TableFileSchema::size,
&TableFileSchema::date),
where(c(&TableFileSchema::file_id) == file_id_ and
c(&TableFileSchema::table_id) == table_id_
where(c(&TableFileSchema::file_id) == file_schema.file_id and
c(&TableFileSchema::table_id) == file_schema.table_id
));
assert(files.size() <= 1);
if (files.size() == 1) {
group_file_info_.id = std::get<0>(files[0]);
group_file_info_.table_id = std::get<1>(files[0]);
group_file_info_.file_id = std::get<2>(files[0]);
group_file_info_.file_type = std::get<3>(files[0]);
group_file_info_.size = std::get<4>(files[0]);
group_file_info_.date = std::get<5>(files[0]);
file_schema.id = std::get<0>(files[0]);
file_schema.table_id = std::get<1>(files[0]);
file_schema.file_id = std::get<2>(files[0]);
file_schema.file_type = std::get<3>(files[0]);
file_schema.size = std::get<4>(files[0]);
file_schema.date = std::get<5>(files[0]);
} else {
return Status::NotFound("GroupFile " + file_id_ + " not found");
return Status::NotFound("Table:" + file_schema.table_id +
" File:" + file_schema.file_id + " not found");
}
} catch (std::exception &e) {
LOG(DEBUG) << e.what();

View File

@ -27,9 +27,8 @@ public:
virtual Status DropPartitionsByDates(const std::string& table_id,
const DatesT& dates) override;
virtual Status get_group_file(const std::string& table_id_,
const std::string& file_id_,
TableFileSchema& group_file_info_) override;
virtual Status GetTableFile(TableFileSchema& file_schema) override;
virtual Status update_group_file(TableFileSchema& group_file_) override;
virtual Status get_group_files(const std::string& table_id_,

View File

@ -30,9 +30,7 @@ public:
virtual Status DropPartitionsByDates(const std::string& table_id,
const DatesT& dates) = 0;
virtual Status get_group_file(const std::string& table_id_,
const std::string& file_id_,
TableFileSchema& group_file_info_) = 0;
virtual Status GetTableFile(TableFileSchema& file_schema) = 0;
virtual Status update_group_file(TableFileSchema& group_file_) = 0;
virtual Status get_group_files(const std::string& table_id_,

View File

@ -85,7 +85,7 @@ TEST_F(MetaTest, table_file_TEST) {
dates.push_back(table_file.date);
status = impl_->DropPartitionsByDates(table_file.table_id, dates);
ASSERT_TRUE(status.ok());
status = impl_->get_group_file(table_file.table_id, table_file.file_id, table_file);
status = impl_->GetTableFile(table_file);
ASSERT_TRUE(status.ok());
ASSERT_TRUE(table_file.file_type == meta::TableFileSchema::TO_DELETE);
}
@ -127,7 +127,7 @@ TEST_F(MetaTest, ARCHIVE_TEST_DAYS) {
int i = 0;
for (auto file : files) {
status = impl.get_group_file(file.table_id, file.file_id, file);
status = impl.GetTableFile(file);
ASSERT_TRUE(status.ok());
if (days[i] < days_num) {
ASSERT_EQ(file.file_type, meta::TableFileSchema::NEW);
@ -170,7 +170,7 @@ TEST_F(MetaTest, ARCHIVE_TEST_DISK) {
int i = 0;
for (auto file : files) {
status = impl.get_group_file(file.table_id, file.file_id, file);
status = impl.GetTableFile(file);
ASSERT_TRUE(status.ok());
if (i < 5) {
ASSERT_TRUE(file.file_type == meta::TableFileSchema::TO_DELETE);