Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
e52d71ad
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看板
未验证
提交
e52d71ad
编写于
4月 06, 2022
作者:
M
Minglei Jin
提交者:
GitHub
4月 06, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #11265 from taosdata/fix/TS-510
[TS-510]<fix>: fix missing last_row results
上级
d122a9a4
52babbd1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
0 deletion
+43
-0
src/tsdb/src/tsdbRead.c
src/tsdb/src/tsdbRead.c
+43
-0
未找到文件。
src/tsdb/src/tsdbRead.c
浏览文件 @
e52d71ad
...
...
@@ -189,6 +189,8 @@ static void* destroyTableCheckInfo(SArray* pTableCheckInfo);
static
bool
tsdbGetExternalRow
(
TsdbQueryHandleT
pHandle
);
static
int32_t
tsdbQueryTableList
(
STable
*
pTable
,
SArray
*
pRes
,
void
*
filterInfo
);
static
STableBlockInfo
*
moveToNextDataBlockInCurrentFile
(
STsdbQueryHandle
*
pQueryHandle
);
static
bool
initTableMemIterator
(
STsdbQueryHandle
*
pHandle
,
STableCheckInfo
*
pCheckInfo
);
static
SMemRow
getSMemRowInTableMem
(
STableCheckInfo
*
pCheckInfo
,
int32_t
order
,
int32_t
update
,
SMemRow
*
extraRow
);
static
void
tsdbInitDataBlockLoadInfo
(
SDataBlockLoadInfo
*
pBlockLoadInfo
)
{
pBlockLoadInfo
->
slot
=
-
1
;
...
...
@@ -632,12 +634,53 @@ static int32_t lazyLoadCacheLast(STsdbQueryHandle* pQueryHandle) {
if
(
pTable
->
cacheLastConfigVersion
==
pRepo
->
cacheLastConfigVersion
)
{
continue
;
}
if
(
!
pCheckInfo
->
initBuf
)
{
initTableMemIterator
(
pQueryHandle
,
pCheckInfo
);
}
code
=
tsdbLoadLastCache
(
pRepo
,
pTable
);
if
(
code
!=
0
)
{
tsdbError
(
"%p uid:%"
PRId64
", tid:%d, failed to load last cache since %s"
,
pQueryHandle
,
pTable
->
tableId
.
uid
,
pTable
->
tableId
.
tid
,
tstrerror
(
terrno
));
break
;
}
STsdbCfg
*
pCfg
=
&
pQueryHandle
->
pTsdb
->
config
;
bool
cacheLastRow
=
CACHE_LAST_ROW
(
&
(
pRepo
->
config
));
if
(
!
cacheLastRow
)
continue
;
SMemRow
row
=
getSMemRowInTableMem
(
pCheckInfo
,
pQueryHandle
->
order
,
pCfg
->
update
,
NULL
);
if
(
row
==
NULL
)
continue
;
TSKEY
key
=
memRowKey
(
row
);
if
(
!
pTable
->
lastRow
)
{
STSchema
*
pSchema
=
tsdbGetTableSchema
(
pTable
);
SMemRow
lastRow
=
taosTMalloc
(
memRowMaxBytesFromSchema
(
pSchema
));
if
(
lastRow
==
NULL
)
{
return
TSDB_CODE_TDB_OUT_OF_MEMORY
;
}
memRowCpy
(
lastRow
,
row
);
pTable
->
lastRow
=
lastRow
;
pTable
->
lastKey
=
key
;
}
else
{
TSKEY
lastRowKey
=
memRowKey
(
pTable
->
lastRow
);
if
(
key
<=
lastRowKey
)
continue
;
if
(
memRowTLen
(
pTable
->
lastRow
)
<
memRowTLen
(
row
))
{
SMemRow
lastRow
=
taosTRealloc
(
pTable
->
lastRow
,
memRowTLen
(
row
));
if
(
lastRow
==
NULL
)
{
taosTZfree
(
pTable
->
lastRow
);
pTable
->
lastRow
=
NULL
;
return
TSDB_CODE_TDB_OUT_OF_MEMORY
;
}
pTable
->
lastRow
=
lastRow
;
}
memRowCpy
(
pTable
->
lastRow
,
row
);
pTable
->
lastKey
=
key
;
}
}
return
code
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录