aboutsummaryrefslogtreecommitdiffstats
path: root/ydb/library/yql/dq/runtime/dq_source.h
blob: 81c3dd266e814049b296d4e9100bc046a1f603d4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once
#include "dq_input.h"

namespace NYql::NDq {

struct TDqSourceStats : TDqInputStats {
    ui64 InputIndex = 0;

    explicit TDqSourceStats(ui64 inputIndex)
        : InputIndex(inputIndex) {}
};

class IDqSource : public IDqInput {
public:
    using TPtr = TIntrusivePtr<IDqSource>;

    virtual ui64 GetInputIndex() const = 0;

    virtual void Push(NKikimr::NMiniKQL::TUnboxedValueVector&& batch, i64 space) = 0;

    virtual void Finish() = 0; 
 
    virtual const TDqSourceStats* GetStats() const = 0;
};

IDqSource::TPtr CreateDqSource(ui64 inputIndex, NKikimr::NMiniKQL::TType* inputType, ui64 maxBufferBytes,
    bool collectProfileStats);

} // namespace NYql::NDq