aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/minikql/computation/mkql_block_trimmer.h
blob: 0ec46ea83c6c0ae52dac1e39aab47fe75dd80889 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include <util/generic/noncopyable.h>
#include <yql/essentials/public/udf/udf_types.h>

#include <arrow/type.h>

namespace NKikimr::NMiniKQL {

class IBlockTrimmer : private TNonCopyable {
public:
    using TPtr = std::unique_ptr<IBlockTrimmer>;

    virtual ~IBlockTrimmer() = default;

    virtual std::shared_ptr<arrow::ArrayData> Trim(const std::shared_ptr<arrow::ArrayData>& array) = 0;
};

IBlockTrimmer::TPtr MakeBlockTrimmer(const NYql::NUdf::ITypeInfoHelper& typeInfoHelper, const NYql::NUdf::TType* type, arrow::MemoryPool* pool);

}