Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
9eb249af
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9eb249af
编写于
5月 28, 2016
作者:
A
Alexey Milovidov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Using std::shared_ptr for functions and AST [#METR-21503].
上级
36efb706
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
19 addition
and
19 deletion
+19
-19
dbms/include/DB/Parsers/ParserEnumElement.h
dbms/include/DB/Parsers/ParserEnumElement.h
+1
-1
dbms/src/DataStreams/TotalsHavingBlockInputStream.cpp
dbms/src/DataStreams/TotalsHavingBlockInputStream.cpp
+2
-2
dbms/src/Interpreters/ExpressionAnalyzer.cpp
dbms/src/Interpreters/ExpressionAnalyzer.cpp
+10
-10
dbms/src/Interpreters/InterpreterCreateQuery.cpp
dbms/src/Interpreters/InterpreterCreateQuery.cpp
+2
-4
dbms/src/Interpreters/LogicalExpressionsOptimizer.cpp
dbms/src/Interpreters/LogicalExpressionsOptimizer.cpp
+3
-1
dbms/src/Parsers/ParserCreateQuery.cpp
dbms/src/Parsers/ParserCreateQuery.cpp
+1
-1
未找到文件。
dbms/include/DB/Parsers/ParserEnumElement.h
浏览文件 @
9eb249af
...
...
@@ -37,7 +37,7 @@ protected:
return
false
;
node
=
std
::
make_shared
<
ASTEnumElement
>
(
{
begin
,
pos
},
StringRange
{
begin
,
pos
},
static_cast
<
const
ASTLiteral
&>
(
*
name
).
value
.
get
<
String
>
(),
static_cast
<
const
ASTLiteral
&>
(
*
value
).
value
);
...
...
dbms/src/DataStreams/TotalsHavingBlockInputStream.cpp
浏览文件 @
9eb249af
...
...
@@ -183,7 +183,7 @@ void TotalsHavingBlockInputStream::addToTotals(Block & totals, Block & block, co
if
(
init
)
{
function
=
column
->
getAggregateFunction
();
function
=
column
->
getAggregateFunction
()
.
get
()
;
auto
target
=
std
::
make_shared
<
ColumnAggregateFunction
>
(
column
->
getAggregateFunction
(),
Arenas
(
1
,
arena
));
totals
.
insert
(
ColumnWithTypeAndName
(
target
,
current
.
type
,
current
.
name
));
...
...
@@ -197,7 +197,7 @@ void TotalsHavingBlockInputStream::addToTotals(Block & totals, Block & block, co
if
(
!
target
)
throw
Exception
(
"Unexpected type of column: "
+
totals
.
getByPosition
(
i
).
column
->
getName
(),
ErrorCodes
::
ILLEGAL_COLUMN
);
function
=
target
->
getAggregateFunction
();
function
=
target
->
getAggregateFunction
()
.
get
()
;
data
=
target
->
getData
()[
0
];
}
...
...
dbms/src/Interpreters/ExpressionAnalyzer.cpp
浏览文件 @
9eb249af
...
...
@@ -553,7 +553,7 @@ void ExpressionAnalyzer::normalizeTreeImpl(
}
ASTPtr
initial_ast
=
ast
;
current_asts
.
insert
(
initial_ast
);
current_asts
.
insert
(
initial_ast
.
get
()
);
String
my_alias
=
ast
->
tryGetAlias
();
if
(
!
my_alias
.
empty
())
...
...
@@ -573,7 +573,7 @@ void ExpressionAnalyzer::normalizeTreeImpl(
if
(
columns
.
end
()
!=
it
)
{
ast
=
std
::
make_shared
<
ASTIdentifier
>
(
func_node
->
range
,
function_string
);
current_asts
.
insert
(
ast
);
current_asts
.
insert
(
ast
.
get
()
);
replaced
=
true
;
}
...
...
@@ -598,7 +598,7 @@ void ExpressionAnalyzer::normalizeTreeImpl(
if
(
jt
!=
aliases
.
end
()
&&
current_alias
!=
node
->
name
)
{
/// Заменим его на соответствующий узел дерева.
if
(
current_asts
.
count
(
jt
->
second
))
if
(
current_asts
.
count
(
jt
->
second
.
get
()
))
throw
Exception
(
"Cyclic aliases"
,
ErrorCodes
::
CYCLIC_ALIASES
);
if
(
!
my_alias
.
empty
()
&&
my_alias
!=
jt
->
second
->
getAliasOrColumnName
())
{
...
...
@@ -643,9 +643,9 @@ void ExpressionAnalyzer::normalizeTreeImpl(
if
(
replaced
)
{
normalizeTreeImpl
(
ast
,
finished_asts
,
current_asts
,
current_alias
);
current_asts
.
erase
(
initial_ast
);
current_asts
.
erase
(
ast
);
finished_asts
[
initial_ast
]
=
ast
;
current_asts
.
erase
(
initial_ast
.
get
()
);
current_asts
.
erase
(
ast
.
get
()
);
finished_asts
[
initial_ast
]
=
ast
.
get
()
;
return
;
}
...
...
@@ -717,8 +717,8 @@ void ExpressionAnalyzer::normalizeTreeImpl(
", and '"
+
node
->
name
+
"' is not an aggregate function."
,
ErrorCodes
::
FUNCTION_CANNOT_HAVE_PARAMETERS
);
}
current_asts
.
erase
(
initial_ast
);
current_asts
.
erase
(
ast
);
current_asts
.
erase
(
initial_ast
.
get
()
);
current_asts
.
erase
(
ast
.
get
()
);
finished_asts
[
initial_ast
]
=
ast
;
}
...
...
@@ -827,7 +827,7 @@ void ExpressionAnalyzer::executeScalarSubqueriesImpl(ASTPtr & ast)
{
auto
lit
=
std
::
make_shared
<
ASTLiteral
>
(
ast
->
range
,
(
*
block
.
getByPosition
(
0
).
column
)[
0
]);
lit
->
alias
=
subquery
->
alias
;
ast
=
addTypeConversion
(
lit
,
block
.
getByPosition
(
0
).
type
->
getName
());
ast
=
addTypeConversion
(
lit
.
get
()
,
block
.
getByPosition
(
0
).
type
->
getName
());
}
else
{
...
...
@@ -844,7 +844,7 @@ void ExpressionAnalyzer::executeScalarSubqueriesImpl(ASTPtr & ast)
for
(
size_t
i
=
0
;
i
<
columns
;
++
i
)
{
exp_list
->
children
[
i
]
=
addTypeConversion
(
std
::
make_
shared
<
ASTLiteral
>
(
ast
->
range
,
(
*
block
.
getByPosition
(
i
).
column
)[
0
]
),
std
::
make_
unique
<
ASTLiteral
>
(
ast
->
range
,
(
*
block
.
getByPosition
(
i
).
column
)[
0
]).
get
(
),
block
.
getByPosition
(
i
).
type
->
getName
());
}
}
...
...
dbms/src/Interpreters/InterpreterCreateQuery.cpp
浏览文件 @
9eb249af
...
...
@@ -196,7 +196,7 @@ static ColumnsAndDefaults parseColumns(
default_expr_list
->
children
.
emplace_back
(
setAlias
(
makeASTFunction
(
"CAST"
,
std
::
make_shared
<
ASTIdentifier
>
(
StringRange
(),
tmp_column_name
),
std
::
make_shared
<
ASTLiteral
>
(
StringRange
(),
data_type_ptr
->
getName
()),
final_column_name
));
std
::
make_shared
<
ASTLiteral
>
(
StringRange
(),
Field
(
data_type_ptr
->
getName
())),
final_column_name
)
));
default_expr_list
->
children
.
emplace_back
(
setAlias
(
col_decl
.
default_expression
->
clone
(),
tmp_column_name
));
}
else
...
...
@@ -282,8 +282,6 @@ ASTPtr InterpreterCreateQuery::formatColumns(const NamesAndTypesList & columns)
for
(
const
auto
&
column
:
columns
)
{
const
auto
column_declaration
=
std
::
make_shared
<
ASTColumnDeclaration
>
();
ASTPtr
column_declaration_ptr
{
column_declaration
};
column_declaration
->
name
=
column
.
name
;
StringPtr
type_name
=
std
::
make_shared
<
String
>
(
column
.
type
->
getName
());
...
...
@@ -293,7 +291,7 @@ ASTPtr InterpreterCreateQuery::formatColumns(const NamesAndTypesList & columns)
ParserIdentifierWithOptionalParameters
storage_p
;
column_declaration
->
type
=
parseQuery
(
storage_p
,
pos
,
end
,
"data type"
);
column_declaration
->
type
->
query_string
=
type_name
;
columns_list
->
children
.
push_back
(
column_declaration_ptr
);
columns_list
->
children
.
emplace_back
(
column_declaration
);
}
return
columns_list
;
...
...
dbms/src/Interpreters/LogicalExpressionsOptimizer.cpp
浏览文件 @
9eb249af
...
...
@@ -352,7 +352,9 @@ void LogicalExpressionsOptimizer::fixBrokenOrExpressions()
for
(
auto
&
parent
:
parents
)
{
parent
->
children
.
push_back
(
operands
[
0
]);
auto
first_erased
=
std
::
remove
(
parent
->
children
.
begin
(),
parent
->
children
.
end
(),
or_function
);
auto
first_erased
=
std
::
remove_if
(
parent
->
children
.
begin
(),
parent
->
children
.
end
(),
[
or_function
](
const
ASTPtr
&
ptr
)
{
return
ptr
.
get
()
==
or_function
;
});
parent
->
children
.
erase
(
first_erased
,
parent
->
children
.
end
());
}
...
...
dbms/src/Parsers/ParserCreateQuery.cpp
浏览文件 @
9eb249af
...
...
@@ -93,7 +93,7 @@ bool ParserTypeInCastExpression::parseImpl(Pos & pos, Pos end, ASTPtr & node, Po
if
(
ParserIdentifierWithOptionalParameters
::
parseImpl
(
pos
,
end
,
node
,
max_parsed_pos
,
expected
))
{
const
auto
&
id_with_params
=
typeid_cast
<
const
ASTFunction
&>
(
*
node
);
node
=
std
::
make_shared
<
ASTIdentifier
>
(
id_with_params
.
range
,
{
id_with_params
.
range
.
first
,
id_with_params
.
range
.
second
});
node
=
std
::
make_shared
<
ASTIdentifier
>
(
id_with_params
.
range
,
String
{
id_with_params
.
range
.
first
,
id_with_params
.
range
.
second
});
return
true
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录