mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 16:42:05 +00:00
dbms: addition to SETTINGS [#METR-16354].
This commit is contained in:
parent
557b60a19d
commit
51be2693ee
@ -130,15 +130,12 @@ private:
|
|||||||
|
|
||||||
void ignoreWithTotals();
|
void ignoreWithTotals();
|
||||||
|
|
||||||
/** Если в запросе SELECT есть секция SETTINGS, то применить настройки из неё и удалить секцию SETTINGS.
|
/** Если в запросе SELECT есть секция SETTINGS, то применить настройки из неё.
|
||||||
* Затем достать настройки из context и поместить их в settings.
|
* Затем достать настройки из context и поместить их в settings.
|
||||||
*
|
*
|
||||||
* Секция SETTINGS - настройки для конкретного запроса.
|
* Секция SETTINGS - настройки для конкретного запроса.
|
||||||
* Обычно настройки могут быть переданы другими способами, не внутри запроса.
|
* Обычно настройки могут быть переданы другими способами, не внутри запроса.
|
||||||
* Но использование такой секции оправдано, если нужно задать настройки для одного подзапроса.
|
* Но использование такой секции оправдано, если нужно задать настройки для одного подзапроса.
|
||||||
*
|
|
||||||
* При распределённой обработке запроса, секция SETTINGS не будет передана внутри запроса,
|
|
||||||
* а настройки будут переданы отдельно, при отправке запроса.
|
|
||||||
*/
|
*/
|
||||||
void initSettings();
|
void initSettings();
|
||||||
|
|
||||||
|
@ -1034,17 +1034,8 @@ void InterpreterSelectQuery::ignoreWithTotals()
|
|||||||
void InterpreterSelectQuery::initSettings()
|
void InterpreterSelectQuery::initSettings()
|
||||||
{
|
{
|
||||||
if (query.settings)
|
if (query.settings)
|
||||||
{
|
|
||||||
InterpreterSetQuery(query.settings, context).executeForCurrentContext();
|
InterpreterSetQuery(query.settings, context).executeForCurrentContext();
|
||||||
|
|
||||||
auto it = std::find(query.children.begin(), query.children.end(), query.settings);
|
|
||||||
if (query.children.end() == it)
|
|
||||||
throw Exception("Logical error: cannot find query.settings element in query.children", ErrorCodes::LOGICAL_ERROR);
|
|
||||||
|
|
||||||
query.children.erase(it);
|
|
||||||
query.settings = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
settings = context.getSettings();
|
settings = context.getSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user