diff --git a/cpp/src/db/DBMetaImpl.cpp b/cpp/src/db/DBMetaImpl.cpp index fe53936505..a0a3cdb3cd 100644 --- a/cpp/src/db/DBMetaImpl.cpp +++ b/cpp/src/db/DBMetaImpl.cpp @@ -28,6 +28,7 @@ inline auto StoragePrototype(const std::string& path) { make_column("file_id", &GroupFileSchema::file_id), make_column("file_type", &GroupFileSchema::file_type), make_column("rows", &GroupFileSchema::rows, default_value(0)), + make_column("updated_time", &GroupFileSchema::updated_time), make_column("date", &GroupFileSchema::date)) ); @@ -166,6 +167,7 @@ Status DBMetaImpl::add_group_file(GroupFileSchema& group_file) { group_file.file_id = ss.str(); group_file.dimension = group_info.dimension; group_file.rows = 0; + group_file.updated_time = ConnectorPtr->select(datetime("now", "localtime")).front(); GetGroupFilePath(group_file); { @@ -329,7 +331,8 @@ Status DBMetaImpl::get_group_files(const std::string& group_id_, return Status::OK(); } -Status DBMetaImpl::update_group_file(const GroupFileSchema& group_file) { +Status DBMetaImpl::update_group_file(GroupFileSchema& group_file) { + group_file.updated_time = ConnectorPtr->select(datetime("now", "localtime")).front(); auto commited = ConnectorPtr->transaction([&] () mutable { ConnectorPtr->update(group_file); return true; @@ -340,9 +343,10 @@ Status DBMetaImpl::update_group_file(const GroupFileSchema& group_file) { return Status::OK(); } -Status DBMetaImpl::update_files(const GroupFilesSchema& files) { +Status DBMetaImpl::update_files(GroupFilesSchema& files) { auto commited = ConnectorPtr->transaction([&] () mutable { for (auto& file : files) { + file.updated_time = ConnectorPtr->select(datetime("now", "localtime")).front(); ConnectorPtr->update(file); } return true; diff --git a/cpp/src/db/DBMetaImpl.h b/cpp/src/db/DBMetaImpl.h index 8def7aea32..7cfed9d2e6 100644 --- a/cpp/src/db/DBMetaImpl.h +++ b/cpp/src/db/DBMetaImpl.h @@ -27,13 +27,13 @@ public: virtual Status get_group_file(const std::string& group_id_, const std::string& file_id_, GroupFileSchema& group_file_info_) override; - virtual Status update_group_file(const GroupFileSchema& group_file_) override; + virtual Status update_group_file(GroupFileSchema& group_file_) override; virtual Status get_group_files(const std::string& group_id_, const int date_delta_, GroupFilesSchema& group_files_info_) override; - virtual Status update_files(const GroupFilesSchema& files) override; + virtual Status update_files(GroupFilesSchema& files) override; virtual Status files_to_merge(const std::string& group_id, DatePartionedGroupFilesSchema& files) override; diff --git a/cpp/src/db/LocalMetaImpl.cpp b/cpp/src/db/LocalMetaImpl.cpp index 7bdb507647..07a26240e9 100644 --- a/cpp/src/db/LocalMetaImpl.cpp +++ b/cpp/src/db/LocalMetaImpl.cpp @@ -226,12 +226,12 @@ Status LocalMetaImpl::get_group_files(const std::string& group_id_, return Status::OK(); } -Status LocalMetaImpl::update_group_file(const GroupFileSchema& group_file_) { +Status LocalMetaImpl::update_group_file(GroupFileSchema& group_file_) { //PXU TODO return Status::OK(); } -Status LocalMetaImpl::update_files(const GroupFilesSchema& files) { +Status LocalMetaImpl::update_files(GroupFilesSchema& files) { //PXU TODO return Status::OK(); } diff --git a/cpp/src/db/LocalMetaImpl.h b/cpp/src/db/LocalMetaImpl.h index f74916c087..8d6bb57076 100644 --- a/cpp/src/db/LocalMetaImpl.h +++ b/cpp/src/db/LocalMetaImpl.h @@ -26,13 +26,13 @@ public: virtual Status get_group_file(const std::string& group_id_, const std::string& file_id_, GroupFileSchema& group_file_info_) override; - virtual Status update_group_file(const GroupFileSchema& group_file_) override; + virtual Status update_group_file(GroupFileSchema& group_file_) override; virtual Status get_group_files(const std::string& group_id_, const int date_delta_, GroupFilesSchema& group_files_info_) override; - virtual Status update_files(const GroupFilesSchema& files) override; + virtual Status update_files(GroupFilesSchema& files) override; virtual Status cleanup() override; diff --git a/cpp/src/db/Meta.h b/cpp/src/db/Meta.h index 0a795cdd83..ad76ebddd1 100644 --- a/cpp/src/db/Meta.h +++ b/cpp/src/db/Meta.h @@ -42,6 +42,7 @@ struct GroupFileSchema { DateT date = EmptyDate; uint16_t dimension; std::string location = ""; + std::string updated_time = ""; }; // GroupFileSchema typedef std::vector GroupFilesSchema; @@ -62,13 +63,13 @@ public: virtual Status get_group_file(const std::string& group_id_, const std::string& file_id_, GroupFileSchema& group_file_info_) = 0; - virtual Status update_group_file(const GroupFileSchema& group_file_) = 0; + virtual Status update_group_file(GroupFileSchema& group_file_) = 0; virtual Status get_group_files(const std::string& group_id_, const int date_delta_, GroupFilesSchema& group_files_info_) = 0; - virtual Status update_files(const GroupFilesSchema& files) = 0; + virtual Status update_files(GroupFilesSchema& files) = 0; virtual Status files_to_search(const std::string& group_id, std::vector partition,