Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
ae91d392
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
ae91d392
编写于
7月 16, 2021
作者:
S
Shengliang Guan
提交者:
GitHub
7月 16, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6729 from jtcheng/bugfix/TD-6722
[TD-6722]: Fix table show pattern issue
上级
09698c15
3875ac10
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
11 deletion
+31
-11
src/mnode/src/mnodeTable.c
src/mnode/src/mnodeTable.c
+31
-11
未找到文件。
src/mnode/src/mnodeTable.c
浏览文件 @
ae91d392
...
...
@@ -104,6 +104,20 @@ static void mnodeDestroyChildTable(SCTableObj *pTable) {
tfree
(
pTable
);
}
static
char
*
mnodeGetTableShowPattern
(
SShowObj
*
pShow
)
{
char
*
pattern
=
NULL
;
if
(
pShow
!=
NULL
&&
pShow
->
payloadLen
>
0
)
{
pattern
=
(
char
*
)
malloc
(
pShow
->
payloadLen
+
1
);
if
(
pattern
==
NULL
)
{
terrno
=
TSDB_CODE_QRY_OUT_OF_MEMORY
;
return
NULL
;
}
memcpy
(
pattern
,
pShow
->
payload
,
pShow
->
payloadLen
);
pattern
[
pShow
->
payloadLen
]
=
0
;
}
return
pattern
;
}
static
int32_t
mnodeChildTableActionDestroy
(
SSdbRow
*
pRow
)
{
mnodeDestroyChildTable
(
pRow
->
pObj
);
return
TSDB_CODE_SUCCESS
;
...
...
@@ -1620,6 +1634,11 @@ int32_t mnodeRetrieveShowSuperTables(SShowObj *pShow, char *data, int32_t rows,
SPatternCompareInfo
info
=
PATTERN_COMPARE_INFO_INITIALIZER
;
char
stableName
[
TSDB_TABLE_NAME_LEN
]
=
{
0
};
char
*
pattern
=
mnodeGetTableShowPattern
(
pShow
);
if
(
pShow
->
payloadLen
>
0
&&
pattern
==
NULL
)
{
return
0
;
}
while
(
numOfRows
<
rows
)
{
pShow
->
pIter
=
mnodeGetNextSuperTable
(
pShow
->
pIter
,
&
pTable
);
if
(
pTable
==
NULL
)
break
;
...
...
@@ -1631,7 +1650,7 @@ int32_t mnodeRetrieveShowSuperTables(SShowObj *pShow, char *data, int32_t rows,
memset
(
stableName
,
0
,
tListLen
(
stableName
));
mnodeExtractTableName
(
pTable
->
info
.
tableId
,
stableName
);
if
(
pShow
->
payloadLen
>
0
&&
patternMatch
(
p
Show
->
payload
,
stableName
,
sizeof
(
stableName
)
-
1
,
&
info
)
!=
TSDB_PATTERN_MATCH
)
{
if
(
pShow
->
payloadLen
>
0
&&
patternMatch
(
p
attern
,
stableName
,
sizeof
(
stableName
)
-
1
,
&
info
)
!=
TSDB_PATTERN_MATCH
)
{
mnodeDecTableRef
(
pTable
);
continue
;
}
...
...
@@ -1671,6 +1690,7 @@ int32_t mnodeRetrieveShowSuperTables(SShowObj *pShow, char *data, int32_t rows,
mnodeVacuumResult
(
data
,
pShow
->
numOfColumns
,
numOfRows
,
rows
,
pShow
);
mnodeDecDbRef
(
pDb
);
free
(
pattern
);
return
numOfRows
;
}
...
...
@@ -3157,15 +3177,9 @@ static int32_t mnodeRetrieveShowTables(SShowObj *pShow, char *data, int32_t rows
char
prefix
[
64
]
=
{
0
};
int32_t
prefixLen
=
(
int32_t
)
tableIdPrefix
(
pDb
->
name
,
prefix
,
64
);
char
*
pattern
=
NULL
;
if
(
pShow
->
payloadLen
>
0
)
{
pattern
=
(
char
*
)
malloc
(
pShow
->
payloadLen
+
1
);
if
(
pattern
==
NULL
)
{
terrno
=
TSDB_CODE_QRY_OUT_OF_MEMORY
;
return
0
;
}
memcpy
(
pattern
,
pShow
->
payload
,
pShow
->
payloadLen
);
pattern
[
pShow
->
payloadLen
]
=
0
;
char
*
pattern
=
mnodeGetTableShowPattern
(
pShow
);
if
(
pShow
->
payloadLen
>
0
&&
pattern
==
NULL
)
{
return
0
;
}
while
(
numOfRows
<
rows
)
{
...
...
@@ -3397,6 +3411,11 @@ static int32_t mnodeRetrieveStreamTables(SShowObj *pShow, char *data, int32_t ro
strcat
(
prefix
,
TS_PATH_DELIMITER
);
int32_t
prefixLen
=
(
int32_t
)
strlen
(
prefix
);
char
*
pattern
=
mnodeGetTableShowPattern
(
pShow
);
if
(
pShow
->
payloadLen
>
0
&&
pattern
==
NULL
)
{
return
0
;
}
while
(
numOfRows
<
rows
)
{
pShow
->
pIter
=
mnodeGetNextChildTable
(
pShow
->
pIter
,
&
pTable
);
if
(
pTable
==
NULL
)
break
;
...
...
@@ -3412,7 +3431,7 @@ static int32_t mnodeRetrieveStreamTables(SShowObj *pShow, char *data, int32_t ro
// pattern compare for table name
mnodeExtractTableName
(
pTable
->
info
.
tableId
,
tableName
);
if
(
pShow
->
payloadLen
>
0
&&
patternMatch
(
p
Show
->
payload
,
tableName
,
sizeof
(
tableName
)
-
1
,
&
info
)
!=
TSDB_PATTERN_MATCH
)
{
if
(
pShow
->
payloadLen
>
0
&&
patternMatch
(
p
attern
,
tableName
,
sizeof
(
tableName
)
-
1
,
&
info
)
!=
TSDB_PATTERN_MATCH
)
{
mnodeDecTableRef
(
pTable
);
continue
;
}
...
...
@@ -3444,6 +3463,7 @@ static int32_t mnodeRetrieveStreamTables(SShowObj *pShow, char *data, int32_t ro
mnodeVacuumResult
(
data
,
pShow
->
numOfColumns
,
numOfRows
,
rows
,
pShow
);
mnodeDecDbRef
(
pDb
);
free
(
pattern
);
return
numOfRows
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录