ClickHouse/src/DataTypes/ObjectUtils.h

31 lines
1.1 KiB
C++
Raw Normal View History

2021-04-23 23:56:26 +00:00
#pragma once
#include <Core/Block.h>
#include <Core/NamesAndTypes.h>
#include <Common/FieldVisitors.h>
#include <Storages/ColumnsDescription.h>
2021-04-23 23:56:26 +00:00
namespace DB
{
size_t getNumberOfDimensions(const IDataType & type);
size_t getNumberOfDimensions(const IColumn & column);
DataTypePtr getBaseTypeOfArray(const DataTypePtr & type);
DataTypePtr createArrayOfType(DataTypePtr type, size_t dimension);
2021-04-23 23:56:26 +00:00
DataTypePtr getDataTypeByColumn(const IColumn & column);
void convertObjectsToTuples(NamesAndTypesList & columns_list, Block & block, const NamesAndTypesList & extended_storage_columns);
2021-08-10 01:33:57 +00:00
void checkObjectHasNoAmbiguosPaths(const Strings & key_names);
2021-04-24 04:09:01 +00:00
DataTypePtr getLeastCommonTypeForObject(const DataTypes & types);
NameSet getNamesOfObjectColumns(const NamesAndTypesList & columns_list);
void extendObjectColumns(NamesAndTypesList & columns_list, const ColumnsDescription & object_columns, bool with_subcolumns);
void replaceMissedSubcolumnsByConstants(
const ColumnsDescription & expected_columns,
const ColumnsDescription & available_columns,
ASTPtr query);
void finalizeObjectColumns(MutableColumns & columns);
2021-04-23 23:56:26 +00:00
}