1#pragma once
2
3#include <unordered_map>
4
5
6namespace DB
7{
8
9class Block;
10class Context;
11class NamesAndTypesList;
12struct ColumnDefault;
13
14/** Adds three types of columns into block
15 * 1. Columns, that are missed inside request, but present in table without defaults (missed columns)
16 * 2. Columns, that are missed inside request, but present in table with defaults (columns with default values)
17 * 3. Columns that materialized from other columns (materialized columns)
18 * All three types of columns are materialized (not constants).
19 */
20Block addMissingDefaults(
21 const Block & block,
22 const NamesAndTypesList & required_columns,
23 const std::unordered_map<std::string, ColumnDefault> & column_defaults,
24 const Context & context);
25
26}
27