aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/minikql/jsonpath/jsonpath.h
blob: 455739b00594ff4890c9625238d7a0bf2477ce74 (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
#pragma once

#include "executor.h"

#include <yql/essentials/public/udf/udf_value.h>
#include <yql/essentials/public/udf/udf_value_builder.h>

namespace NYql::NJsonPath {

const TAstNodePtr ParseJsonPathAst(const TStringBuf path, TIssues& issues, size_t maxParseErrors);

const TJsonPathPtr PackBinaryJsonPath(const TAstNodePtr ast, TIssues& issues);

const TJsonPathPtr ParseJsonPath(const TStringBuf path, TIssues& issues, size_t maxParseErrors);

TVariablesMap DictToVariables(const NUdf::TUnboxedValue& dict);

TResult ExecuteJsonPath(
    const TJsonPathPtr jsonPath,
    const TValue& json,
    const TVariablesMap& variables,
    const NUdf::IValueBuilder* valueBuilder);

}