MCPcopy Create free account
hub / github.com/ByConity/ByConity / getColumnsCommitTimeForJSONTable

Function getColumnsCommitTimeForJSONTable

src/DataTypes/ObjectUtils.cpp:1011–1040  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1009}
1010
1011UInt64 getColumnsCommitTimeForJSONTable(const IStorage & table, const NamesAndTypesList & search_part_columns)
1012{
1013 Names exclude_column_names;
1014 for (const auto & column : table.getInMemoryMetadata().columns)
1015 {
1016 if (column.type->hasDynamicSubcolumns())
1017 exclude_column_names.emplace_back(column.name);
1018 }
1019
1020 auto exclude_json_column = [&](const NamesAndTypesList & columns) -> NamesAndTypesList {
1021 NamesAndTypesList res;
1022 for (const auto & column : columns)
1023 {
1024 if (std::find(exclude_column_names.begin(), exclude_column_names.end(), column.name) == exclude_column_names.end())
1025 res.push_back(column);
1026 }
1027 return res;
1028 };
1029
1030 auto search_part_columns_excluded_json = exclude_json_column(search_part_columns);
1031
1032 if (search_part_columns_excluded_json == exclude_json_column(*table.part_columns))
1033 return table.commit_time.toUInt64();
1034 for (const auto & version : table.previous_versions_part_columns)
1035 {
1036 if (search_part_columns_excluded_json == exclude_json_column(*version.second))
1037 return version.first;
1038 }
1039 return 0;
1040}
1041}

Callers 1

fillPartModelFunction · 0.85

Calls 8

getInMemoryMetadataMethod · 0.80
toUInt64Method · 0.80
findFunction · 0.50
hasDynamicSubcolumnsMethod · 0.45
emplace_backMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected