1#pragma once
2
3#include <Parsers/IParserBase.h>
4
5namespace DB
6{
7
8/** CASE construction
9 * Two variants:
10 * 1. CASE expr WHEN val1 THEN res1 [WHEN ...] ELSE resN END
11 * 2. CASE WHEN cond1 THEN res1 [WHEN ...] ELSE resN END
12 * NOTE Until we get full support for NULL values in ClickHouse, ELSE sections are mandatory.
13 */
14class ParserCase final : public IParserBase
15{
16protected:
17 const char * getName() const override { return "case"; }
18 bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override;
19};
20
21}
22