Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4b819622
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
4b819622
编写于
1月 04, 2023
作者:
G
Ganlin Zhao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix asserts
上级
028ded93
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
95 addition
and
122 deletion
+95
-122
include/common/ttypes.h
include/common/ttypes.h
+1
-1
source/common/src/tdatablock.c
source/common/src/tdatablock.c
+36
-41
source/common/src/tname.c
source/common/src/tname.c
+8
-22
source/common/src/trow.c
source/common/src/trow.c
+2
-23
source/common/src/ttime.c
source/common/src/ttime.c
+10
-7
source/common/src/ttszip.c
source/common/src/ttszip.c
+27
-21
source/common/src/ttypes.c
source/common/src/ttypes.c
+5
-4
source/common/src/tvariant.c
source/common/src/tvariant.c
+2
-2
source/libs/scalar/src/filter.c
source/libs/scalar/src/filter.c
+4
-1
未找到文件。
include/common/ttypes.h
浏览文件 @
4b819622
...
...
@@ -342,8 +342,8 @@ typedef struct tDataTypeDescriptor {
extern
tDataTypeDescriptor
tDataTypes
[
TSDB_DATA_TYPE_MAX
];
bool
isValidDataType
(
int32_t
type
);
int32_t
operateVal
(
void
*
dst
,
void
*
s1
,
void
*
s2
,
int32_t
optr
,
int32_t
type
);
void
assignVal
(
char
*
val
,
const
char
*
src
,
int32_t
len
,
int32_t
type
);
void
operateVal
(
void
*
dst
,
void
*
s1
,
void
*
s2
,
int32_t
optr
,
int32_t
type
);
void
*
getDataMin
(
int32_t
type
,
void
*
value
);
void
*
getDataMax
(
int32_t
type
,
void
*
value
);
...
...
source/common/src/tdatablock.c
浏览文件 @
4b819622
...
...
@@ -22,7 +22,6 @@
#define MALLOC_ALIGN_BYTES 256
int32_t
colDataGetLength
(
const
SColumnInfoData
*
pColumnInfoData
,
int32_t
numOfRows
)
{
ASSERT
(
pColumnInfoData
!=
NULL
);
if
(
IS_VAR_DATA_TYPE
(
pColumnInfoData
->
info
.
type
))
{
return
pColumnInfoData
->
varmeta
.
length
;
}
else
{
...
...
@@ -65,8 +64,6 @@ int32_t getJsonValueLen(const char* data) {
}
int32_t
colDataAppend
(
SColumnInfoData
*
pColumnInfoData
,
uint32_t
currentRow
,
const
char
*
pData
,
bool
isNull
)
{
ASSERT
(
pColumnInfoData
!=
NULL
);
if
(
isNull
)
{
// There is a placehold for each NULL value of binary or nchar type.
if
(
IS_VAR_DATA_TYPE
(
pColumnInfoData
->
info
.
type
))
{
...
...
@@ -177,8 +174,6 @@ static void doCopyNItems(struct SColumnInfoData* pColumnInfoData, int32_t curren
int32_t
colDataAppendNItems
(
SColumnInfoData
*
pColumnInfoData
,
uint32_t
currentRow
,
const
char
*
pData
,
uint32_t
numOfRows
)
{
ASSERT
(
pData
!=
NULL
&&
pColumnInfoData
!=
NULL
);
int32_t
len
=
pColumnInfoData
->
info
.
bytes
;
if
(
IS_VAR_DATA_TYPE
(
pColumnInfoData
->
info
.
type
))
{
len
=
varDataTLen
(
pData
);
...
...
@@ -236,7 +231,10 @@ static void doBitmapMerge(SColumnInfoData* pColumnInfoData, int32_t numOfRow1, c
int32_t
colDataMergeCol
(
SColumnInfoData
*
pColumnInfoData
,
int32_t
numOfRow1
,
int32_t
*
capacity
,
const
SColumnInfoData
*
pSource
,
int32_t
numOfRow2
)
{
ASSERT
(
pColumnInfoData
!=
NULL
&&
pSource
!=
NULL
&&
pColumnInfoData
->
info
.
type
==
pSource
->
info
.
type
);
if
(
pColumnInfoData
->
info
.
type
!=
pSource
->
info
.
type
)
{
return
TSDB_CODE_FAILED
;
}
if
(
numOfRow2
==
0
)
{
return
numOfRow1
;
}
...
...
@@ -316,13 +314,13 @@ int32_t colDataMergeCol(SColumnInfoData* pColumnInfoData, int32_t numOfRow1, int
int32_t
colDataAssign
(
SColumnInfoData
*
pColumnInfoData
,
const
SColumnInfoData
*
pSource
,
int32_t
numOfRows
,
const
SDataBlockInfo
*
pBlockInfo
)
{
ASSERT
(
pColumnInfoData
!=
NULL
&&
pSource
!=
NULL
&&
pColumnInfoData
->
info
.
type
==
pSource
->
info
.
type
);
if
(
numOfRows
<=
0
)
{
return
numOfRows
;
if
(
pColumnInfoData
->
info
.
type
!=
pSource
->
info
.
type
||
pBlockInfo
->
capacity
<
numOfRows
)
{
return
TSDB_CODE_FAILED
;
}
if
(
pBlockInfo
!=
NULL
)
{
ASSERT
(
pBlockInfo
->
capacity
>=
numOfRows
)
;
if
(
numOfRows
<=
0
)
{
return
numOfRows
;
}
if
(
IS_VAR_DATA_TYPE
(
pColumnInfoData
->
info
.
type
))
{
...
...
@@ -388,7 +386,6 @@ int32_t blockDataUpdateTsWindow(SSDataBlock* pDataBlock, int32_t tsColumnIndex)
}
int32_t
blockDataMerge
(
SSDataBlock
*
pDest
,
const
SSDataBlock
*
pSrc
)
{
assert
(
pSrc
!=
NULL
&&
pDest
!=
NULL
);
int32_t
capacity
=
pDest
->
info
.
capacity
;
size_t
numOfCols
=
taosArrayGetSize
(
pDest
->
pDataBlock
);
...
...
@@ -406,8 +403,6 @@ int32_t blockDataMerge(SSDataBlock* pDest, const SSDataBlock* pSrc) {
}
size_t
blockDataGetSize
(
const
SSDataBlock
*
pBlock
)
{
assert
(
pBlock
!=
NULL
);
size_t
total
=
0
;
size_t
numOfCols
=
taosArrayGetSize
(
pBlock
->
pDataBlock
);
for
(
int32_t
i
=
0
;
i
<
numOfCols
;
++
i
)
{
...
...
@@ -422,8 +417,6 @@ size_t blockDataGetSize(const SSDataBlock* pBlock) {
// Actual data rows pluses the corresponding meta data must fit in one memory buffer of the given page size.
int32_t
blockDataSplitRows
(
SSDataBlock
*
pBlock
,
bool
hasVarCol
,
int32_t
startIndex
,
int32_t
*
stopIndex
,
int32_t
pageSize
)
{
ASSERT
(
pBlock
!=
NULL
&&
stopIndex
!=
NULL
);
size_t
numOfCols
=
taosArrayGetSize
(
pBlock
->
pDataBlock
);
int32_t
numOfRows
=
pBlock
->
info
.
rows
;
...
...
@@ -437,7 +430,9 @@ int32_t blockDataSplitRows(SSDataBlock* pBlock, bool hasVarCol, int32_t startInd
if
(
!
hasVarCol
)
{
size_t
rowSize
=
blockDataGetRowSize
(
pBlock
);
int32_t
capacity
=
payloadSize
/
(
rowSize
+
numOfCols
*
bitmapChar
/
8
.
0
);
ASSERT
(
capacity
>
0
);
if
(
capacity
<=
0
)
{
return
TSDB_CODE_FAILED
;
}
*
stopIndex
=
startIndex
+
capacity
-
1
;
if
(
*
stopIndex
>=
numOfRows
)
{
...
...
@@ -469,7 +464,9 @@ int32_t blockDataSplitRows(SSDataBlock* pBlock, bool hasVarCol, int32_t startInd
if
(
size
>
pageSize
)
{
// pageSize must be able to hold one row
*
stopIndex
=
j
-
1
;
ASSERT
(
*
stopIndex
>=
startIndex
);
if
(
*
stopIndex
<
startIndex
)
{
return
TSDB_CODE_FAILED
;
}
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -540,8 +537,6 @@ SSDataBlock* blockDataExtractBlock(SSDataBlock* pBlock, int32_t startIndex, int3
* @return
*/
int32_t
blockDataToBuf
(
char
*
buf
,
const
SSDataBlock
*
pBlock
)
{
ASSERT
(
pBlock
!=
NULL
);
// write the number of rows
*
(
uint32_t
*
)
buf
=
pBlock
->
info
.
rows
;
...
...
@@ -612,7 +607,9 @@ int32_t blockDataFromBuf(SSDataBlock* pBlock, const char* buf) {
}
pCol
->
varmeta
.
length
=
colLength
;
ASSERT
(
pCol
->
varmeta
.
length
<=
pCol
->
varmeta
.
allocLen
);
if
(
pCol
->
varmeta
.
length
>
pCol
->
varmeta
.
allocLen
)
{
return
TSDB_CODE_FAILED
;
}
}
memcpy
(
pCol
->
pData
,
pStart
,
colLength
);
...
...
@@ -659,7 +656,9 @@ int32_t blockDataFromBuf1(SSDataBlock* pBlock, const char* buf, size_t capacity)
}
pCol
->
varmeta
.
length
=
colLength
;
ASSERT
(
pCol
->
varmeta
.
length
<=
pCol
->
varmeta
.
allocLen
);
if
(
pCol
->
varmeta
.
length
>
pCol
->
varmeta
.
allocLen
)
{
return
TSDB_CODE_FAILED
;
}
}
if
(
!
colDataIsNNull_s
(
pCol
,
0
,
pBlock
->
info
.
rows
))
{
...
...
@@ -673,7 +672,6 @@ int32_t blockDataFromBuf1(SSDataBlock* pBlock, const char* buf, size_t capacity)
}
size_t
blockDataGetRowSize
(
SSDataBlock
*
pBlock
)
{
ASSERT
(
pBlock
!=
NULL
);
if
(
pBlock
->
info
.
rowSize
==
0
)
{
size_t
rowSize
=
0
;
...
...
@@ -702,7 +700,6 @@ size_t blockDataGetSerialMetaSize(uint32_t numOfCols) {
}
double
blockDataGetSerialRowSize
(
const
SSDataBlock
*
pBlock
)
{
ASSERT
(
pBlock
!=
NULL
);
double
rowSize
=
0
;
size_t
numOfCols
=
taosArrayGetSize
(
pBlock
->
pDataBlock
);
...
...
@@ -905,7 +902,6 @@ static int32_t* createTupleIndex(size_t rows) {
static
void
destroyTupleIndex
(
int32_t
*
index
)
{
taosMemoryFreeClear
(
index
);
}
int32_t
blockDataSort
(
SSDataBlock
*
pDataBlock
,
SArray
*
pOrderInfo
)
{
ASSERT
(
pDataBlock
!=
NULL
&&
pOrderInfo
!=
NULL
);
if
(
pDataBlock
->
info
.
rows
<=
1
)
{
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -1149,8 +1145,7 @@ void blockDataCleanup(SSDataBlock* pDataBlock) {
void
blockDataEmpty
(
SSDataBlock
*
pDataBlock
)
{
SDataBlockInfo
*
pInfo
=
&
pDataBlock
->
info
;
ASSERT
(
pInfo
->
rows
<=
pDataBlock
->
info
.
capacity
);
if
(
pInfo
->
capacity
==
0
)
{
if
(
pInfo
->
capacity
==
0
||
pInfo
->
rows
<=
pDataBlock
->
info
.
capacity
)
{
return
;
}
...
...
@@ -1168,8 +1163,7 @@ void blockDataEmpty(SSDataBlock* pDataBlock) {
// todo temporarily disable it
static
int32_t
doEnsureCapacity
(
SColumnInfoData
*
pColumn
,
const
SDataBlockInfo
*
pBlockInfo
,
uint32_t
numOfRows
,
bool
clearPayload
)
{
ASSERT
(
numOfRows
>
0
);
if
(
numOfRows
<=
pBlockInfo
->
capacity
)
{
if
(
numOfRows
<=
0
||
numOfRows
<=
pBlockInfo
->
capacity
)
{
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -1196,7 +1190,9 @@ static int32_t doEnsureCapacity(SColumnInfoData* pColumn, const SDataBlockInfo*
int32_t
oldLen
=
BitmapLen
(
existedRows
);
pColumn
->
nullbitmap
=
tmp
;
memset
(
&
pColumn
->
nullbitmap
[
oldLen
],
0
,
BitmapLen
(
numOfRows
)
-
oldLen
);
ASSERT
(
pColumn
->
info
.
bytes
);
if
(
pColumn
->
info
.
bytes
==
0
)
{
return
TSDB_CODE_FAILED
;
}
// make sure the allocated memory is MALLOC_ALIGN_BYTES aligned
tmp
=
taosMemoryMallocAlign
(
MALLOC_ALIGN_BYTES
,
numOfRows
*
pColumn
->
info
.
bytes
);
...
...
@@ -1214,7 +1210,9 @@ static int32_t doEnsureCapacity(SColumnInfoData* pColumn, const SDataBlockInfo*
// todo remove it soon
#if defined LINUX
ASSERT
((((
uint64_t
)
pColumn
->
pData
)
&
(
MALLOC_ALIGN_BYTES
-
1
))
==
0x0
);
if
((((
uint64_t
)
pColumn
->
pData
)
&
(
MALLOC_ALIGN_BYTES
-
1
))
!=
0x0
)
{
return
TSDB_CODE_FAILED
;
}
#endif
if
(
clearPayload
)
{
...
...
@@ -1308,8 +1306,6 @@ void* blockDataDestroy(SSDataBlock* pBlock) {
}
int32_t
assignOneDataBlock
(
SSDataBlock
*
dst
,
const
SSDataBlock
*
src
)
{
ASSERT
(
src
!=
NULL
);
dst
->
info
=
src
->
info
;
dst
->
info
.
rows
=
0
;
dst
->
info
.
capacity
=
0
;
...
...
@@ -1344,8 +1340,6 @@ int32_t assignOneDataBlock(SSDataBlock* dst, const SSDataBlock* src) {
}
int32_t
copyDataBlock
(
SSDataBlock
*
dst
,
const
SSDataBlock
*
src
)
{
ASSERT
(
src
!=
NULL
&&
dst
!=
NULL
);
blockDataCleanup
(
dst
);
int32_t
code
=
blockDataEnsureCapacity
(
dst
,
src
->
info
.
rows
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
...
...
@@ -1501,7 +1495,6 @@ SSDataBlock* createDataBlock() {
}
int32_t
blockDataAppendColInfo
(
SSDataBlock
*
pBlock
,
SColumnInfoData
*
pColInfoData
)
{
ASSERT
(
pBlock
!=
NULL
&&
pColInfoData
!=
NULL
);
if
(
pBlock
->
pDataBlock
==
NULL
)
{
pBlock
->
pDataBlock
=
taosArrayInit
(
4
,
sizeof
(
SColumnInfoData
));
if
(
pBlock
->
pDataBlock
==
NULL
)
{
...
...
@@ -1536,7 +1529,6 @@ SColumnInfoData createColumnInfoData(int16_t type, int32_t bytes, int16_t colId)
}
SColumnInfoData
*
bdGetColumnInfoData
(
const
SSDataBlock
*
pBlock
,
int32_t
index
)
{
ASSERT
(
pBlock
!=
NULL
);
if
(
index
>=
taosArrayGetSize
(
pBlock
->
pDataBlock
))
{
return
NULL
;
}
...
...
@@ -2142,7 +2134,6 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq** pReq, const SSDataBlock* pDataB
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_MEDIUMBLOB
:
uError
(
"the column type %"
PRIi16
" is defined but not implemented yet"
,
pColInfoData
->
info
.
type
);
ASSERT
(
0
);
break
;
default:
if
(
pColInfoData
->
info
.
type
<
TSDB_DATA_TYPE_MAX
&&
pColInfoData
->
info
.
type
>
TSDB_DATA_TYPE_NULL
)
{
...
...
@@ -2176,7 +2167,6 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq** pReq, const SSDataBlock* pDataB
}
}
else
{
uError
(
"the column type %"
PRIi16
" is undefined
\n
"
,
pColInfoData
->
info
.
type
);
ASSERT
(
0
);
}
break
;
}
...
...
@@ -2222,7 +2212,10 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq** pReq, const SSDataBlock* pDataB
}
char
*
buildCtbNameByGroupId
(
const
char
*
stbFullName
,
uint64_t
groupId
)
{
ASSERT
(
stbFullName
[
0
]
!=
0
);
if
(
stbFullName
[
0
]
==
0
)
{
return
NULL
;
}
SArray
*
tags
=
taosArrayInit
(
0
,
sizeof
(
void
*
));
if
(
tags
==
NULL
)
{
return
NULL
;
...
...
@@ -2260,7 +2253,9 @@ char* buildCtbNameByGroupId(const char* stbFullName, uint64_t groupId) {
taosMemoryFree
(
pTag
);
taosArrayDestroy
(
tags
);
ASSERT
(
rname
.
ctbShortName
&&
rname
.
ctbShortName
[
0
]);
if
((
rname
.
ctbShortName
&&
rname
.
ctbShortName
[
0
])
==
0
)
{
return
NULL
;
}
return
rname
.
ctbShortName
;
}
...
...
source/common/src/tname.c
浏览文件 @
4b819622
...
...
@@ -98,8 +98,6 @@ SName* toName(int32_t acctId, const char* pDbName, const char* pTableName, SName
}
int32_t
tNameExtractFullName
(
const
SName
*
name
,
char
*
dst
)
{
assert
(
name
!=
NULL
&&
dst
!=
NULL
);
// invalid full name format, abort
if
(
!
tNameIsValid
(
name
))
{
return
-
1
;
...
...
@@ -109,7 +107,7 @@ int32_t tNameExtractFullName(const SName* name, char* dst) {
size_t
tnameLen
=
strlen
(
name
->
tname
);
if
(
tnameLen
>
0
)
{
/*
assert
(name->type == TSDB_TABLE_NAME_T);*/
/*
ASSERT
(name->type == TSDB_TABLE_NAME_T);*/
dst
[
len
]
=
TS_PATH_DELIMITER
[
0
];
memcpy
(
dst
+
len
+
1
,
name
->
tname
,
tnameLen
);
...
...
@@ -120,25 +118,21 @@ int32_t tNameExtractFullName(const SName* name, char* dst) {
}
int32_t
tNameLen
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
);
char
tmp
[
12
]
=
{
0
};
int32_t
len
=
sprintf
(
tmp
,
"%d"
,
name
->
acctId
);
int32_t
len1
=
(
int32_t
)
strlen
(
name
->
dbname
);
int32_t
len2
=
(
int32_t
)
strlen
(
name
->
tname
);
if
(
name
->
type
==
TSDB_DB_NAME_T
)
{
assert
(
len2
==
0
);
ASSERT
(
len2
==
0
);
return
len
+
len1
+
TSDB_NAME_DELIMITER_LEN
;
}
else
{
assert
(
len2
>
0
);
ASSERT
(
len2
>
0
);
return
len
+
len1
+
len2
+
TSDB_NAME_DELIMITER_LEN
*
2
;
}
}
bool
tNameIsValid
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
);
if
(
!
VALID_NAME_TYPE
(
name
->
type
))
{
return
false
;
}
...
...
@@ -151,15 +145,12 @@ bool tNameIsValid(const SName* name) {
}
SName
*
tNameDup
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
);
SName
*
p
=
taosMemoryMalloc
(
sizeof
(
SName
));
memcpy
(
p
,
name
,
sizeof
(
SName
));
return
p
;
}
int32_t
tNameGetDbName
(
const
SName
*
name
,
char
*
dst
)
{
assert
(
name
!=
NULL
&&
dst
!=
NULL
);
strncpy
(
dst
,
name
->
dbname
,
tListLen
(
name
->
dbname
));
return
0
;
}
...
...
@@ -167,28 +158,24 @@ int32_t tNameGetDbName(const SName* name, char* dst) {
const
char
*
tNameGetDbNameP
(
const
SName
*
name
)
{
return
&
name
->
dbname
[
0
];
}
int32_t
tNameGetFullDbName
(
const
SName
*
name
,
char
*
dst
)
{
assert
(
name
!=
NULL
&&
dst
!=
NULL
);
snprintf
(
dst
,
TSDB_DB_FNAME_LEN
,
"%d.%s"
,
name
->
acctId
,
name
->
dbname
);
return
0
;
}
bool
tNameIsEmpty
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
);
return
name
->
type
==
0
||
name
->
acctId
==
0
;
}
const
char
*
tNameGetTableName
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
&&
name
->
type
==
TSDB_TABLE_NAME_T
);
ASSERT
(
name
!=
NULL
&&
name
->
type
==
TSDB_TABLE_NAME_T
);
return
&
name
->
tname
[
0
];
}
void
tNameAssign
(
SName
*
dst
,
const
SName
*
src
)
{
memcpy
(
dst
,
src
,
sizeof
(
SName
));
}
int32_t
tNameSetDbName
(
SName
*
dst
,
int32_t
acct
,
const
char
*
dbName
,
size_t
nameLen
)
{
assert
(
dst
!=
NULL
&&
dbName
!=
NULL
&&
nameLen
>
0
);
// too long account id or too long db name
if
(
nameLen
>=
tListLen
(
dst
->
dbname
))
{
if
(
nameLen
<=
0
||
nameLen
>=
tListLen
(
dst
->
dbname
))
{
return
-
1
;
}
...
...
@@ -199,8 +186,6 @@ int32_t tNameSetDbName(SName* dst, int32_t acct, const char* dbName, size_t name
}
int32_t
tNameAddTbName
(
SName
*
dst
,
const
char
*
tbName
,
size_t
nameLen
)
{
assert
(
dst
!=
NULL
&&
tbName
!=
NULL
&&
nameLen
>
0
);
// too long account id or too long db name
if
(
nameLen
>=
tListLen
(
dst
->
tname
)
||
nameLen
<=
0
)
{
return
-
1
;
...
...
@@ -212,7 +197,6 @@ int32_t tNameAddTbName(SName* dst, const char* tbName, size_t nameLen) {
}
int32_t
tNameSetAcctId
(
SName
*
dst
,
int32_t
acctId
)
{
assert
(
dst
!=
NULL
);
dst
->
acctId
=
acctId
;
return
0
;
}
...
...
@@ -247,7 +231,9 @@ bool tNameTbNameEqual(SName* left, SName* right) {
}
int32_t
tNameFromString
(
SName
*
dst
,
const
char
*
str
,
uint32_t
type
)
{
assert
(
dst
!=
NULL
&&
str
!=
NULL
&&
strlen
(
str
)
>
0
);
if
(
strlen
(
str
)
==
0
)
{
return
-
1
;
}
char
*
p
=
NULL
;
if
((
type
&
T_NAME_ACCT
)
==
T_NAME_ACCT
)
{
...
...
source/common/src/trow.c
浏览文件 @
4b819622
...
...
@@ -76,7 +76,6 @@ void tdSCellValPrint(SCellVal *pVal, int8_t colType) {
return
;
}
if
(
!
pVal
->
val
)
{
ASSERT
(
0
);
printf
(
"BadVal "
);
return
;
}
...
...
@@ -490,7 +489,6 @@ bool tdSTSRowGetVal(STSRowIter *pIter, col_id_t colId, col_type_t colType, SCell
int32_t
tdGetBitmapValTypeII
(
const
void
*
pBitmap
,
int16_t
colIdx
,
TDRowValT
*
pValType
)
{
if
(
!
pBitmap
||
colIdx
<
0
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -512,7 +510,6 @@ int32_t tdGetBitmapValTypeII(const void *pBitmap, int16_t colIdx, TDRowValT *pVa
*
pValType
=
((
*
pDestByte
)
&
0x03
);
break
;
default:
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -521,7 +518,6 @@ int32_t tdGetBitmapValTypeII(const void *pBitmap, int16_t colIdx, TDRowValT *pVa
int32_t
tdGetBitmapValTypeI
(
const
void
*
pBitmap
,
int16_t
colIdx
,
TDRowValT
*
pValType
)
{
if
(
!
pBitmap
||
colIdx
<
0
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -555,7 +551,6 @@ int32_t tdGetBitmapValTypeI(const void *pBitmap, int16_t colIdx, TDRowValT *pVal
*
pValType
=
((
*
pDestByte
)
&
0x01
);
break
;
default:
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -564,7 +559,6 @@ int32_t tdGetBitmapValTypeI(const void *pBitmap, int16_t colIdx, TDRowValT *pVal
int32_t
tdSetBitmapValTypeI
(
void
*
pBitmap
,
int16_t
colIdx
,
TDRowValT
valType
)
{
if
(
!
pBitmap
||
colIdx
<
0
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -607,7 +601,6 @@ int32_t tdSetBitmapValTypeI(void *pBitmap, int16_t colIdx, TDRowValT valType) {
// *pDestByte |= (valType);
break
;
default:
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -630,7 +623,6 @@ int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, void *pBitmap, int32_
output
->
val
=
POINTER_SHIFT
(
pRow
,
offset
);
}
#else
ASSERT
(
0
);
if
(
offset
<
0
)
{
terrno
=
TSDB_CODE_INVALID_PARA
;
output
->
valType
=
TD_VTYPE_NONE
;
...
...
@@ -680,7 +672,6 @@ int32_t tdAppendColValToRow(SRowBuilder *pBuilder, col_id_t colId, int8_t colTyp
return
terrno
;
}
#else
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
#endif
...
...
@@ -707,8 +698,8 @@ int32_t tdAppendColValToRow(SRowBuilder *pBuilder, col_id_t colId, int8_t colTyp
if
(
!
pBuilder
->
hasNone
)
pBuilder
->
hasNone
=
true
;
return
TSDB_CODE_SUCCESS
;
default:
ASSERT
(
0
)
;
break
;
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
if
(
TD_IS_TP_ROW
(
pRow
))
{
...
...
@@ -722,7 +713,6 @@ int32_t tdAppendColValToRow(SRowBuilder *pBuilder, col_id_t colId, int8_t colTyp
int32_t
tdAppendColValToKvRow
(
SRowBuilder
*
pBuilder
,
TDRowValT
valType
,
const
void
*
val
,
bool
isCopyVarData
,
int8_t
colType
,
int16_t
colIdx
,
int32_t
offset
,
col_id_t
colId
)
{
if
((
offset
<
(
int32_t
)
sizeof
(
SKvRowIdx
))
||
(
colIdx
<
1
))
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -810,7 +800,6 @@ int32_t tdSRowSetExtendedInfo(SRowBuilder *pBuilder, int32_t nCols, int32_t nBou
pBuilder
->
nCols
=
nCols
;
pBuilder
->
nBoundCols
=
nBoundCols
;
if
(
pBuilder
->
flen
<=
0
||
pBuilder
->
nCols
<=
0
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -832,7 +821,6 @@ int32_t tdSRowSetExtendedInfo(SRowBuilder *pBuilder, int32_t nCols, int32_t nBou
int32_t
tdSRowResetBuf
(
SRowBuilder
*
pBuilder
,
void
*
pBuf
)
{
pBuilder
->
pBuf
=
(
STSRow
*
)
pBuf
;
if
(
!
pBuilder
->
pBuf
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -869,7 +857,6 @@ int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) {
TD_ROW_SET_NCOLS
(
pBuilder
->
pBuf
,
pBuilder
->
nBoundCols
);
break
;
default:
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -880,7 +867,6 @@ int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) {
int32_t
tdSRowGetBuf
(
SRowBuilder
*
pBuilder
,
void
*
pBuf
)
{
pBuilder
->
pBuf
=
(
STSRow
*
)
pBuf
;
if
(
!
pBuilder
->
pBuf
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -900,7 +886,6 @@ int32_t tdSRowGetBuf(SRowBuilder *pBuilder, void *pBuf) {
#endif
break
;
default:
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -920,7 +905,6 @@ int32_t tdSRowSetTpInfo(SRowBuilder *pBuilder, int32_t nCols, int32_t flen) {
pBuilder
->
flen
=
flen
;
pBuilder
->
nCols
=
nCols
;
if
(
pBuilder
->
flen
<=
0
||
pBuilder
->
nCols
<=
0
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -939,7 +923,6 @@ int32_t tdSRowSetInfo(SRowBuilder *pBuilder, int32_t nCols, int32_t nBoundCols,
pBuilder
->
nCols
=
nCols
;
pBuilder
->
nBoundCols
=
nBoundCols
;
if
(
pBuilder
->
flen
<=
0
||
pBuilder
->
nCols
<=
0
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -968,7 +951,6 @@ int32_t tdGetBitmapValType(const void *pBitmap, int16_t colIdx, TDRowValT *pValT
tdGetBitmapValTypeI
(
pBitmap
,
colIdx
,
pValType
);
break
;
default:
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
TSDB_CODE_FAILED
;
}
...
...
@@ -987,7 +969,6 @@ bool tdIsBitmapValTypeNorm(const void *pBitmap, int16_t idx, int8_t bitmapMode)
int32_t
tdSetBitmapValTypeII
(
void
*
pBitmap
,
int16_t
colIdx
,
TDRowValT
valType
)
{
if
(
!
pBitmap
||
colIdx
<
0
)
{
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -1014,7 +995,6 @@ int32_t tdSetBitmapValTypeII(void *pBitmap, int16_t colIdx, TDRowValT valType) {
// *pDestByte |= (valType);
break
;
default:
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
terrno
;
}
...
...
@@ -1031,7 +1011,6 @@ int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TDRowValT valType, int
tdSetBitmapValTypeI
(
pBitmap
,
colIdx
,
valType
);
break
;
default:
ASSERT
(
0
);
terrno
=
TSDB_CODE_INVALID_PARA
;
return
TSDB_CODE_FAILED
;
}
...
...
source/common/src/ttime.c
浏览文件 @
4b819622
...
...
@@ -168,12 +168,13 @@ int64_t parseFraction(char* str, char** end, int32_t timePrec) {
i
=
MICRO_SEC_FRACTION_LEN
;
}
times
=
MICRO_SEC_FRACTION_LEN
-
i
;
}
else
{
assert
(
timePrec
==
TSDB_TIME_PRECISION_NANO
);
}
else
if
(
timePrec
==
TSDB_TIME_PRECISION_NANO
)
{
if
(
i
>=
NANO_SEC_FRACTION_LEN
)
{
i
=
NANO_SEC_FRACTION_LEN
;
}
times
=
NANO_SEC_FRACTION_LEN
-
i
;
}
else
{
return
-
1
;
}
fraction
=
strnatoi
(
str
,
i
)
*
factor
[
times
];
...
...
@@ -510,8 +511,11 @@ int64_t convertTimePrecision(int64_t utime, int32_t fromPrecision, int32_t toPre
// !!!!notice: double lose precison if time is too large, for example: 1626006833631000000*1.0 = double =
// 1626006833631000064
int64_t
convertTimeFromPrecisionToUnit
(
int64_t
time
,
int32_t
fromPrecision
,
char
toUnit
)
{
assert
(
fromPrecision
==
TSDB_TIME_PRECISION_MILLI
||
fromPrecision
==
TSDB_TIME_PRECISION_MICRO
||
fromPrecision
==
TSDB_TIME_PRECISION_NANO
);
if
(
fromPrecision
!=
TSDB_TIME_PRECISION_MILLI
&&
fromPrecision
!=
TSDB_TIME_PRECISION_MICRO
&&
fromPrecision
!=
TSDB_TIME_PRECISION_NANO
)
{
return
-
1
;
}
int64_t
factors
[
3
]
=
{
NANOSECOND_PER_MSEC
,
NANOSECOND_PER_USEC
,
1
};
double
tmp
=
time
;
switch
(
toUnit
)
{
...
...
@@ -761,8 +765,7 @@ int32_t taosTimeCountInterval(int64_t skey, int64_t ekey, int64_t interval, char
}
int64_t
taosTimeTruncate
(
int64_t
t
,
const
SInterval
*
pInterval
,
int32_t
precision
)
{
if
(
pInterval
->
sliding
==
0
)
{
assert
(
pInterval
->
interval
==
0
);
if
(
pInterval
->
sliding
==
0
&&
pInterval
->
interval
==
0
)
{
return
t
;
}
...
...
@@ -931,7 +934,7 @@ void taosFormatUtcTime(char* buf, int32_t bufLen, int64_t t, int32_t precision)
default:
fractionLen
=
0
;
assert
(
false
);
ASSERT
(
false
);
}
taosLocalTime
(
&
quot
,
&
ptm
);
...
...
source/common/src/ttszip.c
浏览文件 @
4b819622
...
...
@@ -17,6 +17,7 @@
#include "ttszip.h"
#include "taoserror.h"
#include "tcompression.h"
#include "tlog.h"
static
int32_t
getDataStartOffset
();
static
void
TSBufUpdateGroupInfo
(
STSBuf
*
pTSBuf
,
int32_t
index
,
STSGroupBlockInfo
*
pBlockInfo
);
...
...
@@ -202,14 +203,14 @@ void* tsBufDestroy(STSBuf* pTSBuf) {
static
STSGroupBlockInfoEx
*
tsBufGetLastGroupInfo
(
STSBuf
*
pTSBuf
)
{
int32_t
last
=
pTSBuf
->
numOfGroups
-
1
;
assert
(
last
>=
0
);
ASSERT
(
last
>=
0
);
return
&
pTSBuf
->
pData
[
last
];
}
static
STSGroupBlockInfoEx
*
addOneGroupInfo
(
STSBuf
*
pTSBuf
,
int32_t
id
)
{
if
(
pTSBuf
->
numOfAlloc
<=
pTSBuf
->
numOfGroups
)
{
uint32_t
newSize
=
(
uint32_t
)(
pTSBuf
->
numOfAlloc
*
1
.
5
);
assert
((
int32_t
)
newSize
>
pTSBuf
->
numOfAlloc
);
ASSERT
((
int32_t
)
newSize
>
pTSBuf
->
numOfAlloc
);
STSGroupBlockInfoEx
*
tmp
=
(
STSGroupBlockInfoEx
*
)
taosMemoryRealloc
(
pTSBuf
->
pData
,
sizeof
(
STSGroupBlockInfoEx
)
*
newSize
);
...
...
@@ -233,7 +234,7 @@ static STSGroupBlockInfoEx* addOneGroupInfo(STSBuf* pTSBuf, int32_t id) {
STSGroupBlockInfo
*
pBlockInfo
=
&
pTSBuf
->
pData
[
pTSBuf
->
numOfGroups
].
info
;
pBlockInfo
->
id
=
id
;
pBlockInfo
->
offset
=
pTSBuf
->
fileSize
;
assert
(
pBlockInfo
->
offset
>=
getDataStartOffset
());
ASSERT
(
pBlockInfo
->
offset
>=
getDataStartOffset
());
// update vnode info in file
TSBufUpdateGroupInfo
(
pTSBuf
,
pTSBuf
->
numOfGroups
,
pBlockInfo
);
...
...
@@ -282,7 +283,7 @@ static void writeDataToDisk(STSBuf* pTSBuf) {
pTsData
->
allocSize
,
TWO_STAGE_COMP
,
pTSBuf
->
assistBuf
,
pTSBuf
->
bufSize
);
int64_t
r
=
taosLSeekFile
(
pTSBuf
->
pFile
,
pTSBuf
->
fileSize
,
SEEK_SET
);
assert
(
r
==
0
);
ASSERT
(
r
==
0
);
/*
* format for output data:
...
...
@@ -316,7 +317,7 @@ static void writeDataToDisk(STSBuf* pTSBuf) {
taosWriteFile
(
pTSBuf
->
pFile
,
&
pBlock
->
compLen
,
sizeof
(
pBlock
->
compLen
));
metaLen
+=
(
int32_t
)
taosWriteFile
(
pTSBuf
->
pFile
,
&
trueLen
,
sizeof
(
pBlock
->
tag
.
nLen
));
assert
(
metaLen
==
getTagAreaLength
(
&
pBlock
->
tag
));
ASSERT
(
metaLen
==
getTagAreaLength
(
&
pBlock
->
tag
));
int32_t
blockSize
=
metaLen
+
sizeof
(
pBlock
->
numOfElem
)
+
sizeof
(
pBlock
->
compLen
)
*
2
+
pBlock
->
compLen
;
pTSBuf
->
fileSize
+=
blockSize
;
...
...
@@ -379,7 +380,7 @@ STSBlock* readDataFromDisk(STSBuf* pTSBuf, int32_t order, bool decomp) {
size_t
sz
=
0
;
if
(
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_BINARY
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_NCHAR
)
{
char
*
tp
=
taosMemoryRealloc
(
pBlock
->
tag
.
pz
,
pBlock
->
tag
.
nLen
+
1
);
assert
(
tp
!=
NULL
);
ASSERT
(
tp
!=
NULL
);
memset
(
tp
,
0
,
pBlock
->
tag
.
nLen
+
1
);
pBlock
->
tag
.
pz
=
tp
;
...
...
@@ -410,14 +411,14 @@ STSBlock* readDataFromDisk(STSBuf* pTSBuf, int32_t order, bool decomp) {
// read the comp length at the length of comp block
sz
=
taosReadFile
(
pTSBuf
->
pFile
,
&
pBlock
->
padding
,
sizeof
(
pBlock
->
padding
));
assert
(
pBlock
->
padding
==
pBlock
->
compLen
);
ASSERT
(
pBlock
->
padding
==
pBlock
->
compLen
);
int32_t
n
=
0
;
sz
=
taosReadFile
(
pTSBuf
->
pFile
,
&
n
,
sizeof
(
pBlock
->
tag
.
nLen
));
if
(
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_NULL
)
{
assert
(
n
==
0
);
ASSERT
(
n
==
0
);
}
else
{
assert
(
n
==
pBlock
->
tag
.
nLen
);
ASSERT
(
n
==
pBlock
->
tag
.
nLen
);
}
UNUSED
(
sz
);
...
...
@@ -477,7 +478,7 @@ void tsBufAppend(STSBuf* pTSBuf, int32_t id, SVariant* tag, const char* pData, i
pBlockInfo
=
tsBufGetLastGroupInfo
(
pTSBuf
);
}
assert
(
pBlockInfo
->
info
.
id
==
id
);
ASSERT
(
pBlockInfo
->
info
.
id
==
id
);
if
((
taosVariantCompare
(
&
pTSBuf
->
block
.
tag
,
tag
)
!=
0
)
&&
ptsData
->
len
>
0
)
{
// new arrived data with different tags value, save current value into disk first
...
...
@@ -596,7 +597,7 @@ static int32_t tsBufFindBlockByTag(STSBuf* pTSBuf, STSGroupBlockInfo* pBlockInfo
static
void
tsBufGetBlock
(
STSBuf
*
pTSBuf
,
int32_t
groupIndex
,
int32_t
blockIndex
)
{
STSGroupBlockInfo
*
pBlockInfo
=
&
pTSBuf
->
pData
[
groupIndex
].
info
;
if
(
pBlockInfo
->
numOfBlocks
<=
blockIndex
)
{
assert
(
false
);
ASSERT
(
false
);
}
STSCursor
*
pCur
=
&
pTSBuf
->
cur
;
...
...
@@ -613,7 +614,7 @@ static void tsBufGetBlock(STSBuf* pTSBuf, int32_t groupIndex, int32_t blockIndex
}
}
else
{
if
(
tsBufFindBlock
(
pTSBuf
,
pBlockInfo
,
blockIndex
)
==
-
1
)
{
assert
(
false
);
ASSERT
(
false
);
}
}
...
...
@@ -633,7 +634,7 @@ static void tsBufGetBlock(STSBuf* pTSBuf, int32_t groupIndex, int32_t blockIndex
tsDecompressTimestamp
(
pBlock
->
payload
,
pBlock
->
compLen
,
pBlock
->
numOfElem
,
pTSBuf
->
tsData
.
rawBuf
,
pTSBuf
->
tsData
.
allocSize
,
TWO_STAGE_COMP
,
pTSBuf
->
assistBuf
,
pTSBuf
->
bufSize
);
assert
((
pTSBuf
->
tsData
.
len
/
TSDB_KEYSIZE
==
pBlock
->
numOfElem
)
&&
(
pTSBuf
->
tsData
.
allocSize
>=
pTSBuf
->
tsData
.
len
));
ASSERT
((
pTSBuf
->
tsData
.
len
/
TSDB_KEYSIZE
==
pBlock
->
numOfElem
)
&&
(
pTSBuf
->
tsData
.
allocSize
>=
pTSBuf
->
tsData
.
len
));
pCur
->
vgroupIndex
=
groupIndex
;
pCur
->
blockIndex
=
blockIndex
;
...
...
@@ -668,7 +669,9 @@ int32_t STSBufUpdateHeader(STSBuf* pTSBuf, STSBufFileHeader* pHeader) {
return
-
1
;
}
assert
(
pHeader
->
tsOrder
==
TSDB_ORDER_ASC
||
pHeader
->
tsOrder
==
TSDB_ORDER_DESC
);
if
(
pHeader
->
tsOrder
!=
TSDB_ORDER_ASC
&&
pHeader
->
tsOrder
!=
TSDB_ORDER_DESC
)
{
return
-
1
;
}
int32_t
r
=
taosLSeekFile
(
pTSBuf
->
pFile
,
0
,
SEEK_SET
);
if
(
r
!=
0
)
{
...
...
@@ -705,7 +708,7 @@ bool tsBufNextPos(STSBuf* pTSBuf) {
}
}
else
{
// get the last timestamp record in the last block of the last vnode
assert
(
pTSBuf
->
numOfGroups
>
0
);
ASSERT
(
pTSBuf
->
numOfGroups
>
0
);
int32_t
groupIndex
=
pTSBuf
->
numOfGroups
-
1
;
pCur
->
vgroupIndex
=
groupIndex
;
...
...
@@ -729,7 +732,7 @@ bool tsBufNextPos(STSBuf* pTSBuf) {
int32_t
step
=
pCur
->
order
==
TSDB_ORDER_ASC
?
1
:
-
1
;
while
(
1
)
{
assert
(
pTSBuf
->
tsData
.
len
==
pTSBuf
->
block
.
numOfElem
*
TSDB_KEYSIZE
);
ASSERT
(
pTSBuf
->
tsData
.
len
==
pTSBuf
->
block
.
numOfElem
*
TSDB_KEYSIZE
);
if
((
pCur
->
order
==
TSDB_ORDER_ASC
&&
pCur
->
tsIndex
>=
pTSBuf
->
block
.
numOfElem
-
1
)
||
(
pCur
->
order
==
TSDB_ORDER_DESC
&&
pCur
->
tsIndex
<=
0
))
{
...
...
@@ -810,7 +813,7 @@ int32_t tsBufMerge(STSBuf* pDestBuf, const STSBuf* pSrcBuf) {
}
// src can only have one vnode index
assert
(
pSrcBuf
->
numOfGroups
==
1
);
ASSERT
(
pSrcBuf
->
numOfGroups
==
1
);
// there are data in buffer, flush to disk first
tsBufFlush
(
pDestBuf
);
...
...
@@ -853,7 +856,7 @@ int32_t tsBufMerge(STSBuf* pDestBuf, const STSBuf* pSrcBuf) {
}
int32_t
r
=
taosLSeekFile
(
pDestBuf
->
pFile
,
0
,
SEEK_END
);
assert
(
r
==
0
);
ASSERT
(
r
==
0
);
int64_t
offset
=
getDataStartOffset
();
int32_t
size
=
(
int32_t
)
pSrcBuf
->
fileSize
-
(
int32_t
)
offset
;
...
...
@@ -881,7 +884,7 @@ int32_t tsBufMerge(STSBuf* pDestBuf, const STSBuf* pSrcBuf) {
}
pDestBuf
->
fileSize
=
(
uint32_t
)
file_size
;
assert
(
pDestBuf
->
fileSize
==
oldSize
+
size
);
ASSERT
(
pDestBuf
->
fileSize
==
oldSize
+
size
);
return
0
;
}
...
...
@@ -913,7 +916,10 @@ STSBuf* tsBufCreateFromCompBlocks(const char* pData, int32_t numOfBlocks, int32_
pTSBuf
->
fileSize
+=
len
;
pTSBuf
->
tsOrder
=
order
;
assert
(
order
==
TSDB_ORDER_ASC
||
order
==
TSDB_ORDER_DESC
);
if
(
order
!=
TSDB_ORDER_ASC
&&
order
!=
TSDB_ORDER_DESC
)
{
tsBufDestroy
(
pTSBuf
);
return
NULL
;
}
STSBufFileHeader
header
=
{
.
magic
=
TS_COMP_FILE_MAGIC
,
.
numOfGroup
=
pTSBuf
->
numOfGroups
,
.
tsOrder
=
pTSBuf
->
tsOrder
};
...
...
@@ -1095,7 +1101,7 @@ void tsBufGetGroupIdList(STSBuf* pTSBuf, int32_t* num, int32_t** id) {
}
int32_t
dumpFileBlockByGroupId
(
STSBuf
*
pTSBuf
,
int32_t
groupIndex
,
void
*
buf
,
int32_t
*
len
,
int32_t
*
numOfBlocks
)
{
assert
(
groupIndex
>=
0
&&
groupIndex
<
pTSBuf
->
numOfGroups
);
ASSERT
(
groupIndex
>=
0
&&
groupIndex
<
pTSBuf
->
numOfGroups
);
STSGroupBlockInfo
*
pBlockInfo
=
&
pTSBuf
->
pData
[
groupIndex
].
info
;
*
len
=
0
;
...
...
source/common/src/ttypes.c
浏览文件 @
4b819622
...
...
@@ -137,7 +137,7 @@ void assignVal(char *val, const char *src, int32_t len, int32_t type) {
}
}
void
operateVal
(
void
*
dst
,
void
*
s1
,
void
*
s2
,
int32_t
optr
,
int32_t
type
)
{
int32_t
operateVal
(
void
*
dst
,
void
*
s1
,
void
*
s2
,
int32_t
optr
,
int32_t
type
)
{
if
(
optr
==
OP_TYPE_ADD
)
{
switch
(
type
)
{
case
TSDB_DATA_TYPE_TINYINT
:
...
...
@@ -174,11 +174,12 @@ void operateVal(void *dst, void *s1, void *s2, int32_t optr, int32_t type) {
SET_DOUBLE_VAL
(
dst
,
GET_DOUBLE_VAL
(
s1
)
+
GET_DOUBLE_VAL
(
s2
));
break
;
default:
{
assert
(
0
);
break
;
return
-
1
;
}
}
}
else
{
assert
(
0
)
;
return
-
1
;
}
return
0
;
}
source/common/src/tvariant.c
浏览文件 @
4b819622
...
...
@@ -168,7 +168,7 @@ void taosVariantAssign(SVariant *pDst, const SVariant *pSrc) {
pSrc
->
nType
==
TSDB_DATA_TYPE_JSON
)
{
int32_t
len
=
pSrc
->
nLen
+
TSDB_NCHAR_SIZE
;
char
*
p
=
taosMemoryRealloc
(
pDst
->
pz
,
len
);
assert
(
p
);
ASSERT
(
p
);
memset
(
p
,
0
,
len
);
pDst
->
pz
=
p
;
...
...
@@ -192,7 +192,7 @@ void taosVariantAssign(SVariant *pDst, const SVariant *pSrc) {
size_t
num
=
taosArrayGetSize
(
pSrc
->
arr
);
pDst
->
arr
=
taosArrayInit
(
num
,
sizeof
(
int64_t
));
pDst
->
nLen
=
pSrc
->
nLen
;
assert
(
pSrc
->
nLen
==
num
);
ASSERT
(
pSrc
->
nLen
==
num
);
for
(
size_t
i
=
0
;
i
<
num
;
i
++
)
{
int64_t
*
p
=
taosArrayGet
(
pSrc
->
arr
,
i
);
taosArrayPush
(
pDst
->
arr
,
p
);
...
...
source/libs/scalar/src/filter.c
浏览文件 @
4b819622
...
...
@@ -776,7 +776,10 @@ int32_t filterFinishRange(void *h) {
while
(
r
&&
r
->
next
)
{
int64_t
tmp
=
1
;
operateVal
(
&
tmp
,
&
r
->
ra
.
e
,
&
tmp
,
OP_TYPE_ADD
,
ctx
->
type
);
int32_t
code
=
operateVal
(
&
tmp
,
&
r
->
ra
.
e
,
&
tmp
,
OP_TYPE_ADD
,
ctx
->
type
);
if
(
code
!=
0
)
{
return
TSDB_CODE_APP_ERROR
;
}
if
(
ctx
->
pCompareFunc
(
&
tmp
,
&
r
->
next
->
ra
.
s
)
==
0
)
{
rn
=
r
->
next
;
SIMPLE_COPY_VALUES
((
char
*
)
&
r
->
next
->
ra
.
s
,
(
char
*
)
&
r
->
ra
.
s
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录