#pragma once #include #include #include #include #include #include namespace NYql { arrow::Datum MakePgScalar(NKikimr::NMiniKQL::TPgType* type, const NKikimr::NUdf::TUnboxedValuePod& value, arrow::MemoryPool& pool); arrow::Datum MakePgScalar(NKikimr::NMiniKQL::TPgType* type, const NUdf::TBlockItem& value, arrow::MemoryPool& pool); using TColumnConverter = std::function(const std::shared_ptr&)>; TColumnConverter BuildPgColumnConverter(const std::shared_ptr& originalType, NKikimr::NMiniKQL::TPgType* targetType); std::unique_ptr BuildPgYsonColumnReader(const NUdf::TPgTypeDescription& desc); std::unique_ptr BuildPgTopLevelColumnReader(std::unique_ptr&& builder, const NKikimr::NMiniKQL::TPgType* targetType); } // NYql namespace NKikimr { namespace NMiniKQL { class IBlockAggregatorFactory; void RegisterPgBlockAggs(THashMap>& registry); } }