mkql_block_trimmer.h 558 B

123456789101112131415161718192021
  1. #pragma once
  2. #include <util/generic/noncopyable.h>
  3. #include <yql/essentials/public/udf/udf_types.h>
  4. #include <arrow/type.h>
  5. namespace NKikimr::NMiniKQL {
  6. class IBlockTrimmer : private TNonCopyable {
  7. public:
  8. using TPtr = std::unique_ptr<IBlockTrimmer>;
  9. virtual ~IBlockTrimmer() = default;
  10. virtual std::shared_ptr<arrow::ArrayData> Trim(const std::shared_ptr<arrow::ArrayData>& array) = 0;
  11. };
  12. IBlockTrimmer::TPtr MakeBlockTrimmer(const NYql::NUdf::ITypeInfoHelper& typeInfoHelper, const NYql::NUdf::TType* type, arrow::MemoryPool* pool);
  13. }