mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-12 09:22:05 +00:00
dbms: fixed error in formatting [#METR-2944].
This commit is contained in:
parent
59d4783d5c
commit
199837baa4
@ -486,6 +486,15 @@ void formatAST(const ASTFunction & ast, std::ostream & s, size_t indent, bool
|
|||||||
if (0 == strcmp(ast.name.c_str(), func[0]))
|
if (0 == strcmp(ast.name.c_str(), func[0]))
|
||||||
{
|
{
|
||||||
s << (hilite ? hilite_operator : "") << func[1] << (hilite ? hilite_none : "");
|
s << (hilite ? hilite_operator : "") << func[1] << (hilite ? hilite_none : "");
|
||||||
|
|
||||||
|
/** Особо дурацкий случай. Если у нас унарный минус перед литералом, являющимся отрицательным числом:
|
||||||
|
* "-(-1)" или "- -1", то это нельзя форматировать как --1, так как это будет воспринято как комментарий.
|
||||||
|
* Вместо этого, добавим пробел.
|
||||||
|
* PS. Нельзя просто попросить добавить скобки - см. formatAST для ASTLiteral.
|
||||||
|
*/
|
||||||
|
if (ast.name == "negate" && typeid_cast<const ASTLiteral *>(&*ast.arguments->children[0]))
|
||||||
|
s << ' ';
|
||||||
|
|
||||||
formatAST(*ast.arguments, s, indent, hilite, one_line, true);
|
formatAST(*ast.arguments, s, indent, hilite, one_line, true);
|
||||||
written = true;
|
written = true;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
1
|
||||||
|
1
|
@ -0,0 +1 @@
|
|||||||
|
SELECT -(-1) FROM remote('127.0.0.{1,2}', system, one)
|
Loading…
Reference in New Issue
Block a user