Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5dc9d977
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5dc9d977
编写于
2月 28, 2022
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feature/qnode
上级
454ef8df
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
129 addition
and
20 deletion
+129
-20
source/libs/nodes/src/nodesTraverseFuncs.c
source/libs/nodes/src/nodesTraverseFuncs.c
+3
-0
source/libs/nodes/src/nodesUtilFuncs.c
source/libs/nodes/src/nodesUtilFuncs.c
+28
-9
source/libs/scalar/src/scalar.c
source/libs/scalar/src/scalar.c
+41
-10
source/libs/scalar/src/sclvector.c
source/libs/scalar/src/sclvector.c
+3
-0
source/libs/scalar/test/scalar/scalarTests.cpp
source/libs/scalar/test/scalar/scalarTests.cpp
+54
-1
未找到文件。
source/libs/nodes/src/nodesTraverseFuncs.c
浏览文件 @
5dc9d977
...
...
@@ -231,6 +231,9 @@ static EDealRes rewriteNode(SNode** pRawNode, ETraversalOrder order, FNodeRewrit
case
QUERY_NODE_RAW_EXPR
:
res
=
rewriteNode
(
&
(((
SRawExprNode
*
)
pNode
)
->
pNode
),
order
,
rewriter
,
pContext
);
break
;
case
QUERY_NODE_TARGET
:
res
=
rewriteNode
(
&
(((
STargetNode
*
)
pNode
)
->
pExpr
),
order
,
rewriter
,
pContext
);
break
;
default:
break
;
}
...
...
source/libs/nodes/src/nodesUtilFuncs.c
浏览文件 @
5dc9d977
...
...
@@ -101,20 +101,39 @@ SNode* nodesMakeNode(ENodeType type) {
return
NULL
;
}
static
EDealRes
destroyNode
(
SNode
*
pNode
,
void
*
pContext
)
{
switch
(
nodeType
(
pNode
))
{
case
QUERY_NODE_VALUE
:
tfree
(((
SValueNode
*
)
pNode
)
->
literal
);
static
EDealRes
destroyNode
(
SNode
**
pNode
,
void
*
pContext
)
{
switch
(
nodeType
(
*
pNode
))
{
case
QUERY_NODE_VALUE
:
{
SValueNode
*
pValue
=
(
SValueNode
*
)
*
pNode
;
tfree
(
pValue
->
literal
);
if
(
IS_VAR_DATA_TYPE
(
pValue
->
node
.
resType
.
type
))
{
tfree
(
pValue
->
datum
.
p
);
}
break
;
}
case
QUERY_NODE_LOGIC_CONDITION
:
nodesDestroyList
(((
SLogicConditionNode
*
)(
*
pNode
))
->
pParameterList
);
break
;
case
QUERY_NODE_FUNCTION
:
nodesDestroyList
(((
SFunctionNode
*
)(
*
pNode
))
->
pParameterList
);
break
;
case
QUERY_NODE_GROUPING_SET
:
nodesDestroyList
(((
SGroupingSetNode
*
)(
*
pNode
))
->
pParameterList
);
break
;
case
QUERY_NODE_NODE_LIST
:
nodesDestroyList
(((
SNodeListNode
*
)(
*
pNode
))
->
pNodeList
);
break
;
default:
break
;
}
tfree
(
pNode
);
tfree
(
*
pNode
);
return
DEAL_RES_CONTINUE
;
}
void
nodesDestroyNode
(
SNode
*
pNode
)
{
nodes
WalkNodePostOrder
(
pNode
,
destroyNode
,
NULL
);
nodes
RewriteNodePostOrder
(
&
pNode
,
destroyNode
,
NULL
);
}
SNodeList
*
nodesMakeList
()
{
...
...
@@ -191,9 +210,9 @@ SNode* nodesListGetNode(SNodeList* pList, int32_t index) {
}
void
nodesDestroyList
(
SNodeList
*
pList
)
{
S
Node
*
node
;
FOREACH
(
node
,
pLis
t
)
{
nodesDestroyNode
(
node
);
S
ListCell
*
pNext
=
pList
->
pHead
;
while
(
NULL
!=
pNex
t
)
{
pNext
=
nodesListErase
(
pList
,
pNext
);
}
tfree
(
pList
);
}
...
...
source/libs/scalar/src/scalar.c
浏览文件 @
5dc9d977
...
...
@@ -125,8 +125,13 @@ void sclFreeRes(SHashObj *res) {
taosHashCleanup
(
res
);
}
void
sclFreeParam
(
SScalarParam
*
param
)
{
void
sclFreeParam
NoData
(
SScalarParam
*
param
)
{
tfree
(
param
->
bitmap
);
}
void
sclFreeParam
(
SScalarParam
*
param
)
{
sclFreeParamNoData
(
param
);
if
(
!
param
->
dataInBlock
)
{
if
(
SCL_DATA_TYPE_DUMMY_HASH
==
param
->
type
)
{
...
...
@@ -137,10 +142,28 @@ void sclFreeParam(SScalarParam *param) {
}
}
int32_t
sclCopyValueNodeValue
(
SValueNode
*
pNode
,
void
**
res
)
{
if
(
TSDB_DATA_TYPE_NULL
==
pNode
->
node
.
resType
.
type
)
{
return
TSDB_CODE_SUCCESS
;
}
*
res
=
malloc
(
pNode
->
node
.
resType
.
bytes
);
if
(
NULL
==
(
*
res
))
{
sclError
(
"malloc %d failed"
,
pNode
->
node
.
resType
.
bytes
);
SCL_ERR_RET
(
TSDB_CODE_QRY_OUT_OF_MEMORY
);
}
memcpy
(
*
res
,
nodesGetValueFromNode
(
pNode
),
pNode
->
node
.
resType
.
bytes
);
return
TSDB_CODE_SUCCESS
;
}
int32_t
sclInitParam
(
SNode
*
node
,
SScalarParam
*
param
,
SScalarCtx
*
ctx
,
int32_t
*
rowNum
)
{
switch
(
nodeType
(
node
))
{
case
QUERY_NODE_VALUE
:
{
SValueNode
*
valueNode
=
(
SValueNode
*
)
node
;
//SCL_ERR_RET(sclCopyValueNodeValue(valueNode, ¶m->data));
param
->
data
=
nodesGetValueFromNode
(
valueNode
);
param
->
orig
.
data
=
param
->
data
;
param
->
num
=
1
;
...
...
@@ -172,7 +195,6 @@ int32_t sclInitParam(SNode* node, SScalarParam *param, SScalarCtx *ctx, int32_t
sclError
(
"taosHashPut nodeList failed, size:%d"
,
(
int32_t
)
sizeof
(
*
param
));
return
TSDB_CODE_QRY_OUT_OF_MEMORY
;
}
break
;
}
case
QUERY_NODE_COLUMN
:
{
...
...
@@ -353,11 +375,14 @@ int32_t sclExecFuncion(SFunctionNode *node, SScalarCtx *ctx, SScalarParam *outpu
}
}
return
TSDB_CODE_SUCCESS
;
_return:
for
(
int32_t
i
=
0
;
i
<
node
->
pParameterList
->
length
;
++
i
)
{
sclFreeParamNoData
(
params
+
i
);
}
tfree
(
params
);
SCL_RET
(
code
);
}
...
...
@@ -415,10 +440,12 @@ int32_t sclExecLogic(SLogicConditionNode *node, SScalarCtx *ctx, SScalarParam *o
*
(
bool
*
)
output
->
data
=
value
;
}
return
TSDB_CODE_SUCCESS
;
_return:
for
(
int32_t
i
=
0
;
i
<
node
->
pParameterList
->
length
;
++
i
)
{
sclFreeParamNoData
(
params
+
i
);
}
tfree
(
params
);
SCL_RET
(
code
);
}
...
...
@@ -448,11 +475,15 @@ int32_t sclExecOperator(SOperatorNode *node, SScalarCtx *ctx, SScalarParam *outp
OperatorFn
(
pLeft
,
pRight
,
output
,
TSDB_ORDER_ASC
);
return
TSDB_CODE_SUCCESS
;
_return:
for
(
int32_t
i
=
0
;
i
<
paramNum
;
++
i
)
{
sclFreeParamNoData
(
params
+
i
);
}
tfree
(
params
);
SCL_RET
(
code
);
}
...
...
@@ -665,8 +696,6 @@ EDealRes sclWalkTarget(SNode* pNode, SScalarCtx *ctx) {
return
DEAL_RES_ERROR
;
}
taosHashRemove
(
ctx
->
pRes
,
(
void
*
)
&
target
->
pExpr
,
POINTER_BYTES
);
for
(
int32_t
i
=
0
;
i
<
res
->
num
;
++
i
)
{
sclMoveParamListData
(
res
,
1
,
i
);
...
...
@@ -675,6 +704,8 @@ EDealRes sclWalkTarget(SNode* pNode, SScalarCtx *ctx) {
sclFreeParam
(
res
);
taosHashRemove
(
ctx
->
pRes
,
(
void
*
)
&
target
->
pExpr
,
POINTER_BYTES
);
return
DEAL_RES_CONTINUE
;
}
...
...
source/libs/scalar/src/sclvector.c
浏览文件 @
5dc9d977
...
...
@@ -1474,6 +1474,9 @@ void vectorCompare(SScalarParam* pLeft, SScalarParam* pRight, SScalarParam *pOut
}
vectorCompareImpl
(
param1
,
param2
,
pOut
,
_ord
,
optr
);
sclFreeParam
(
&
pLeftOut
);
sclFreeParam
(
&
pRightOut
);
}
void
vectorGreater
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
_ord
)
{
...
...
source/libs/scalar/test/scalar/scalarTests.cpp
浏览文件 @
5dc9d977
...
...
@@ -44,6 +44,10 @@ namespace {
int64_t
scltLeftV
=
21
,
scltRightV
=
10
;
double
scltLeftVd
=
21.0
,
scltRightVd
=
10.0
;
void
scltFreeDataBlock
(
void
*
block
)
{
blockDataDestroy
(
*
(
SSDataBlock
**
)
block
);
}
void
scltInitLogFile
()
{
const
char
*
defaultLogFileNamePrefix
=
"taoslog"
;
const
int32_t
maxLogFileNum
=
10
;
...
...
@@ -96,7 +100,7 @@ void scltMakeValueNode(SNode **pNode, int32_t dataType, void *value) {
if
(
IS_VAR_DATA_TYPE
(
dataType
))
{
vnode
->
datum
.
p
=
(
char
*
)
malloc
(
varDataTLen
(
value
));
varDataCopy
(
vnode
->
datum
.
p
,
value
);
vnode
->
node
.
resType
.
bytes
=
varDataLen
(
value
);
vnode
->
node
.
resType
.
bytes
=
varData
T
Len
(
value
);
}
else
{
vnode
->
node
.
resType
.
bytes
=
tDataTypes
[
dataType
].
bytes
;
assignVal
((
char
*
)
nodesGetValueFromNode
(
vnode
),
(
const
char
*
)
value
,
0
,
dataType
);
...
...
@@ -250,6 +254,7 @@ TEST(constantTest, bigint_add_bigint) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_DOUBLE
);
ASSERT_EQ
(
v
->
datum
.
d
,
(
scltLeftV
+
scltRightV
));
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
double_sub_bigint
)
{
...
...
@@ -265,6 +270,7 @@ TEST(constantTest, double_sub_bigint) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_DOUBLE
);
ASSERT_EQ
(
v
->
datum
.
d
,
(
scltLeftVd
-
scltRightV
));
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
tinyint_and_smallint
)
{
...
...
@@ -280,6 +286,7 @@ TEST(constantTest, tinyint_and_smallint) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BIGINT
);
ASSERT_EQ
(
v
->
datum
.
i
,
(
int64_t
)
scltLeftV
&
(
int64_t
)
scltRightV
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
bigint_or_double
)
{
...
...
@@ -295,6 +302,7 @@ TEST(constantTest, bigint_or_double) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BIGINT
);
ASSERT_EQ
(
v
->
datum
.
i
,
(
int64_t
)
scltLeftV
|
(
int64_t
)
scltRightVd
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_or_binary
)
{
...
...
@@ -313,6 +321,7 @@ TEST(constantTest, int_or_binary) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BIGINT
);
ASSERT_EQ
(
v
->
datum
.
b
,
scltLeftV
|
scltRightV
);
nodesDestroyNode
(
res
);
}
...
...
@@ -329,6 +338,7 @@ TEST(constantTest, int_greater_double) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
scltLeftV
>
scltRightVd
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_greater_equal_binary
)
{
...
...
@@ -347,6 +357,7 @@ TEST(constantTest, int_greater_equal_binary) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
scltLeftV
>
scltRightVd
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
tinyint_lower_ubigint
)
{
...
...
@@ -362,6 +373,7 @@ TEST(constantTest, tinyint_lower_ubigint) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
scltLeftV
<
scltRightV
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
usmallint_lower_equal_ubigint
)
{
...
...
@@ -378,6 +390,7 @@ TEST(constantTest, usmallint_lower_equal_ubigint) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
leftv
<=
rightv
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_equal_smallint1
)
{
...
...
@@ -394,6 +407,7 @@ TEST(constantTest, int_equal_smallint1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
leftv
==
rightv
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_equal_smallint2
)
{
...
...
@@ -410,6 +424,7 @@ TEST(constantTest, int_equal_smallint2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
leftv
==
rightv
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_not_equal_smallint1
)
{
...
...
@@ -426,6 +441,7 @@ TEST(constantTest, int_not_equal_smallint1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
leftv
!=
rightv
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_not_equal_smallint2
)
{
...
...
@@ -442,6 +458,7 @@ TEST(constantTest, int_not_equal_smallint2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
leftv
!=
rightv
);
nodesDestroyNode
(
res
);
}
...
...
@@ -469,6 +486,7 @@ TEST(constantTest, int_in_smallint1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_in_smallint2
)
{
...
...
@@ -494,6 +512,7 @@ TEST(constantTest, int_in_smallint2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_not_in_smallint1
)
{
...
...
@@ -517,6 +536,7 @@ TEST(constantTest, int_not_in_smallint1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_not_in_smallint2
)
{
...
...
@@ -542,6 +562,7 @@ TEST(constantTest, int_not_in_smallint2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
binary_like_binary1
)
{
...
...
@@ -562,6 +583,7 @@ TEST(constantTest, binary_like_binary1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
binary_like_binary2
)
{
...
...
@@ -582,6 +604,7 @@ TEST(constantTest, binary_like_binary2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
binary_not_like_binary1
)
{
...
...
@@ -602,6 +625,7 @@ TEST(constantTest, binary_not_like_binary1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
binary_not_like_binary2
)
{
...
...
@@ -622,6 +646,7 @@ TEST(constantTest, binary_not_like_binary2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
binary_match_binary1
)
{
...
...
@@ -642,6 +667,7 @@ TEST(constantTest, binary_match_binary1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
binary_match_binary2
)
{
...
...
@@ -662,6 +688,7 @@ TEST(constantTest, binary_match_binary2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
binary_not_match_binary1
)
{
...
...
@@ -682,6 +709,7 @@ TEST(constantTest, binary_not_match_binary1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
binary_not_match_binary2
)
{
...
...
@@ -702,6 +730,7 @@ TEST(constantTest, binary_not_match_binary2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_is_null1
)
{
...
...
@@ -717,6 +746,7 @@ TEST(constantTest, int_is_null1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_is_null2
)
{
...
...
@@ -732,6 +762,7 @@ TEST(constantTest, int_is_null2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_is_not_null1
)
{
...
...
@@ -747,6 +778,7 @@ TEST(constantTest, int_is_not_null1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_is_not_null2
)
{
...
...
@@ -762,6 +794,7 @@ TEST(constantTest, int_is_not_null2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_add_int_is_true1
)
{
...
...
@@ -779,6 +812,7 @@ TEST(constantTest, int_add_int_is_true1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_add_int_is_true2
)
{
...
...
@@ -796,6 +830,7 @@ TEST(constantTest, int_add_int_is_true2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
...
...
@@ -814,6 +849,7 @@ TEST(constantTest, int_greater_int_is_true1) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
false
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
int_greater_int_is_true2
)
{
...
...
@@ -831,6 +867,7 @@ TEST(constantTest, int_greater_int_is_true2) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
TEST
(
constantTest
,
greater_and_lower
)
{
...
...
@@ -855,6 +892,7 @@ TEST(constantTest, greater_and_lower) {
SValueNode
*
v
=
(
SValueNode
*
)
res
;
ASSERT_EQ
(
v
->
node
.
resType
.
type
,
TSDB_DATA_TYPE_BOOL
);
ASSERT_EQ
(
v
->
datum
.
b
,
true
);
nodesDestroyNode
(
res
);
}
...
...
@@ -890,6 +928,8 @@ TEST(columnTest, smallint_value_add_int_column) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
double
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
bigint_column_multi_binary_column
)
{
...
...
@@ -927,6 +967,7 @@ TEST(columnTest, bigint_column_multi_binary_column) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
double
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
smallint_column_and_binary_column
)
{
...
...
@@ -963,6 +1004,7 @@ TEST(columnTest, smallint_column_and_binary_column) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
int64_t
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
smallint_column_or_float_column
)
{
...
...
@@ -994,6 +1036,7 @@ TEST(columnTest, smallint_column_or_float_column) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
int64_t
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
smallint_column_or_double_value
)
{
...
...
@@ -1025,6 +1068,7 @@ TEST(columnTest, smallint_column_or_double_value) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
int64_t
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
smallint_column_greater_double_value
)
{
...
...
@@ -1056,6 +1100,7 @@ TEST(columnTest, smallint_column_greater_double_value) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
bool
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
int_column_in_double_list
)
{
...
...
@@ -1094,6 +1139,7 @@ TEST(columnTest, int_column_in_double_list) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
bool
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
binary_column_in_binary_list
)
{
...
...
@@ -1151,6 +1197,7 @@ TEST(columnTest, binary_column_in_binary_list) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
bool
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
binary_column_like_binary
)
{
...
...
@@ -1193,6 +1240,8 @@ TEST(columnTest, binary_column_like_binary) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
bool
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
...
...
@@ -1232,6 +1281,7 @@ TEST(columnTest, binary_column_is_true) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
bool
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
binary_column_is_null
)
{
...
...
@@ -1274,6 +1324,7 @@ TEST(columnTest, binary_column_is_null) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
bool
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
binary_column_is_not_null
)
{
...
...
@@ -1315,6 +1366,7 @@ TEST(columnTest, binary_column_is_not_null) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
bool
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
TEST
(
columnTest
,
greater_and_lower
)
{
...
...
@@ -1355,6 +1407,7 @@ TEST(columnTest, greater_and_lower) {
for
(
int32_t
i
=
0
;
i
<
rowNum
;
++
i
)
{
ASSERT_EQ
(
*
((
bool
*
)
colDataGet
(
column
,
i
)),
eRes
[
i
]);
}
taosArrayDestroyEx
(
blockList
,
scltFreeDataBlock
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录