dbms: addition to SETTINGS [#METR-16354].

This commit is contained in:
Alexey Milovidov 2015-06-06 23:00:08 +03:00
parent 557b60a19d
commit 51be2693ee
2 changed files with 1 additions and 13 deletions

View File

@ -130,15 +130,12 @@ private:
void ignoreWithTotals();
/** Если в запросе SELECT есть секция SETTINGS, то применить настройки из неё и удалить секцию SETTINGS.
/** Если в запросе SELECT есть секция SETTINGS, то применить настройки из неё.
* Затем достать настройки из context и поместить их в settings.
*
* Секция SETTINGS - настройки для конкретного запроса.
* Обычно настройки могут быть переданы другими способами, не внутри запроса.
* Но использование такой секции оправдано, если нужно задать настройки для одного подзапроса.
*
* При распределённой обработке запроса, секция SETTINGS не будет передана внутри запроса,
* а настройки будут переданы отдельно, при отправке запроса.
*/
void initSettings();

View File

@ -1034,17 +1034,8 @@ void InterpreterSelectQuery::ignoreWithTotals()
void InterpreterSelectQuery::initSettings()
{
if (query.settings)
{
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();
}