Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
d1aeaedf
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,体验更适合开发者的 AI 搜索 >>
提交
d1aeaedf
编写于
3月 02, 2014
作者:
A
Alexey Milovidov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dbms: added totals and extremes to Pretty* and TabSeparated* formats [#METR-9365].
上级
713d0c46
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
125 addition
and
2 deletion
+125
-2
dbms/include/DB/DataStreams/PrettyBlockOutputStream.h
dbms/include/DB/DataStreams/PrettyBlockOutputStream.h
+9
-0
dbms/include/DB/DataStreams/TabSeparatedRowOutputStream.h
dbms/include/DB/DataStreams/TabSeparatedRowOutputStream.h
+9
-0
dbms/src/DataStreams/PrettyBlockOutputStream.cpp
dbms/src/DataStreams/PrettyBlockOutputStream.cpp
+24
-0
dbms/src/DataStreams/PrettyCompactMonoBlockOutputStream.cpp
dbms/src/DataStreams/PrettyCompactMonoBlockOutputStream.cpp
+21
-2
dbms/src/DataStreams/PrettySpaceBlockOutputStream.cpp
dbms/src/DataStreams/PrettySpaceBlockOutputStream.cpp
+4
-0
dbms/src/DataStreams/TabSeparatedRowOutputStream.cpp
dbms/src/DataStreams/TabSeparatedRowOutputStream.cpp
+58
-0
未找到文件。
dbms/include/DB/DataStreams/PrettyBlockOutputStream.h
浏览文件 @
d1aeaedf
...
@@ -18,7 +18,13 @@ public:
...
@@ -18,7 +18,13 @@ public:
void
write
(
const
Block
&
block
);
void
write
(
const
Block
&
block
);
void
writeSuffix
();
void
writeSuffix
();
void
setTotals
(
const
Block
&
totals_
)
{
totals
=
totals_
;
}
void
setExtremes
(
const
Block
&
extremes_
)
{
extremes
=
extremes_
;
}
protected:
protected:
void
writeTotals
();
void
writeExtremes
();
typedef
std
::
vector
<
size_t
>
Widths_t
;
typedef
std
::
vector
<
size_t
>
Widths_t
;
/// Вычислить видимую (при выводе на консоль с кодировкой UTF-8) ширину значений и имён столбцов.
/// Вычислить видимую (при выводе на консоль с кодировкой UTF-8) ширину значений и имён столбцов.
...
@@ -30,6 +36,9 @@ protected:
...
@@ -30,6 +36,9 @@ protected:
size_t
terminal_width
;
size_t
terminal_width
;
bool
no_escapes
;
bool
no_escapes
;
Block
totals
;
Block
extremes
;
};
};
}
}
dbms/include/DB/DataStreams/TabSeparatedRowOutputStream.h
浏览文件 @
d1aeaedf
...
@@ -24,14 +24,23 @@ public:
...
@@ -24,14 +24,23 @@ public:
void
writeFieldDelimiter
();
void
writeFieldDelimiter
();
void
writeRowEndDelimiter
();
void
writeRowEndDelimiter
();
void
writePrefix
();
void
writePrefix
();
void
writeSuffix
();
void
setTotals
(
const
Block
&
totals_
)
{
totals
=
totals_
;
}
void
setExtremes
(
const
Block
&
extremes_
)
{
extremes
=
extremes_
;
}
protected:
protected:
void
writeTotals
();
void
writeExtremes
();
WriteBuffer
&
ostr
;
WriteBuffer
&
ostr
;
const
Block
sample
;
const
Block
sample
;
bool
with_names
;
bool
with_names
;
bool
with_types
;
bool
with_types
;
DataTypes
data_types
;
DataTypes
data_types
;
size_t
field_number
;
size_t
field_number
;
Block
totals
;
Block
extremes
;
};
};
}
}
...
...
dbms/src/DataStreams/PrettyBlockOutputStream.cpp
浏览文件 @
d1aeaedf
...
@@ -213,6 +213,30 @@ void PrettyBlockOutputStream::writeSuffix()
...
@@ -213,6 +213,30 @@ void PrettyBlockOutputStream::writeSuffix()
writeIntText
(
max_rows
,
ostr
);
writeIntText
(
max_rows
,
ostr
);
writeCString
(
".
\n
"
,
ostr
);
writeCString
(
".
\n
"
,
ostr
);
}
}
total_rows
=
0
;
writeTotals
();
writeExtremes
();
}
void
PrettyBlockOutputStream
::
writeTotals
()
{
if
(
totals
)
{
writeCString
(
"
\n
Totals:
\n
"
,
ostr
);
write
(
totals
);
}
}
void
PrettyBlockOutputStream
::
writeExtremes
()
{
if
(
extremes
)
{
writeCString
(
"
\n
Extremes:
\n
"
,
ostr
);
write
(
extremes
);
}
}
}
...
...
dbms/src/DataStreams/PrettyCompactMonoBlockOutputStream.cpp
浏览文件 @
d1aeaedf
...
@@ -45,8 +45,27 @@ void PrettyCompactMonoBlockOutputStream::writeSuffix()
...
@@ -45,8 +45,27 @@ void PrettyCompactMonoBlockOutputStream::writeSuffix()
}
}
writeBottom
(
max_widths
);
writeBottom
(
max_widths
);
PrettyBlockOutputStream
::
writeSuffix
();
if
(
total_rows
>=
max_rows
)
{
writeCString
(
" Showed first "
,
ostr
);
writeIntText
(
max_rows
,
ostr
);
writeCString
(
".
\n
"
,
ostr
);
}
total_rows
=
0
;
if
(
totals
)
{
writeCString
(
"
\n
Totals:
\n
"
,
ostr
);
PrettyCompactBlockOutputStream
::
write
(
totals
);
}
if
(
extremes
)
{
writeCString
(
"
\n
Extremes:
\n
"
,
ostr
);
PrettyCompactBlockOutputStream
::
write
(
extremes
);
}
}
}
}
}
dbms/src/DataStreams/PrettySpaceBlockOutputStream.cpp
浏览文件 @
d1aeaedf
...
@@ -109,6 +109,10 @@ void PrettySpaceBlockOutputStream::writeSuffix()
...
@@ -109,6 +109,10 @@ void PrettySpaceBlockOutputStream::writeSuffix()
writeIntText
(
max_rows
,
ostr
);
writeIntText
(
max_rows
,
ostr
);
writeCString
(
"."
,
ostr
);
writeCString
(
"."
,
ostr
);
}
}
total_rows
=
0
;
writeTotals
();
writeExtremes
();
}
}
}
}
dbms/src/DataStreams/TabSeparatedRowOutputStream.cpp
浏览文件 @
d1aeaedf
...
@@ -62,4 +62,62 @@ void TabSeparatedRowOutputStream::writeRowEndDelimiter()
...
@@ -62,4 +62,62 @@ void TabSeparatedRowOutputStream::writeRowEndDelimiter()
field_number
=
0
;
field_number
=
0
;
}
}
void
TabSeparatedRowOutputStream
::
writeSuffix
()
{
writeTotals
();
writeExtremes
();
}
void
TabSeparatedRowOutputStream
::
writeTotals
()
{
if
(
totals
)
{
size_t
columns
=
totals
.
columns
();
writeChar
(
'\n'
,
ostr
);
writeRowStartDelimiter
();
for
(
size_t
j
=
0
;
j
<
columns
;
++
j
)
{
if
(
j
!=
0
)
writeFieldDelimiter
();
writeField
((
*
totals
.
getByPosition
(
j
).
column
)[
0
]);
}
writeRowEndDelimiter
();
}
}
void
TabSeparatedRowOutputStream
::
writeExtremes
()
{
if
(
extremes
)
{
size_t
rows
=
extremes
.
rows
();
size_t
columns
=
extremes
.
columns
();
writeChar
(
'\n'
,
ostr
);
for
(
size_t
i
=
0
;
i
<
rows
;
++
i
)
{
if
(
i
!=
0
)
writeRowBetweenDelimiter
();
writeRowStartDelimiter
();
for
(
size_t
j
=
0
;
j
<
columns
;
++
j
)
{
if
(
j
!=
0
)
writeFieldDelimiter
();
writeField
((
*
extremes
.
getByPosition
(
j
).
column
)[
i
]);
}
writeRowEndDelimiter
();
}
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录