Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
6256e6f2
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6256e6f2
编写于
3月 31, 2022
作者:
dengyihao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add fuzzy search
上级
aae1ba31
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
20 addition
and
26 deletion
+20
-26
source/libs/index/inc/indexFstRegex.h
source/libs/index/inc/indexFstRegex.h
+0
-3
source/libs/index/inc/indexFstSparse.h
source/libs/index/inc/indexFstSparse.h
+3
-3
source/libs/index/src/indexFstSparse.c
source/libs/index/src/indexFstSparse.c
+17
-20
未找到文件。
source/libs/index/inc/indexFstRegex.h
浏览文件 @
6256e6f2
...
@@ -67,9 +67,6 @@ uint32_t regexAutomStart(FstRegex *regex);
...
@@ -67,9 +67,6 @@ uint32_t regexAutomStart(FstRegex *regex);
bool
regexAutomIsMatch
(
FstRegex
*
regex
,
uint32_t
state
);
bool
regexAutomIsMatch
(
FstRegex
*
regex
,
uint32_t
state
);
bool
regexAutomCanMatch
(
FstRegex
*
regex
,
uint32_t
state
,
bool
null
);
bool
regexAutomCanMatch
(
FstRegex
*
regex
,
uint32_t
state
,
bool
null
);
bool
regexAutomAccept
(
FstRegex
*
regex
,
uint32_t
state
,
uint8_t
byte
,
uint32_t
*
result
);
bool
regexAutomAccept
(
FstRegex
*
regex
,
uint32_t
state
,
uint8_t
byte
,
uint32_t
*
result
);
// void regexSetup(FstRegex *regex, uint32_t size, const char *str);
// uint32_t regexStart()
#ifdef __cplusplus
#ifdef __cplusplus
}
}
...
...
source/libs/index/inc/indexFstSparse.h
浏览文件 @
6256e6f2
...
@@ -23,9 +23,9 @@ extern "C" {
...
@@ -23,9 +23,9 @@ extern "C" {
#endif
#endif
typedef
struct
FstSparseSet
{
typedef
struct
FstSparseSet
{
SArray
*
dense
;
uint32_t
*
dense
;
SArray
*
sparse
;
uint32_t
*
sparse
;
int32_t
size
;
int32_t
size
;
}
FstSparseSet
;
}
FstSparseSet
;
FstSparseSet
*
sparSetCreate
(
int32_t
sz
);
FstSparseSet
*
sparSetCreate
(
int32_t
sz
);
...
...
source/libs/index/src/indexFstSparse.c
浏览文件 @
6256e6f2
...
@@ -21,47 +21,44 @@ FstSparseSet *sparSetCreate(int32_t sz) {
...
@@ -21,47 +21,44 @@ FstSparseSet *sparSetCreate(int32_t sz) {
return
NULL
;
return
NULL
;
}
}
ss
->
dense
=
taosArrayInit
(
sz
,
sizeof
(
uint32_t
));
ss
->
dense
=
(
uint32_t
*
)
taosMemoryCalloc
(
sz
,
sizeof
(
uint32_t
));
ss
->
sparse
=
taosArrayInit
(
sz
,
sizeof
(
uint32_t
));
ss
->
sparse
=
(
uint32_t
*
)
taosMemoryCalloc
(
sz
,
sizeof
(
uint32_t
));
ss
->
size
=
sz
;
ss
->
size
=
0
;
return
ss
;
return
ss
;
}
}
void
sparSetDestroy
(
FstSparseSet
*
ss
)
{
void
sparSetDestroy
(
FstSparseSet
*
ss
)
{
if
(
ss
==
NULL
)
{
if
(
ss
==
NULL
)
{
return
;
return
;
}
}
taos
ArrayDestroy
(
ss
->
dense
);
taos
MemoryFree
(
ss
->
dense
);
taos
ArrayDestroy
(
ss
->
sparse
);
taos
MemoryFree
(
ss
->
sparse
);
taosMemoryFree
(
ss
);
taosMemoryFree
(
ss
);
}
}
uint32_t
sparSetLen
(
FstSparseSet
*
ss
)
{
return
ss
==
NULL
?
0
:
ss
->
size
;
}
uint32_t
sparSetLen
(
FstSparseSet
*
ss
)
{
// Get occupied size
return
ss
==
NULL
?
0
:
ss
->
size
;
}
uint32_t
sparSetAdd
(
FstSparseSet
*
ss
,
uint32_t
ip
)
{
uint32_t
sparSetAdd
(
FstSparseSet
*
ss
,
uint32_t
ip
)
{
if
(
ss
==
NULL
)
{
if
(
ss
==
NULL
)
{
return
0
;
return
0
;
}
}
uint32_t
i
=
ss
->
size
;
uint32_t
i
=
ss
->
size
;
taosArraySet
(
ss
->
dense
,
i
,
&
ip
)
;
ss
->
dense
[
i
]
=
ip
;
taosArraySet
(
ss
->
sparse
,
ip
,
&
i
)
;
ss
->
sparse
[
ip
]
=
i
;
ss
->
size
+=
1
;
ss
->
size
+=
1
;
return
i
;
return
i
;
}
}
uint32_t
sparSetGet
(
FstSparseSet
*
ss
,
uint32_t
i
)
{
uint32_t
sparSetGet
(
FstSparseSet
*
ss
,
uint32_t
i
)
{
if
(
i
>=
taosArrayGetSize
(
ss
->
dense
))
{
// check later
return
0
;
return
ss
->
dense
[
i
];
}
uint32_t
*
v
=
taosArrayGet
(
ss
->
dense
,
i
);
return
*
v
;
}
}
bool
sparSetContains
(
FstSparseSet
*
ss
,
uint32_t
ip
)
{
bool
sparSetContains
(
FstSparseSet
*
ss
,
uint32_t
ip
)
{
if
(
ip
>=
taosArrayGetSize
(
ss
->
sparse
))
{
uint32_t
i
=
ss
->
sparse
[
ip
];
return
false
;
if
(
i
<
ss
->
size
&&
ss
->
dense
[
i
]
==
ip
)
{
}
return
true
;
uint32_t
i
=
*
(
uint32_t
*
)
taosArrayGet
(
ss
->
sparse
,
ip
);
}
else
{
if
(
i
>=
taosArrayGetSize
(
ss
->
dense
))
{
return
false
;
return
false
;
}
}
uint32_t
v
=
*
(
uint32_t
*
)
taosArrayGet
(
ss
->
dense
,
i
);
return
v
==
ip
;
}
}
void
sparSetClear
(
FstSparseSet
*
ss
)
{
void
sparSetClear
(
FstSparseSet
*
ss
)
{
if
(
ss
==
NULL
)
{
if
(
ss
==
NULL
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录