```
milovidov-desktop :) CREATE DICTIONARY dict
:-] (
:-]     k1 UInt64,
:-]     k2 UInt8,
:-]     value String
:-] )
:-] PRIMARY KEY k1, k2
:-] SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'dict'))
:-] LIFETIME(1000)
:-] LAYOUT(COMPLEX_KEY_HASHED());

CREATE DICTIONARY dict
(
    `k1` UInt64,
    `k2` UInt8,
    `value` String
)
PRIMARY KEY k1, k2
SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'dict'))
LIFETIME(MIN 0 MAX 1000)
LAYOUT(COMPLEX_KEY_HASHED())

Ok.

0 rows in set. Elapsed: 0.001 sec. 

milovidov-desktop :) SELECT dictGetString('default.dict', 'third_column', (1, 2, 3, 4, 5, 6, 7, 8, 9, 10));

SELECT dictGetString('default.dict', 'third_column', (1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
```
context = copyContextAndApplySettings(path_to_settings, context, config);
    }
    
    
    context.makeQueryContext();
}
ClickHouseDictionarySource::ClickHouseDictionarySource(const ClickHouseDictionarySource & other)
    : update_time{other.update_time}
    , dict_struct{other.dict_struct}
    , secure{other.secure}
    , host{other.host}
    , port{other.port}
    , user{other.user}
    , password{other.password}
    , db{other.db}
    , table{other.table}
    , where{other.where}
    , update_field{other.update_field}
    , invalidate_query{other.invalidate_query}
    , invalidate_query_response{other.invalidate_query_response}
    , query_builder{dict_struct, db, "", table, where, IdentifierQuotingStyle::Backticks}
    , sample_block{other.sample_block}
    , context(other.context)
    , is_local{other.is_local}
    , pool{is_local ? nullptr : createPool(host, port, secure, db, user, password)}
    , load_all_query{other.load_all_query}
{
    context.makeQueryContext();
}
std::string ClickHouseDictionarySource::getUpdateFieldAndDate()