mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 00:30:49 +00:00
Minor changes
This commit is contained in:
parent
857443c495
commit
1df895f3da
@ -219,8 +219,8 @@ void SettingsConstraints::clamp(const Settings & current_settings, SettingsChang
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T>
|
template <typename SettingsT>
|
||||||
bool getNewValueToCheck(const T & current_settings, SettingChange & change, Field & new_value, bool throw_on_failure)
|
bool getNewValueToCheck(const SettingsT & current_settings, SettingChange & change, Field & new_value, bool throw_on_failure)
|
||||||
{
|
{
|
||||||
Field current_value;
|
Field current_value;
|
||||||
bool has_current_value = current_settings.tryGet(change.name, current_value);
|
bool has_current_value = current_settings.tryGet(change.name, current_value);
|
||||||
@ -230,12 +230,12 @@ bool getNewValueToCheck(const T & current_settings, SettingChange & change, Fiel
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (throw_on_failure)
|
if (throw_on_failure)
|
||||||
new_value = T::castValueUtil(change.name, change.value);
|
new_value = SettingsT::castValueUtil(change.name, change.value);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
new_value = T::castValueUtil(change.name, change.value);
|
new_value = SettingsT::castValueUtil(change.name, change.value);
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
|
@ -46,7 +46,7 @@ static void applySettingsFromSelectWithUnion(const ASTSelectWithUnionQuery & sel
|
|||||||
// It is flattened later, when we process UNION ALL/DISTINCT.
|
// It is flattened later, when we process UNION ALL/DISTINCT.
|
||||||
const auto * last_select = children.back()->as<ASTSelectQuery>();
|
const auto * last_select = children.back()->as<ASTSelectQuery>();
|
||||||
if (last_select && last_select->settings())
|
if (last_select && last_select->settings())
|
||||||
InterpreterSetQuery(last_select->settings(), context).executeForCurrentContext();
|
InterpreterSetQuery(last_select->settings(), context).executeForCurrentContext(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InterpreterSetQuery::applySettingsFromQuery(const ASTPtr & ast, ContextMutablePtr context_)
|
void InterpreterSetQuery::applySettingsFromQuery(const ASTPtr & ast, ContextMutablePtr context_)
|
||||||
@ -58,7 +58,7 @@ void InterpreterSetQuery::applySettingsFromQuery(const ASTPtr & ast, ContextMuta
|
|||||||
if (const auto * query_with_output = dynamic_cast<const ASTQueryWithOutput *>(ast.get()))
|
if (const auto * query_with_output = dynamic_cast<const ASTQueryWithOutput *>(ast.get()))
|
||||||
{
|
{
|
||||||
if (query_with_output->settings_ast)
|
if (query_with_output->settings_ast)
|
||||||
InterpreterSetQuery(query_with_output->settings_ast, context_).executeForCurrentContext();
|
InterpreterSetQuery(query_with_output->settings_ast, context_).executeForCurrentContext(false);
|
||||||
|
|
||||||
if (const auto * create_query = ast->as<ASTCreateQuery>(); create_query && create_query->select)
|
if (const auto * create_query = ast->as<ASTCreateQuery>(); create_query && create_query->select)
|
||||||
applySettingsFromSelectWithUnion(create_query->select->as<ASTSelectWithUnionQuery &>(), context_);
|
applySettingsFromSelectWithUnion(create_query->select->as<ASTSelectWithUnionQuery &>(), context_);
|
||||||
@ -67,7 +67,7 @@ void InterpreterSetQuery::applySettingsFromQuery(const ASTPtr & ast, ContextMuta
|
|||||||
if (const auto * select_query = ast->as<ASTSelectQuery>())
|
if (const auto * select_query = ast->as<ASTSelectQuery>())
|
||||||
{
|
{
|
||||||
if (auto new_settings = select_query->settings())
|
if (auto new_settings = select_query->settings())
|
||||||
InterpreterSetQuery(new_settings, context_).executeForCurrentContext();
|
InterpreterSetQuery(new_settings, context_).executeForCurrentContext(false);
|
||||||
}
|
}
|
||||||
else if (const auto * select_with_union_query = ast->as<ASTSelectWithUnionQuery>())
|
else if (const auto * select_with_union_query = ast->as<ASTSelectWithUnionQuery>())
|
||||||
{
|
{
|
||||||
@ -76,7 +76,7 @@ void InterpreterSetQuery::applySettingsFromQuery(const ASTPtr & ast, ContextMuta
|
|||||||
else if (const auto * explain_query = ast->as<ASTExplainQuery>())
|
else if (const auto * explain_query = ast->as<ASTExplainQuery>())
|
||||||
{
|
{
|
||||||
if (explain_query->settings_ast)
|
if (explain_query->settings_ast)
|
||||||
InterpreterSetQuery(explain_query->settings_ast, context_).executeForCurrentContext();
|
InterpreterSetQuery(explain_query->settings_ast, context_).executeForCurrentContext(false);
|
||||||
|
|
||||||
applySettingsFromQuery(explain_query->getExplainedQuery(), context_);
|
applySettingsFromQuery(explain_query->getExplainedQuery(), context_);
|
||||||
}
|
}
|
||||||
@ -84,7 +84,7 @@ void InterpreterSetQuery::applySettingsFromQuery(const ASTPtr & ast, ContextMuta
|
|||||||
{
|
{
|
||||||
context_->setInsertFormat(insert_query->format);
|
context_->setInsertFormat(insert_query->format);
|
||||||
if (insert_query->settings_ast)
|
if (insert_query->settings_ast)
|
||||||
InterpreterSetQuery(insert_query->settings_ast, context_).executeForCurrentContext();
|
InterpreterSetQuery(insert_query->settings_ast, context_).executeForCurrentContext(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public:
|
|||||||
/** Set setting for current context (query context).
|
/** Set setting for current context (query context).
|
||||||
* It is used for interpretation of SETTINGS clause in SELECT query.
|
* It is used for interpretation of SETTINGS clause in SELECT query.
|
||||||
*/
|
*/
|
||||||
void executeForCurrentContext(bool ignore_setting_constraints = false);
|
void executeForCurrentContext(bool ignore_setting_constraints);
|
||||||
|
|
||||||
bool supportsTransactions() const override { return true; }
|
bool supportsTransactions() const override { return true; }
|
||||||
|
|
||||||
|
@ -1,2 +1 @@
|
|||||||
select 42 settings compatibility=NULL; -- {clientError BAD_ARGUMENTS}
|
select 42 settings compatibility=NULL; -- {clientError BAD_ARGUMENTS}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user