Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
1adc0a82
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,发现更多精彩内容 >>
提交
1adc0a82
编写于
9月 28, 2020
作者:
A
alesapin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix race condition in client suggestions
上级
fff9e5d5
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
9 addition
and
6 deletion
+9
-6
base/common/LineReader.cpp
base/common/LineReader.cpp
+2
-2
base/common/LineReader.h
base/common/LineReader.h
+2
-1
base/common/ReadlineLineReader.cpp
base/common/ReadlineLineReader.cpp
+2
-1
base/common/ReplxxLineReader.cpp
base/common/ReplxxLineReader.cpp
+3
-2
未找到文件。
base/common/LineReader.cpp
浏览文件 @
1adc0a82
...
...
@@ -38,10 +38,10 @@ bool hasInputData()
}
LineReader
::
Suggest
::
WordsRange
LineReader
::
Suggest
::
getCompletions
(
const
String
&
prefix
,
size_t
prefix_length
)
const
std
::
optional
<
LineReader
::
Suggest
::
WordsRange
>
LineReader
::
Suggest
::
getCompletions
(
const
String
&
prefix
,
size_t
prefix_length
)
const
{
if
(
!
ready
)
return
std
::
make_pair
(
words
.
end
(),
words
.
end
())
;
return
std
::
nullopt
;
std
::
string_view
last_word
;
...
...
base/common/LineReader.h
浏览文件 @
1adc0a82
...
...
@@ -4,6 +4,7 @@
#include <atomic>
#include <vector>
#include <optional>
class
LineReader
{
...
...
@@ -18,7 +19,7 @@ public:
std
::
atomic
<
bool
>
ready
{
false
};
/// Get iterators for the matched range of words if any.
WordsRange
getCompletions
(
const
String
&
prefix
,
size_t
prefix_length
)
const
;
std
::
optional
<
WordsRange
>
getCompletions
(
const
String
&
prefix
,
size_t
prefix_length
)
const
;
};
using
Patterns
=
std
::
vector
<
const
char
*>
;
...
...
base/common/ReadlineLineReader.cpp
浏览文件 @
1adc0a82
...
...
@@ -30,7 +30,8 @@ static LineReader::Suggest::Words::const_iterator end;
static
void
findRange
(
const
char
*
prefix
,
size_t
prefix_length
)
{
std
::
string
prefix_str
(
prefix
);
std
::
tie
(
pos
,
end
)
=
suggest
->
getCompletions
(
prefix_str
,
prefix_length
);
if
(
auto
completions
=
suggest
->
getCompletions
(
prefix_str
,
prefix_length
))
std
::
tie
(
pos
,
end
)
=
*
completions
;
}
/// Iterates through matched range.
...
...
base/common/ReplxxLineReader.cpp
浏览文件 @
1adc0a82
...
...
@@ -70,8 +70,9 @@ ReplxxLineReader::ReplxxLineReader(
auto
callback
=
[
&
suggest
]
(
const
String
&
context
,
size_t
context_size
)
{
auto
range
=
suggest
.
getCompletions
(
context
,
context_size
);
return
Replxx
::
completions_t
(
range
.
first
,
range
.
second
);
if
(
auto
range
=
suggest
.
getCompletions
(
context
,
context_size
))
return
Replxx
::
completions_t
(
range
->
first
,
range
->
second
);
return
Replxx
::
completions_t
();
};
rx
.
set_completion_callback
(
callback
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录