arrow.h 839 B

1234567891011121314151617181920212223
  1. #pragma once
  2. #include <yql/essentials/minikql/mkql_node.h>
  3. #include <yql/essentials/public/udf/arrow/block_item.h>
  4. #include <arrow/datum.h>
  5. namespace NYql {
  6. arrow::Datum MakePgScalar(NKikimr::NMiniKQL::TPgType* type, const NKikimr::NUdf::TUnboxedValuePod& value, arrow::MemoryPool& pool);
  7. arrow::Datum MakePgScalar(NKikimr::NMiniKQL::TPgType* type, const NUdf::TBlockItem& value, arrow::MemoryPool& pool);
  8. using TColumnConverter = std::function<std::shared_ptr<arrow::Array>(const std::shared_ptr<arrow::Array>&)>;
  9. TColumnConverter BuildPgColumnConverter(const std::shared_ptr<arrow::DataType>& originalType, NKikimr::NMiniKQL::TPgType* targetType);
  10. } // NYql
  11. namespace NKikimr {
  12. namespace NMiniKQL {
  13. class IBlockAggregatorFactory;
  14. void RegisterPgBlockAggs(THashMap<TString, std::unique_ptr<IBlockAggregatorFactory>>& registry);
  15. }
  16. }