Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
088a61be
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
088a61be
编写于
11月 07, 2022
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(query): release the handle
上级
c86427c7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
6 deletion
+12
-6
source/libs/executor/src/scanoperator.c
source/libs/executor/src/scanoperator.c
+12
-6
未找到文件。
source/libs/executor/src/scanoperator.c
浏览文件 @
088a61be
...
...
@@ -535,6 +535,7 @@ int32_t addTagPseudoColumnData(SReadHandle* pHandle, const SExprInfo* pExpr, int
STableCachedVal
val
=
{
0
};
SMetaReader
mr
=
{
0
};
LRUHandle
*
h
=
NULL
;
// 1. check if it is existed in meta cache
if
(
pCache
==
NULL
)
{
...
...
@@ -555,7 +556,7 @@ int32_t addTagPseudoColumnData(SReadHandle* pHandle, const SExprInfo* pExpr, int
}
else
{
pCache
->
metaFetch
+=
1
;
LRUHandle
*
h
=
taosLRUCacheLookup
(
pCache
->
pTableMetaEntryCache
,
&
pBlock
->
info
.
uid
,
sizeof
(
pBlock
->
info
.
uid
));
h
=
taosLRUCacheLookup
(
pCache
->
pTableMetaEntryCache
,
&
pBlock
->
info
.
uid
,
sizeof
(
pBlock
->
info
.
uid
));
if
(
h
==
NULL
)
{
metaReaderInit
(
&
mr
,
pHandle
->
meta
,
0
);
code
=
metaGetTableEntryByUid
(
&
mr
,
pBlock
->
info
.
uid
);
...
...
@@ -569,23 +570,28 @@ int32_t addTagPseudoColumnData(SReadHandle* pHandle, const SExprInfo* pExpr, int
STableCachedVal
*
pVal
=
taosMemoryMalloc
(
sizeof
(
STableCachedVal
));
pVal
->
pName
=
strdup
(
mr
.
me
.
name
);
STag
*
pTag
=
(
STag
*
)
mr
.
me
.
ctbEntry
.
pTags
;
pVal
->
pTags
=
NULL
;
pVal
->
pTags
=
taosMemoryMalloc
(
pTag
->
len
);
memcpy
(
pVal
->
pTags
,
mr
.
me
.
ctbEntry
.
pTags
,
pTag
->
len
);
// only child table has tag value
if
(
mr
.
me
.
type
==
TSDB_CHILD_TABLE
)
{
STag
*
pTag
=
(
STag
*
)
mr
.
me
.
ctbEntry
.
pTags
;
pVal
->
pTags
=
taosMemoryMalloc
(
pTag
->
len
);
memcpy
(
pVal
->
pTags
,
mr
.
me
.
ctbEntry
.
pTags
,
pTag
->
len
);
}
val
=
*
pVal
;
freeReader
=
true
;
int32_t
ret
=
taosLRUCacheInsert
(
pCache
->
pTableMetaEntryCache
,
&
pBlock
->
info
.
uid
,
sizeof
(
uint64_t
),
pVal
,
sizeof
(
STableCachedVal
),
freeCachedMetaItem
,
NULL
,
TAOS_LRU_PRIORITY_LOW
);
if
(
ret
!=
TAOS_LRU_STATUS_OK
)
{
qError
(
"failed to put meta into lru cache, code:%d, %s"
,
ret
,
idStr
);
freeTableCachedVal
(
pVal
);
}
else
{
val
=
*
pVal
;
}
}
else
{
pCache
->
cacheHit
+=
1
;
STableCachedVal
*
pVal
=
taosLRUCacheValue
(
pCache
->
pTableMetaEntryCache
,
h
);
val
=
*
pVal
;
taosLRUCacheRelease
(
pCache
->
pTableMetaEntryCache
,
h
,
false
);
}
qDebug
(
"retrieve table meta from cache:%"
PRIu64
", hit:%"
PRIu64
" miss:%"
PRIu64
", %s"
,
pCache
->
metaFetch
,
pCache
->
cacheHit
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录