MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / extractKeyValueFromMap

Function extractKeyValueFromMap

src/DataTypes/DataTypeMapHelpers.cpp:448–467  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

446}
447
448void extractKeyValueFromMap(
449 const IColumn & nested_column,
450 const IColumn & key,
451 IColumn & result,
452 size_t start,
453 size_t end)
454{
455 const auto & array_column = assert_cast<const ColumnArray &>(nested_column);
456 const auto & tuple_column = assert_cast<const ColumnTuple &>(array_column.getData());
457 const auto & offsets = array_column.getOffsets();
458 const auto & keys_column = tuple_column.getColumn(0);
459 const auto & values_column = tuple_column.getColumn(1);
460
461 /// Phase 1: find the position of the requested key in each row.
462 PaddedPODArray<size_t> matched_positions;
463 findKeyPositionsDispatch(keys_column, offsets, key, start, end, matched_positions);
464
465 /// Phase 2: extract values at the matched positions.
466 extractValuesDispatch(values_column, result, matched_positions);
467}
468
469std::optional<std::pair<String, String>> tryParseMapSubcolumnName(const String & column_name)
470{

Calls 5

findKeyPositionsDispatchFunction · 0.85
extractValuesDispatchFunction · 0.85
getDataMethod · 0.45
getOffsetsMethod · 0.45
getColumnMethod · 0.45

Tested by

no test coverage detected