aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/clickhouse/src/Functions/visitParamExtractBool.cpp
blob: 31763fe54cefa6d37e4db33f66cb88081d0af01b (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
#include <Functions/FunctionFactory.h>
#include <Functions/FunctionsVisitParam.h>
#include <Functions/FunctionsStringSearch.h>


namespace DB
{

struct ExtractBool
{
    using ResultType = UInt8;

    static UInt8 extract(const UInt8 * begin, const UInt8 * end)
    {
        return begin + 4 <= end && 0 == strncmp(reinterpret_cast<const char *>(begin), "true", 4);
    }
};

struct NameSimpleJSONExtractBool { static constexpr auto name = "simpleJSONExtractBool"; };
using FunctionSimpleJSONExtractBool = FunctionsStringSearch<ExtractParamImpl<NameSimpleJSONExtractBool, ExtractBool>>;

REGISTER_FUNCTION(VisitParamExtractBool)
{
    factory.registerFunction<FunctionSimpleJSONExtractBool>();
    factory.registerAlias("visitParamExtractBool", "simpleJSONExtractBool");
}

}