Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
933c0551
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,发现更多精彩内容 >>
提交
933c0551
编写于
12月 04, 2018
作者:
C
chertus
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
CLICKHOUSE-3578 review proress
上级
b4b58b29
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
32 addition
and
42 deletion
+32
-42
dbms/src/DataStreams/AddingDefaultsBlockInputStream.cpp
dbms/src/DataStreams/AddingDefaultsBlockInputStream.cpp
+4
-6
dbms/src/Formats/BinaryRowInputStream.cpp
dbms/src/Formats/BinaryRowInputStream.cpp
+1
-1
dbms/src/Formats/BinaryRowInputStream.h
dbms/src/Formats/BinaryRowInputStream.h
+1
-1
dbms/src/Formats/BlockInputStreamFromRowInputStream.cpp
dbms/src/Formats/BlockInputStreamFromRowInputStream.cpp
+4
-4
dbms/src/Formats/BlockInputStreamFromRowInputStream.h
dbms/src/Formats/BlockInputStreamFromRowInputStream.h
+2
-2
dbms/src/Formats/CSVRowInputStream.cpp
dbms/src/Formats/CSVRowInputStream.cpp
+1
-1
dbms/src/Formats/CSVRowInputStream.h
dbms/src/Formats/CSVRowInputStream.h
+1
-1
dbms/src/Formats/CapnProtoRowInputStream.cpp
dbms/src/Formats/CapnProtoRowInputStream.cpp
+1
-1
dbms/src/Formats/CapnProtoRowInputStream.h
dbms/src/Formats/CapnProtoRowInputStream.h
+1
-1
dbms/src/Formats/IRowInputStream.h
dbms/src/Formats/IRowInputStream.h
+2
-3
dbms/src/Formats/JSONEachRowRowInputStream.cpp
dbms/src/Formats/JSONEachRowRowInputStream.cpp
+1
-6
dbms/src/Formats/JSONEachRowRowInputStream.h
dbms/src/Formats/JSONEachRowRowInputStream.h
+1
-2
dbms/src/Formats/TSKVRowInputStream.cpp
dbms/src/Formats/TSKVRowInputStream.cpp
+1
-1
dbms/src/Formats/TSKVRowInputStream.h
dbms/src/Formats/TSKVRowInputStream.h
+1
-1
dbms/src/Formats/TabSeparatedRowInputStream.cpp
dbms/src/Formats/TabSeparatedRowInputStream.cpp
+1
-1
dbms/src/Formats/TabSeparatedRowInputStream.h
dbms/src/Formats/TabSeparatedRowInputStream.h
+1
-1
dbms/src/Formats/ValuesRowInputStream.cpp
dbms/src/Formats/ValuesRowInputStream.cpp
+1
-1
dbms/src/Formats/ValuesRowInputStream.h
dbms/src/Formats/ValuesRowInputStream.h
+1
-1
dbms/src/Interpreters/evaluateMissingDefaults.cpp
dbms/src/Interpreters/evaluateMissingDefaults.cpp
+2
-3
dbms/src/Interpreters/evaluateMissingDefaults.h
dbms/src/Interpreters/evaluateMissingDefaults.h
+2
-1
dbms/src/Storages/ColumnDefault.cpp
dbms/src/Storages/ColumnDefault.cpp
+0
-2
dbms/src/Storages/MergeTree/MergeTreeData.cpp
dbms/src/Storages/MergeTree/MergeTreeData.cpp
+2
-1
未找到文件。
dbms/src/DataStreams/AddingDefaultsBlockInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -51,17 +51,15 @@ Block AddingDefaultsBlockInputStream::readImpl()
if
(
column_defaults
.
empty
())
return
res
;
const
BlockMissingValues
&
delayed_default
s
=
children
.
back
()
->
getMissingValues
();
if
(
delayed_default
s
.
empty
())
const
BlockMissingValues
&
block_missing_value
s
=
children
.
back
()
->
getMissingValues
();
if
(
block_missing_value
s
.
empty
())
return
res
;
Block
evaluate_block
{
res
};
/// remove columns for recalculation
for
(
const
auto
&
column
:
column_defaults
)
{
/// column_defaults contain aliases that could be ommited in evaluate_block
if
(
evaluate_block
.
has
(
column
.
first
))
evaluate_block
.
erase
(
column
.
first
);
}
evaluateMissingDefaults
(
evaluate_block
,
header
.
getNamesAndTypesList
(),
column_defaults
,
context
,
false
);
...
...
@@ -76,7 +74,7 @@ Block AddingDefaultsBlockInputStream::readImpl()
size_t
block_column_position
=
res
.
getPositionByName
(
column_name
);
ColumnWithTypeAndName
&
column_read
=
res
.
getByPosition
(
block_column_position
);
const
auto
&
defaults_mask
=
delayed_default
s
.
getDefaultsBitmask
(
block_column_position
);
const
auto
&
defaults_mask
=
block_missing_value
s
.
getDefaultsBitmask
(
block_column_position
);
checkCalculated
(
column_read
,
column_def
,
defaults_mask
.
size
());
...
...
dbms/src/Formats/BinaryRowInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -14,7 +14,7 @@ BinaryRowInputStream::BinaryRowInputStream(ReadBuffer & istr_, const Block & hea
}
bool
BinaryRowInputStream
::
read
(
MutableColumns
&
columns
)
bool
BinaryRowInputStream
::
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
{
if
(
istr
.
eof
())
return
false
;
...
...
dbms/src/Formats/BinaryRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -17,7 +17,7 @@ class BinaryRowInputStream : public IRowInputStream
public:
BinaryRowInputStream
(
ReadBuffer
&
istr_
,
const
Block
&
header_
);
bool
read
(
MutableColumns
&
columns
)
override
;
bool
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
override
;
private:
ReadBuffer
&
istr
;
...
...
dbms/src/Formats/BlockInputStreamFromRowInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -53,7 +53,7 @@ Block BlockInputStreamFromRowInputStream::readImpl()
{
size_t
num_columns
=
sample
.
columns
();
MutableColumns
columns
=
sample
.
cloneEmptyColumns
();
delayed_default
s
.
clear
();
block_missing_value
s
.
clear
();
try
{
...
...
@@ -62,8 +62,8 @@ Block BlockInputStreamFromRowInputStream::readImpl()
try
{
++
total_rows
;
RowReadExten
t
ion
info
;
if
(
!
row_input
->
extendedR
ead
(
columns
,
info
))
RowReadExten
s
ion
info
;
if
(
!
row_input
->
r
ead
(
columns
,
info
))
break
;
for
(
size_t
column_idx
=
0
;
column_idx
<
info
.
read_columns
.
size
();
++
column_idx
)
...
...
@@ -73,7 +73,7 @@ Block BlockInputStreamFromRowInputStream::readImpl()
size_t
column_size
=
columns
[
column_idx
]
->
size
();
if
(
column_size
==
0
)
throw
Exception
(
"Unexpected empty column"
,
ErrorCodes
::
INCORRECT_NUMBER_OF_COLUMNS
);
delayed_default
s
.
setBit
(
column_idx
,
column_size
-
1
);
block_missing_value
s
.
setBit
(
column_idx
,
column_size
-
1
);
}
}
}
...
...
dbms/src/Formats/BlockInputStreamFromRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -33,7 +33,7 @@ public:
Block
getHeader
()
const
override
{
return
sample
;
}
const
BlockMissingValues
&
getMissingValues
()
const
override
{
return
delayed_default
s
;
}
const
BlockMissingValues
&
getMissingValues
()
const
override
{
return
block_missing_value
s
;
}
protected:
Block
readImpl
()
override
;
...
...
@@ -42,7 +42,7 @@ private:
RowInputStreamPtr
row_input
;
Block
sample
;
size_t
max_block_size
;
BlockMissingValues
delayed_default
s
;
BlockMissingValues
block_missing_value
s
;
UInt64
allow_errors_num
;
Float64
allow_errors_ratio
;
...
...
dbms/src/Formats/CSVRowInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -111,7 +111,7 @@ void CSVRowInputStream::readPrefix()
}
bool
CSVRowInputStream
::
read
(
MutableColumns
&
columns
)
bool
CSVRowInputStream
::
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
{
if
(
istr
.
eof
())
return
false
;
...
...
dbms/src/Formats/CSVRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -21,7 +21,7 @@ public:
*/
CSVRowInputStream
(
ReadBuffer
&
istr_
,
const
Block
&
header_
,
bool
with_names_
,
const
FormatSettings
&
format_settings
);
bool
read
(
MutableColumns
&
columns
)
override
;
bool
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
override
;
void
readPrefix
()
override
;
bool
allowSyncAfterError
()
const
override
{
return
true
;
}
void
syncAfterError
()
override
;
...
...
dbms/src/Formats/CapnProtoRowInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -193,7 +193,7 @@ CapnProtoRowInputStream::CapnProtoRowInputStream(ReadBuffer & istr_, const Block
}
bool
CapnProtoRowInputStream
::
read
(
MutableColumns
&
columns
)
bool
CapnProtoRowInputStream
::
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
{
if
(
istr
.
eof
())
return
false
;
...
...
dbms/src/Formats/CapnProtoRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -34,7 +34,7 @@ public:
*/
CapnProtoRowInputStream
(
ReadBuffer
&
istr_
,
const
Block
&
header_
,
const
String
&
schema_dir
,
const
String
&
schema_file
,
const
String
&
root_object
);
bool
read
(
MutableColumns
&
columns
)
override
;
bool
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
override
;
private:
// Build a traversal plan from a sorted list of fields
...
...
dbms/src/Formats/IRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -11,7 +11,7 @@ namespace DB
{
/// A way to set some extentions to read and return extra information too. IRowInputStream.extendedRead() output.
struct
RowReadExten
t
ion
struct
RowReadExten
s
ion
{
/// IRowInputStream.extendedRead() output value.
/// Contains one bit per column in resently read row. IRowInputStream could leave it empty, or partialy set.
...
...
@@ -27,8 +27,7 @@ public:
/** Read next row and append it to the columns.
* If no more rows - return false.
*/
virtual
bool
read
(
MutableColumns
&
columns
)
=
0
;
virtual
bool
extendedRead
(
MutableColumns
&
columns
,
RowReadExtention
&
)
{
return
read
(
columns
);
}
virtual
bool
read
(
MutableColumns
&
columns
,
RowReadExtension
&
extra
)
=
0
;
virtual
void
readPrefix
()
{}
/// delimiter before begin of result
virtual
void
readSuffix
()
{}
/// delimiter after end of result
...
...
dbms/src/Formats/JSONEachRowRowInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -209,13 +209,8 @@ void JSONEachRowRowInputStream::readNestedData(const String & name, MutableColum
nested_prefix_length
=
0
;
}
bool
JSONEachRowRowInputStream
::
read
(
MutableColumns
&
columns
)
{
RowReadExtention
tmp
;
return
extendedRead
(
columns
,
tmp
);
}
bool
JSONEachRowRowInputStream
::
extendedRead
(
MutableColumns
&
columns
,
RowReadExtent
ion
&
ext
)
bool
JSONEachRowRowInputStream
::
read
(
MutableColumns
&
columns
,
RowReadExtens
ion
&
ext
)
{
skipWhitespaceIfAny
(
istr
);
...
...
dbms/src/Formats/JSONEachRowRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -22,8 +22,7 @@ class JSONEachRowRowInputStream : public IRowInputStream
public:
JSONEachRowRowInputStream
(
ReadBuffer
&
istr_
,
const
Block
&
header_
,
const
FormatSettings
&
format_settings
);
bool
read
(
MutableColumns
&
columns
)
override
;
bool
extendedRead
(
MutableColumns
&
columns
,
RowReadExtention
&
ext
)
override
;
bool
read
(
MutableColumns
&
columns
,
RowReadExtension
&
ext
)
override
;
bool
allowSyncAfterError
()
const
override
{
return
true
;
}
void
syncAfterError
()
override
;
...
...
dbms/src/Formats/TSKVRowInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -88,7 +88,7 @@ static bool readName(ReadBuffer & buf, StringRef & ref, String & tmp)
}
bool
TSKVRowInputStream
::
read
(
MutableColumns
&
columns
)
bool
TSKVRowInputStream
::
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
{
if
(
istr
.
eof
())
return
false
;
...
...
dbms/src/Formats/TSKVRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -25,7 +25,7 @@ class TSKVRowInputStream : public IRowInputStream
public:
TSKVRowInputStream
(
ReadBuffer
&
istr_
,
const
Block
&
header_
,
const
FormatSettings
&
format_settings
);
bool
read
(
MutableColumns
&
columns
)
override
;
bool
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
override
;
bool
allowSyncAfterError
()
const
override
{
return
true
;
}
void
syncAfterError
()
override
;
...
...
dbms/src/Formats/TabSeparatedRowInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -75,7 +75,7 @@ static void checkForCarriageReturn(ReadBuffer & istr)
}
bool
TabSeparatedRowInputStream
::
read
(
MutableColumns
&
columns
)
bool
TabSeparatedRowInputStream
::
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
{
if
(
istr
.
eof
())
return
false
;
...
...
dbms/src/Formats/TabSeparatedRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -22,7 +22,7 @@ public:
TabSeparatedRowInputStream
(
ReadBuffer
&
istr_
,
const
Block
&
header_
,
bool
with_names_
,
bool
with_types_
,
const
FormatSettings
&
format_settings
);
bool
read
(
MutableColumns
&
columns
)
override
;
bool
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
override
;
void
readPrefix
()
override
;
bool
allowSyncAfterError
()
const
override
{
return
true
;
}
void
syncAfterError
()
override
;
...
...
dbms/src/Formats/ValuesRowInputStream.cpp
浏览文件 @
933c0551
...
...
@@ -37,7 +37,7 @@ ValuesRowInputStream::ValuesRowInputStream(ReadBuffer & istr_, const Block & hea
}
bool
ValuesRowInputStream
::
read
(
MutableColumns
&
columns
)
bool
ValuesRowInputStream
::
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
{
size_t
num_columns
=
columns
.
size
();
...
...
dbms/src/Formats/ValuesRowInputStream.h
浏览文件 @
933c0551
...
...
@@ -23,7 +23,7 @@ public:
*/
ValuesRowInputStream
(
ReadBuffer
&
istr_
,
const
Block
&
header_
,
const
Context
&
context_
,
const
FormatSettings
&
format_settings
);
bool
read
(
MutableColumns
&
columns
)
override
;
bool
read
(
MutableColumns
&
columns
,
RowReadExtension
&
)
override
;
private:
ReadBuffer
&
istr
;
...
...
dbms/src/Interpreters/evaluateMissingDefaults.cpp
浏览文件 @
933c0551
...
...
@@ -37,7 +37,7 @@ static ASTPtr requiredExpressions(Block & block, const NamesAndTypesList & requi
void
evaluateMissingDefaults
(
Block
&
block
,
const
NamesAndTypesList
&
required_columns
,
const
ColumnDefaults
&
column_defaults
,
const
Context
&
context
,
bool
with_block_copy
)
const
Context
&
context
,
bool
save_unneded_columns
)
{
if
(
column_defaults
.
empty
())
return
;
...
...
@@ -46,7 +46,7 @@ void evaluateMissingDefaults(Block & block,
if
(
!
default_expr_list
)
return
;
if
(
!
with_block_copy
)
if
(
!
save_unneded_columns
)
{
auto
syntax_result
=
SyntaxAnalyzer
(
context
,
{}).
analyze
(
default_expr_list
,
block
.
getNamesAndTypesList
());
ExpressionAnalyzer
{
default_expr_list
,
syntax_result
,
context
}.
getActions
(
true
)
->
execute
(
block
);
...
...
@@ -56,7 +56,6 @@ void evaluateMissingDefaults(Block & block,
/** ExpressionAnalyzer eliminates "unused" columns, in order to ensure their safety
* we are going to operate on a copy instead of the original block */
Block
copy_block
{
block
};
/// evaluate default values for defaulted columns
auto
syntax_result
=
SyntaxAnalyzer
(
context
,
{}).
analyze
(
default_expr_list
,
block
.
getNamesAndTypesList
());
ExpressionAnalyzer
{
default_expr_list
,
syntax_result
,
context
}.
getActions
(
true
)
->
execute
(
copy_block
);
...
...
dbms/src/Interpreters/evaluateMissingDefaults.h
浏览文件 @
933c0551
...
...
@@ -12,9 +12,10 @@ class Context;
class
NamesAndTypesList
;
struct
ColumnDefault
;
///
void
evaluateMissingDefaults
(
Block
&
block
,
const
NamesAndTypesList
&
required_columns
,
const
std
::
unordered_map
<
std
::
string
,
ColumnDefault
>
&
column_defaults
,
const
Context
&
context
,
bool
with_block_copy
=
true
);
const
Context
&
context
,
bool
save_unneded_columns
=
true
);
}
dbms/src/Storages/ColumnDefault.cpp
浏览文件 @
933c0551
#include <iomanip>
#include <Storages/ColumnDefault.h>
#include <Storages/ColumnsDescription.h>
#include <Storages/IStorage.h>
...
...
dbms/src/Storages/MergeTree/MergeTreeData.cpp
浏览文件 @
933c0551
...
...
@@ -2173,7 +2173,8 @@ String MergeTreeData::getPartitionIDFromQuery(const ASTPtr & ast, const Context
ValuesRowInputStream
input_stream
(
buf
,
partition_key_sample
,
context
,
format_settings
);
MutableColumns
columns
=
partition_key_sample
.
cloneEmptyColumns
();
if
(
!
input_stream
.
read
(
columns
))
RowReadExtension
unused
;
if
(
!
input_stream
.
read
(
columns
,
unused
))
throw
Exception
(
"Could not parse partition value: `"
+
partition_ast
.
fields_str
.
toString
()
+
"`"
,
ErrorCodes
::
INVALID_PARTITION_VALUE
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录