MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / parseIntervalKind

Function parseIntervalKind

src/Parsers/parseIntervalKind.cpp:8–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6namespace DB
7{
8bool parseIntervalKind(IParser::Pos & pos, Expected & expected, IntervalKind & result)
9{
10 if (ParserKeyword(Keyword::NANOSECOND).ignore(pos, expected) || ParserKeyword(Keyword::NANOSECONDS).ignore(pos, expected)
11 || ParserKeyword(Keyword::SQL_TSI_NANOSECOND).ignore(pos, expected)
12 || ParserKeyword(Keyword::NS).ignore(pos, expected))
13 {
14 result = IntervalKind::Kind::Nanosecond;
15 return true;
16 }
17
18 if (ParserKeyword(Keyword::MICROSECOND).ignore(pos, expected) || ParserKeyword(Keyword::MICROSECONDS).ignore(pos, expected)
19 || ParserKeyword(Keyword::SQL_TSI_MICROSECOND).ignore(pos, expected))
20 {
21 result = IntervalKind::Kind::Microsecond;
22 return true;
23 }
24
25 if (ParserKeyword(Keyword::MILLISECOND).ignore(pos, expected) || ParserKeyword(Keyword::MILLISECONDS).ignore(pos, expected)
26 || ParserKeyword(Keyword::SQL_TSI_MILLISECOND).ignore(pos, expected)
27 || ParserKeyword(Keyword::MS).ignore(pos, expected))
28 {
29 result = IntervalKind::Kind::Millisecond;
30 return true;
31 }
32
33 if (ParserKeyword(Keyword::SECOND).ignore(pos, expected) || ParserKeyword(Keyword::SECONDS).ignore(pos, expected)
34 || ParserKeyword(Keyword::SQL_TSI_SECOND).ignore(pos, expected)
35 || ParserKeyword(Keyword::SS).ignore(pos, expected) || ParserKeyword(Keyword::S).ignore(pos, expected))
36 {
37 result = IntervalKind::Kind::Second;
38 return true;
39 }
40
41 if (ParserKeyword(Keyword::MINUTE).ignore(pos, expected) || ParserKeyword(Keyword::MINUTES).ignore(pos, expected)
42 || ParserKeyword(Keyword::SQL_TSI_MINUTE).ignore(pos, expected)
43 || ParserKeyword(Keyword::MI).ignore(pos, expected) || ParserKeyword(Keyword::N).ignore(pos, expected))
44 {
45 result = IntervalKind::Kind::Minute;
46 return true;
47 }
48
49 if (ParserKeyword(Keyword::HOUR).ignore(pos, expected) || ParserKeyword(Keyword::HOURS).ignore(pos, expected)
50 || ParserKeyword(Keyword::SQL_TSI_HOUR).ignore(pos, expected)
51 || ParserKeyword(Keyword::HH).ignore(pos, expected) || ParserKeyword(Keyword::H).ignore(pos, expected))
52 {
53 result = IntervalKind::Kind::Hour;
54 return true;
55 }
56
57 if (ParserKeyword(Keyword::DAY).ignore(pos, expected) || ParserKeyword(Keyword::DAYS).ignore(pos, expected)
58 || ParserKeyword(Keyword::SQL_TSI_DAY).ignore(pos, expected)
59 || ParserKeyword(Keyword::DD).ignore(pos, expected) || ParserKeyword(Keyword::D).ignore(pos, expected))
60 {
61 result = IntervalKind::Kind::Day;
62 return true;
63 }
64
65 if (ParserKeyword(Keyword::WEEK).ignore(pos, expected) || ParserKeyword(Keyword::WEEKS).ignore(pos, expected)

Callers 7

parseImplMethod · 0.85
parseMethod · 0.85
parseMethod · 0.85
parseMethod · 0.85
parseMethod · 0.85
parseIntervalsWithLimitsFunction · 0.85

Calls 2

ParserKeywordClass · 0.85
ignoreMethod · 0.45

Tested by

no test coverage detected