8 namespace foreign_storage {
17 int interval_count = std::stoi(interval.substr(0, interval.length() - 1));
18 auto interval_type = std::tolower(interval[interval.length() - 1]);
20 if (interval_type ==
's') {
21 duration = interval_count;
22 }
else if (interval_type ==
'h') {
23 duration = interval_count * 60 * 60;
24 }
else if (interval_type ==
'd') {
25 duration = interval_count * 60 * 60 * 24;
34 const std::map<std::string, std::string, std::less<>>& foreign_table_options) {
35 int64_t current_time = std::chrono::duration_cast<std::chrono::seconds>(
36 std::chrono::system_clock::now().time_since_epoch())
38 auto start_date_entry = foreign_table_options.find(
40 CHECK(start_date_entry != foreign_table_options.end());
44 if (start_date_time >= current_time) {
45 return start_date_time;
49 if (interval_entry != foreign_table_options.end()) {
52 (current_time - start_date_time + interval_duration - 1) / interval_duration;
53 return start_date_time + (num_intervals * interval_duration);
int64_t get_interval_duration(const std::string &interval)
int64_t dateTimeParse< kTIMESTAMP >(std::string_view str, unsigned const dim)
static constexpr const char * REFRESH_START_DATE_TIME_KEY
int64_t get_next_refresh_time(const std::map< std::string, std::string, std::less<>> &foreign_table_options)
static constexpr const char * REFRESH_INTERVAL_KEY
static constexpr int NULL_REFRESH_TIME