Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
8a210c46
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看板
提交
8a210c46
编写于
11月 26, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/fix/TD-20677' into fix/TD-20050_2
上级
c8904695
e2e472d8
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
147 addition
and
136 deletion
+147
-136
docs/zh/20-third-party/01-grafana.mdx
docs/zh/20-third-party/01-grafana.mdx
+1
-1
source/libs/function/src/builtinsimpl.c
source/libs/function/src/builtinsimpl.c
+2
-1
source/libs/index/src/indexFilter.c
source/libs/index/src/indexFilter.c
+9
-3
source/libs/scalar/src/scalar.c
source/libs/scalar/src/scalar.c
+6
-4
source/libs/scalar/src/sclvector.c
source/libs/scalar/src/sclvector.c
+105
-101
source/libs/transport/src/transSvr.c
source/libs/transport/src/transSvr.c
+1
-3
tests/parallel_test/cases.task
tests/parallel_test/cases.task
+23
-23
未找到文件。
docs/zh/20-third-party/01-grafana.mdx
浏览文件 @
8a210c46
...
...
@@ -77,7 +77,7 @@ sudo -u grafana grafana-cli plugins install tdengine-datasource
或者从 [GitHub](https://github.com/taosdata/grafanaplugin/releases/tag/latest) 或 [Grafana](https://grafana.com/grafana/plugins/tdengine-datasource/?tab=installation) 下载 .zip 文件到本地并解压到 Grafana 插件目录。命令行下载示例如下:
```bash
GF_VERSION=3.2.
2
GF_VERSION=3.2.
7
# from GitHub
wget https://github.com/taosdata/grafanaplugin/releases/download/v$GF_VERSION/tdengine-datasource-$GF_VERSION.zip
# from Grafana
...
...
source/libs/function/src/builtinsimpl.c
浏览文件 @
8a210c46
...
...
@@ -3376,7 +3376,8 @@ int32_t lastRowFunction(SqlFunctionCtx* pCtx) {
int64_t
*
pts
=
(
int64_t
*
)
pInput
->
pPTS
->
pData
;
for
(
int32_t
i
=
pInput
->
startRowIndex
;
i
<
pInput
->
numOfRows
+
pInput
->
startRowIndex
;
++
i
)
{
char
*
data
=
colDataGetData
(
pInputCol
,
i
);
bool
isNull
=
colDataIsNull
(
pInputCol
,
pInput
->
numOfRows
,
i
,
NULL
);
char
*
data
=
isNull
?
NULL
:
colDataGetData
(
pInputCol
,
i
);
TSKEY
cts
=
pts
[
i
];
numOfElems
++
;
...
...
source/libs/index/src/indexFilter.c
浏览文件 @
8a210c46
...
...
@@ -699,8 +699,8 @@ static int32_t sifExecLogic(SLogicConditionNode *node, SIFCtx *ctx, SIFParam *ou
}
else
{
for
(
int32_t
m
=
0
;
m
<
node
->
pParameterList
->
length
;
m
++
)
{
output
->
status
=
sifMergeCond
(
node
->
condType
,
output
->
status
,
params
[
m
].
status
);
taosArrayDestroy
(
params
[
m
].
result
);
params
[
m
].
result
=
NULL
;
//
taosArrayDestroy(params[m].result);
//
params[m].result = NULL;
}
}
_return:
...
...
@@ -857,9 +857,15 @@ static int32_t sifGetFltHint(SNode *pNode, SIdxFltStatus *status) {
SIF_ERR_RET
(
TSDB_CODE_QRY_APP_ERROR
);
}
*
status
=
res
->
status
;
sifFreeParam
(
res
);
taosHashRemove
(
ctx
.
pRes
,
(
void
*
)
&
pNode
,
POINTER_BYTES
);
void
*
iter
=
taosHashIterate
(
ctx
.
pRes
,
NULL
);
while
(
iter
!=
NULL
)
{
SIFParam
*
data
=
(
SIFParam
*
)
iter
;
sifFreeParam
(
data
);
iter
=
taosHashIterate
(
ctx
.
pRes
,
iter
);
}
taosHashCleanup
(
ctx
.
pRes
);
return
code
;
}
...
...
source/libs/scalar/src/scalar.c
浏览文件 @
8a210c46
...
...
@@ -603,7 +603,7 @@ int32_t sclWalkCaseWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell
bool
*
equal
=
(
bool
*
)
colDataGetData
(
pComp
->
columnData
,
rowIdx
);
if
(
*
equal
)
{
bool
isNull
=
colDataIsNull_s
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
bool
isNull
=
colDataIsNull_s
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
char
*
pData
=
isNull
?
NULL
:
colDataGetData
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
colDataAppend
(
output
->
columnData
,
rowIdx
,
pData
,
isNull
);
...
...
@@ -617,7 +617,7 @@ int32_t sclWalkCaseWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell
}
if
(
pElse
)
{
bool
isNull
=
colDataIsNull_s
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
bool
isNull
=
colDataIsNull_s
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
char
*
pData
=
isNull
?
NULL
:
colDataGetData
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
colDataAppend
(
output
->
columnData
,
rowIdx
,
pData
,
isNull
);
...
...
@@ -666,7 +666,7 @@ int32_t sclWalkWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell *pCe
bool
*
whenValue
=
(
bool
*
)
colDataGetData
(
pWhen
->
columnData
,
(
pWhen
->
numOfRows
>
1
?
rowIdx
:
0
));
if
(
*
whenValue
)
{
bool
isNull
=
colDataIsNull_s
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
bool
isNull
=
colDataIsNull_s
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
char
*
pData
=
isNull
?
NULL
:
colDataGetData
(
pThen
->
columnData
,
(
pThen
->
numOfRows
>
1
?
rowIdx
:
0
));
colDataAppend
(
output
->
columnData
,
rowIdx
,
pData
,
isNull
);
...
...
@@ -685,7 +685,7 @@ int32_t sclWalkWhenList(SScalarCtx *ctx, SNodeList *pList, struct SListCell *pCe
}
if
(
pElse
)
{
bool
isNull
=
colDataIsNull_s
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
bool
isNull
=
colDataIsNull_s
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
char
*
pData
=
isNull
?
NULL
:
colDataGetData
(
pElse
->
columnData
,
(
pElse
->
numOfRows
>
1
?
rowIdx
:
0
));
colDataAppend
(
output
->
columnData
,
rowIdx
,
pData
,
isNull
);
...
...
@@ -1210,6 +1210,7 @@ EDealRes sclRewriteOperator(SNode **pNode, SScalarCtx *ctx) {
SScalarParam
output
=
{
0
};
ctx
->
code
=
sclExecOperator
(
node
,
ctx
,
&
output
);
if
(
ctx
->
code
)
{
sclFreeParam
(
&
output
);
return
DEAL_RES_ERROR
;
}
...
...
@@ -1358,6 +1359,7 @@ EDealRes sclWalkOperator(SNode *pNode, SScalarCtx *ctx) {
ctx
->
code
=
sclExecOperator
(
node
,
ctx
,
&
output
);
if
(
ctx
->
code
)
{
sclFreeParam
(
&
output
);
return
DEAL_RES_ERROR
;
}
...
...
source/libs/scalar/src/sclvector.c
浏览文件 @
8a210c46
...
...
@@ -343,11 +343,11 @@ static FORCE_INLINE void varToNchar(char *buf, SScalarParam *pOut, int32_t rowIn
int32_t
inputLen
=
varDataLen
(
buf
);
int32_t
outputMaxLen
=
(
inputLen
+
1
)
*
TSDB_NCHAR_SIZE
+
VARSTR_HEADER_SIZE
;
char
*
t
=
taosMemoryCalloc
(
1
,
outputMaxLen
);
int32_t
ret
=
taosMbsToUcs4
(
varDataVal
(
buf
),
inputLen
,
(
TdUcs4
*
)
varDataVal
(
t
),
outputMaxLen
-
VARSTR_HEADER_SIZE
,
&
len
);
char
*
t
=
taosMemoryCalloc
(
1
,
outputMaxLen
);
int32_t
ret
=
taosMbsToUcs4
(
varDataVal
(
buf
),
inputLen
,
(
TdUcs4
*
)
varDataVal
(
t
),
outputMaxLen
-
VARSTR_HEADER_SIZE
,
&
len
);
if
(
!
ret
)
{
sclError
(
"failed to convert to NCHAR"
);
sclError
(
"failed to convert to NCHAR"
);
}
varDataSetLen
(
t
,
len
);
...
...
@@ -370,8 +370,8 @@ static FORCE_INLINE void ncharToVar(char *buf, SScalarParam *pOut, int32_t rowIn
taosMemoryFree
(
t
);
}
//TODO opt performance, tmp is not needed.
int32_t
vectorConvertFromVarData
(
SSclVectorConvCtx
*
pCtx
,
int32_t
*
overflow
)
{
//
TODO opt performance, tmp is not needed.
int32_t
vectorConvertFromVarData
(
SSclVectorConvCtx
*
pCtx
,
int32_t
*
overflow
)
{
bool
vton
=
false
;
_bufConverteFunc
func
=
NULL
;
...
...
@@ -383,11 +383,11 @@ int32_t vectorConvertFromVarData(SSclVectorConvCtx *pCtx, int32_t* overflow) {
func
=
varToUnsigned
;
}
else
if
(
IS_FLOAT_TYPE
(
pCtx
->
outType
))
{
func
=
varToFloat
;
}
else
if
(
pCtx
->
outType
==
TSDB_DATA_TYPE_BINARY
)
{
// nchar -> binary
}
else
if
(
pCtx
->
outType
==
TSDB_DATA_TYPE_BINARY
)
{
// nchar -> binary
ASSERT
(
pCtx
->
inType
==
TSDB_DATA_TYPE_NCHAR
);
func
=
ncharToVar
;
vton
=
true
;
}
else
if
(
pCtx
->
outType
==
TSDB_DATA_TYPE_NCHAR
)
{
// binary -> nchar
}
else
if
(
pCtx
->
outType
==
TSDB_DATA_TYPE_NCHAR
)
{
// binary -> nchar
ASSERT
(
pCtx
->
inType
==
TSDB_DATA_TYPE_VARCHAR
);
func
=
varToNchar
;
vton
=
true
;
...
...
@@ -405,10 +405,10 @@ int32_t vectorConvertFromVarData(SSclVectorConvCtx *pCtx, int32_t* overflow) {
continue
;
}
char
*
data
=
colDataGetVarData
(
pCtx
->
pIn
->
columnData
,
i
);
char
*
data
=
colDataGetVarData
(
pCtx
->
pIn
->
columnData
,
i
);
int32_t
convertType
=
pCtx
->
inType
;
if
(
pCtx
->
inType
==
TSDB_DATA_TYPE_JSON
)
{
if
(
*
data
==
TSDB_DATA_TYPE_NULL
)
{
if
(
pCtx
->
inType
==
TSDB_DATA_TYPE_JSON
)
{
if
(
*
data
==
TSDB_DATA_TYPE_NULL
)
{
ASSERT
(
0
);
}
else
if
(
*
data
==
TSDB_DATA_TYPE_NCHAR
)
{
data
+=
CHAR_BYTES
;
...
...
@@ -417,13 +417,13 @@ int32_t vectorConvertFromVarData(SSclVectorConvCtx *pCtx, int32_t* overflow) {
terrno
=
TSDB_CODE_QRY_JSON_NOT_SUPPORT_ERROR
;
return
terrno
;
}
else
{
convertNumberToNumber
(
data
+
CHAR_BYTES
,
colDataGetNumData
(
pCtx
->
pOut
->
columnData
,
i
),
*
data
,
pCtx
->
outType
);
convertNumberToNumber
(
data
+
CHAR_BYTES
,
colDataGetNumData
(
pCtx
->
pOut
->
columnData
,
i
),
*
data
,
pCtx
->
outType
);
continue
;
}
}
int32_t
bufSize
=
pCtx
->
pIn
->
columnData
->
info
.
bytes
;
char
*
tmp
=
taosMemoryMalloc
(
varDataTLen
(
data
));
if
(
!
tmp
)
{
char
*
tmp
=
taosMemoryMalloc
(
varDataTLen
(
data
));
if
(
!
tmp
)
{
sclError
(
"out of memory in vectorConvertFromVarData"
);
return
TSDB_CODE_OUT_OF_MEMORY
;
}
...
...
@@ -446,7 +446,7 @@ int32_t vectorConvertFromVarData(SSclVectorConvCtx *pCtx, int32_t* overflow) {
tmp
[
len
]
=
0
;
}
}
(
*
func
)(
tmp
,
pCtx
->
pOut
,
i
,
overflow
);
taosMemoryFreeClear
(
tmp
);
}
...
...
@@ -584,11 +584,12 @@ bool convertJsonValue(__compar_fn_t *fp, int32_t optr, int8_t typeLeft, int8_t t
}
int32_t
vectorConvertToVarData
(
SSclVectorConvCtx
*
pCtx
)
{
SColumnInfoData
*
pInputCol
=
pCtx
->
pIn
->
columnData
;
SColumnInfoData
*
pOutputCol
=
pCtx
->
pOut
->
columnData
;
char
tmp
[
128
]
=
{
0
};
SColumnInfoData
*
pInputCol
=
pCtx
->
pIn
->
columnData
;
SColumnInfoData
*
pOutputCol
=
pCtx
->
pOut
->
columnData
;
char
tmp
[
128
]
=
{
0
};
if
(
IS_SIGNED_NUMERIC_TYPE
(
pCtx
->
inType
)
||
pCtx
->
inType
==
TSDB_DATA_TYPE_BOOL
||
pCtx
->
inType
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
if
(
IS_SIGNED_NUMERIC_TYPE
(
pCtx
->
inType
)
||
pCtx
->
inType
==
TSDB_DATA_TYPE_BOOL
||
pCtx
->
inType
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
for
(
int32_t
i
=
pCtx
->
startIndex
;
i
<=
pCtx
->
endIndex
;
++
i
)
{
if
(
colDataIsNull_f
(
pInputCol
->
nullbitmap
,
i
))
{
colDataAppendNULL
(
pOutputCol
,
i
);
...
...
@@ -648,17 +649,18 @@ int32_t vectorConvertToVarData(SSclVectorConvCtx *pCtx) {
}
// TODO opt performance
int32_t
vectorConvertSingleColImpl
(
const
SScalarParam
*
pIn
,
SScalarParam
*
pOut
,
int32_t
*
overflow
,
int32_t
startIndex
,
int32_t
numOfRows
)
{
SColumnInfoData
*
pInputCol
=
pIn
->
columnData
;
SColumnInfoData
*
pOutputCol
=
pOut
->
columnData
;
int32_t
vectorConvertSingleColImpl
(
const
SScalarParam
*
pIn
,
SScalarParam
*
pOut
,
int32_t
*
overflow
,
int32_t
startIndex
,
int32_t
numOfRows
)
{
SColumnInfoData
*
pInputCol
=
pIn
->
columnData
;
SColumnInfoData
*
pOutputCol
=
pOut
->
columnData
;
if
(
NULL
==
pInputCol
)
{
sclError
(
"input column is NULL, hashFilter %p"
,
pIn
->
pHashFilter
);
return
TSDB_CODE_APP_ERROR
;
}
int32_t
rstart
=
(
startIndex
>=
0
&&
startIndex
<
pIn
->
numOfRows
)
?
startIndex
:
0
;
int32_t
rend
=
numOfRows
>
0
?
rstart
+
numOfRows
-
1
:
rstart
+
pIn
->
numOfRows
-
1
;
int32_t
rstart
=
(
startIndex
>=
0
&&
startIndex
<
pIn
->
numOfRows
)
?
startIndex
:
0
;
int32_t
rend
=
numOfRows
>
0
?
rstart
+
numOfRows
-
1
:
rstart
+
pIn
->
numOfRows
-
1
;
SSclVectorConvCtx
cCtx
=
{
pIn
,
pOut
,
rstart
,
rend
,
pInputCol
->
info
.
type
,
pOutputCol
->
info
.
type
};
if
(
IS_VAR_DATA_TYPE
(
cCtx
.
inType
))
{
...
...
@@ -669,14 +671,14 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
ASSERT
(
1
==
pIn
->
numOfRows
);
pOut
->
numOfRows
=
0
;
if
(
IS_SIGNED_NUMERIC_TYPE
(
cCtx
.
outType
))
{
int64_t
minValue
=
tDataTypes
[
cCtx
.
outType
].
minValue
;
int64_t
maxValue
=
tDataTypes
[
cCtx
.
outType
].
maxValue
;
double
value
=
0
;
GET_TYPED_DATA
(
value
,
double
,
cCtx
.
inType
,
colDataGetData
(
pInputCol
,
0
));
if
(
value
>
maxValue
)
{
*
overflow
=
1
;
return
TSDB_CODE_SUCCESS
;
...
...
@@ -689,10 +691,10 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
}
else
if
(
IS_UNSIGNED_NUMERIC_TYPE
(
cCtx
.
outType
))
{
uint64_t
minValue
=
(
uint64_t
)
tDataTypes
[
cCtx
.
outType
].
minValue
;
uint64_t
maxValue
=
(
uint64_t
)
tDataTypes
[
cCtx
.
outType
].
maxValue
;
double
value
=
0
;
GET_TYPED_DATA
(
value
,
double
,
cCtx
.
inType
,
colDataGetData
(
pInputCol
,
0
));
if
(
value
>
maxValue
)
{
*
overflow
=
1
;
return
TSDB_CODE_SUCCESS
;
...
...
@@ -733,7 +735,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
}
break
;
}
case
TSDB_DATA_TYPE_SMALLINT
:{
case
TSDB_DATA_TYPE_SMALLINT
:
{
for
(
int32_t
i
=
cCtx
.
startIndex
;
i
<=
cCtx
.
endIndex
;
++
i
)
{
if
(
colDataIsNull_f
(
pInputCol
->
nullbitmap
,
i
))
{
colDataAppendNULL
(
pOutputCol
,
i
);
...
...
@@ -746,7 +748,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
}
break
;
}
case
TSDB_DATA_TYPE_INT
:{
case
TSDB_DATA_TYPE_INT
:
{
for
(
int32_t
i
=
cCtx
.
startIndex
;
i
<=
cCtx
.
endIndex
;
++
i
)
{
if
(
colDataIsNull_f
(
pInputCol
->
nullbitmap
,
i
))
{
colDataAppendNULL
(
pOutputCol
,
i
);
...
...
@@ -773,7 +775,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
}
break
;
}
case
TSDB_DATA_TYPE_UTINYINT
:{
case
TSDB_DATA_TYPE_UTINYINT
:
{
for
(
int32_t
i
=
cCtx
.
startIndex
;
i
<=
cCtx
.
endIndex
;
++
i
)
{
if
(
colDataIsNull_f
(
pInputCol
->
nullbitmap
,
i
))
{
colDataAppendNULL
(
pOutputCol
,
i
);
...
...
@@ -786,7 +788,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
}
break
;
}
case
TSDB_DATA_TYPE_USMALLINT
:{
case
TSDB_DATA_TYPE_USMALLINT
:
{
for
(
int32_t
i
=
cCtx
.
startIndex
;
i
<=
cCtx
.
endIndex
;
++
i
)
{
if
(
colDataIsNull_f
(
pInputCol
->
nullbitmap
,
i
))
{
colDataAppendNULL
(
pOutputCol
,
i
);
...
...
@@ -799,7 +801,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
}
break
;
}
case
TSDB_DATA_TYPE_UINT
:{
case
TSDB_DATA_TYPE_UINT
:
{
for
(
int32_t
i
=
cCtx
.
startIndex
;
i
<=
cCtx
.
endIndex
;
++
i
)
{
if
(
colDataIsNull_f
(
pInputCol
->
nullbitmap
,
i
))
{
colDataAppendNULL
(
pOutputCol
,
i
);
...
...
@@ -821,11 +823,11 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
uint64_t
value
=
0
;
GET_TYPED_DATA
(
value
,
uint64_t
,
cCtx
.
inType
,
colDataGetData
(
pInputCol
,
i
));
colDataAppendInt64
(
pOutputCol
,
i
,
(
int64_t
*
)
&
value
);
colDataAppendInt64
(
pOutputCol
,
i
,
(
int64_t
*
)
&
value
);
}
break
;
}
case
TSDB_DATA_TYPE_FLOAT
:{
case
TSDB_DATA_TYPE_FLOAT
:
{
for
(
int32_t
i
=
cCtx
.
startIndex
;
i
<=
cCtx
.
endIndex
;
++
i
)
{
if
(
colDataIsNull_f
(
pInputCol
->
nullbitmap
,
i
))
{
colDataAppendNULL
(
pOutputCol
,
i
);
...
...
@@ -834,7 +836,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
float
value
=
0
;
GET_TYPED_DATA
(
value
,
float
,
cCtx
.
inType
,
colDataGetData
(
pInputCol
,
i
));
colDataAppendFloat
(
pOutputCol
,
i
,
(
float
*
)
&
value
);
colDataAppendFloat
(
pOutputCol
,
i
,
(
float
*
)
&
value
);
}
break
;
}
...
...
@@ -847,7 +849,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
double
value
=
0
;
GET_TYPED_DATA
(
value
,
double
,
cCtx
.
inType
,
colDataGetData
(
pInputCol
,
i
));
colDataAppendDouble
(
pOutputCol
,
i
,
(
double
*
)
&
value
);
colDataAppendDouble
(
pOutputCol
,
i
,
(
double
*
)
&
value
);
}
break
;
}
...
...
@@ -865,25 +867,25 @@ int32_t vectorConvertSingleColImpl(const SScalarParam* pIn, SScalarParam* pOut,
int8_t
gConvertTypes
[
TSDB_DATA_TYPE_BLOB
+
1
][
TSDB_DATA_TYPE_BLOB
+
1
]
=
{
/* NULL BOOL TINY SMAL INT BIG FLOA DOUB VARC TIME NCHA UTIN USMA UINT UBIG JSON VARB DECI BLOB */
/*NULL*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/*BOOL*/
0
,
0
,
2
,
3
,
4
,
5
,
6
,
7
,
5
,
9
,
7
,
11
,
12
,
13
,
14
,
0
,
7
,
0
,
0
,
/*TINY*/
0
,
0
,
0
,
3
,
4
,
5
,
6
,
7
,
5
,
9
,
7
,
3
,
4
,
5
,
7
,
0
,
7
,
0
,
0
,
/*SMAL*/
0
,
0
,
0
,
0
,
4
,
5
,
6
,
7
,
5
,
9
,
7
,
3
,
4
,
5
,
7
,
0
,
7
,
0
,
0
,
/*INT */
0
,
0
,
0
,
0
,
0
,
5
,
6
,
7
,
5
,
9
,
7
,
4
,
4
,
5
,
7
,
0
,
7
,
0
,
0
,
/*BIGI*/
0
,
0
,
0
,
0
,
0
,
0
,
6
,
7
,
5
,
9
,
7
,
5
,
5
,
5
,
7
,
0
,
7
,
0
,
0
,
/*FLOA*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
7
,
7
,
6
,
7
,
6
,
6
,
6
,
6
,
0
,
7
,
0
,
0
,
/*DOUB*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
0
,
7
,
0
,
0
,
/*VARC*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
9
,
8
,
7
,
7
,
7
,
7
,
0
,
0
,
0
,
0
,
/*TIME*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
9
,
9
,
9
,
9
,
7
,
0
,
7
,
0
,
0
,
/*NCHA*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
7
,
7
,
7
,
7
,
0
,
0
,
0
,
0
,
/*UTIN*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
12
,
13
,
14
,
0
,
7
,
0
,
0
,
/*USMA*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
13
,
14
,
0
,
7
,
0
,
0
,
/*UINT*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
14
,
0
,
7
,
0
,
0
,
/*UBIG*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
7
,
0
,
0
,
/*JSON*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/*VARB*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/*DECI*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/*BLOB*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
/*NULL*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/*BOOL*/
0
,
0
,
2
,
3
,
4
,
5
,
6
,
7
,
5
,
9
,
7
,
11
,
12
,
13
,
14
,
0
,
7
,
0
,
0
,
/*TINY*/
0
,
0
,
0
,
3
,
4
,
5
,
6
,
7
,
5
,
9
,
7
,
3
,
4
,
5
,
7
,
0
,
7
,
0
,
0
,
/*SMAL*/
0
,
0
,
0
,
0
,
4
,
5
,
6
,
7
,
5
,
9
,
7
,
3
,
4
,
5
,
7
,
0
,
7
,
0
,
0
,
/*INT */
0
,
0
,
0
,
0
,
0
,
5
,
6
,
7
,
5
,
9
,
7
,
4
,
4
,
5
,
7
,
0
,
7
,
0
,
0
,
/*BIGI*/
0
,
0
,
0
,
0
,
0
,
0
,
6
,
7
,
5
,
9
,
7
,
5
,
5
,
5
,
7
,
0
,
7
,
0
,
0
,
/*FLOA*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
7
,
7
,
6
,
7
,
6
,
6
,
6
,
6
,
0
,
7
,
0
,
0
,
/*DOUB*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
0
,
7
,
0
,
0
,
/*VARC*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
9
,
8
,
7
,
7
,
7
,
7
,
0
,
0
,
0
,
0
,
/*TIME*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
9
,
9
,
9
,
9
,
7
,
0
,
7
,
0
,
0
,
/*NCHA*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
7
,
7
,
7
,
7
,
0
,
0
,
0
,
0
,
/*UTIN*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
12
,
13
,
14
,
0
,
7
,
0
,
0
,
/*USMA*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
13
,
14
,
0
,
7
,
0
,
0
,
/*UINT*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
14
,
0
,
7
,
0
,
0
,
/*UBIG*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
7
,
0
,
0
,
/*JSON*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/*VARB*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/*DECI*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/*BLOB*/
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
int32_t
vectorGetConvertType
(
int32_t
type1
,
int32_t
type2
)
{
if
(
type1
==
type2
)
{
...
...
@@ -897,7 +899,8 @@ int32_t vectorGetConvertType(int32_t type1, int32_t type2) {
return
gConvertTypes
[
type2
][
type1
];
}
int32_t
vectorConvertSingleCol
(
SScalarParam
*
input
,
SScalarParam
*
output
,
int32_t
type
,
int32_t
startIndex
,
int32_t
numOfRows
)
{
int32_t
vectorConvertSingleCol
(
SScalarParam
*
input
,
SScalarParam
*
output
,
int32_t
type
,
int32_t
startIndex
,
int32_t
numOfRows
)
{
SDataType
t
=
{.
type
=
type
,
.
bytes
=
tDataTypes
[
type
].
bytes
};
output
->
numOfRows
=
input
->
numOfRows
;
...
...
@@ -914,8 +917,9 @@ int32_t vectorConvertSingleCol(SScalarParam *input, SScalarParam *output, int32_
return
TSDB_CODE_SUCCESS
;
}
int32_t
vectorConvertCols
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pLeftOut
,
SScalarParam
*
pRightOut
,
int32_t
startIndex
,
int32_t
numOfRows
)
{
int32_t
leftType
=
GET_PARAM_TYPE
(
pLeft
);
int32_t
vectorConvertCols
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pLeftOut
,
SScalarParam
*
pRightOut
,
int32_t
startIndex
,
int32_t
numOfRows
)
{
int32_t
leftType
=
GET_PARAM_TYPE
(
pLeft
);
int32_t
rightType
=
GET_PARAM_TYPE
(
pRight
);
if
(
leftType
==
rightType
)
{
return
TSDB_CODE_SUCCESS
;
...
...
@@ -1007,9 +1011,9 @@ static void vectorMathTsAddHelper(SColumnInfoData *pLeftCol, SColumnInfoData *pR
}
}
static
SColumnInfoData
*
vectorConvertVarToDouble
(
SScalarParam
*
pInput
,
int32_t
*
converted
)
{
SScalarParam
output
=
{
0
};
SColumnInfoData
*
pCol
=
pInput
->
columnData
;
static
SColumnInfoData
*
vectorConvertVarToDouble
(
SScalarParam
*
pInput
,
int32_t
*
converted
)
{
SScalarParam
output
=
{
0
};
SColumnInfoData
*
pCol
=
pInput
->
columnData
;
if
(
IS_VAR_DATA_TYPE
(
pCol
->
info
.
type
)
&&
pCol
->
info
.
type
!=
TSDB_DATA_TYPE_JSON
)
{
int32_t
code
=
vectorConvertSingleCol
(
pInput
,
&
output
,
TSDB_DATA_TYPE_DOUBLE
,
-
1
,
-
1
);
...
...
@@ -1024,7 +1028,7 @@ static SColumnInfoData* vectorConvertVarToDouble(SScalarParam* pInput, int32_t*
}
*
converted
=
VECTOR_UN_CONVERT
;
return
pInput
->
columnData
;
}
...
...
@@ -1043,9 +1047,9 @@ void vectorMathAdd(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *pOut
pOut
->
numOfRows
=
TMAX
(
pLeft
->
numOfRows
,
pRight
->
numOfRows
);
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
if
((
GET_PARAM_TYPE
(
pLeft
)
==
TSDB_DATA_TYPE_TIMESTAMP
&&
IS_INTEGER_TYPE
(
GET_PARAM_TYPE
(
pRight
)))
||
(
GET_PARAM_TYPE
(
pRight
)
==
TSDB_DATA_TYPE_TIMESTAMP
&&
IS_INTEGER_TYPE
(
GET_PARAM_TYPE
(
pLeft
)))
||
...
...
@@ -1150,9 +1154,9 @@ void vectorMathSub(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *pOut
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
TMAX
(
pLeft
->
numOfRows
,
pRight
->
numOfRows
)
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
if
((
GET_PARAM_TYPE
(
pLeft
)
==
TSDB_DATA_TYPE_TIMESTAMP
&&
GET_PARAM_TYPE
(
pRight
)
==
TSDB_DATA_TYPE_BIGINT
)
||
(
GET_PARAM_TYPE
(
pRight
)
==
TSDB_DATA_TYPE_TIMESTAMP
&&
...
...
@@ -1228,9 +1232,9 @@ void vectorMathMultiply(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
TMAX
(
pLeft
->
numOfRows
,
pRight
->
numOfRows
)
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
_getDoubleValue_fn_t
getVectorDoubleValueFnLeft
=
getVectorDoubleValueFn
(
pLeftCol
->
info
.
type
);
_getDoubleValue_fn_t
getVectorDoubleValueFnRight
=
getVectorDoubleValueFn
(
pRightCol
->
info
.
type
);
...
...
@@ -1261,8 +1265,8 @@ void vectorMathDivide(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *p
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
TMAX
(
pLeft
->
numOfRows
,
pRight
->
numOfRows
)
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
_getDoubleValue_fn_t
getVectorDoubleValueFnLeft
=
getVectorDoubleValueFn
(
pLeftCol
->
info
.
type
);
...
...
@@ -1315,8 +1319,8 @@ void vectorMathRemainder(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
TMAX
(
pLeft
->
numOfRows
,
pRight
->
numOfRows
)
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
_getDoubleValue_fn_t
getVectorDoubleValueFnLeft
=
getVectorDoubleValueFn
(
pLeftCol
->
info
.
type
);
...
...
@@ -1394,8 +1398,8 @@ void vectorMathMinus(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *pO
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
(
pLeft
->
numOfRows
-
1
);
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
leftConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
int32_t
leftConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
_getDoubleValue_fn_t
getVectorDoubleValueFnLeft
=
getVectorDoubleValueFn
(
pLeftCol
->
info
.
type
);
...
...
@@ -1456,9 +1460,9 @@ void vectorBitAnd(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *pOut,
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
TMAX
(
pLeft
->
numOfRows
,
pRight
->
numOfRows
)
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
_getBigintValue_fn_t
getVectorBigintValueFnLeft
=
getVectorBigintValueFn
(
pLeftCol
->
info
.
type
);
_getBigintValue_fn_t
getVectorBigintValueFnRight
=
getVectorBigintValueFn
(
pRightCol
->
info
.
type
);
...
...
@@ -1510,9 +1514,9 @@ void vectorBitOr(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *pOut,
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
TMAX
(
pLeft
->
numOfRows
,
pRight
->
numOfRows
)
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
int32_t
leftConvert
=
0
,
rightConvert
=
0
;
SColumnInfoData
*
pLeftCol
=
vectorConvertVarToDouble
(
pLeft
,
&
leftConvert
);
SColumnInfoData
*
pRightCol
=
vectorConvertVarToDouble
(
pRight
,
&
rightConvert
);
_getBigintValue_fn_t
getVectorBigintValueFnLeft
=
getVectorBigintValueFn
(
pLeftCol
->
info
.
type
);
_getBigintValue_fn_t
getVectorBigintValueFnRight
=
getVectorBigintValueFn
(
pRightCol
->
info
.
type
);
...
...
@@ -1536,8 +1540,8 @@ void vectorBitOr(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *pOut,
doReleaseVec
(
pRightCol
,
rightConvert
);
}
int32_t
doVectorCompareImpl
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
startIndex
,
int32_t
numOfRows
,
int32_t
step
,
__compar_fn_t
fp
,
int32_t
optr
)
{
int32_t
doVectorCompareImpl
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
startIndex
,
int32_t
numOfRows
,
int32_t
step
,
__compar_fn_t
fp
,
int32_t
optr
)
{
int32_t
num
=
0
;
for
(
int32_t
i
=
startIndex
;
i
<
numOfRows
&&
i
>=
0
;
i
+=
step
)
{
...
...
@@ -1590,15 +1594,15 @@ int32_t doVectorCompareImpl(SScalarParam *pLeft, SScalarParam *pRight, SScalarPa
return
num
;
}
void
doVectorCompare
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
startIndex
,
int32_t
numOfRows
,
int32_t
_ord
,
int32_t
optr
)
{
void
doVectorCompare
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
startIndex
,
int32_t
numOfRows
,
int32_t
_ord
,
int32_t
optr
)
{
int32_t
i
=
0
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
lType
=
GET_PARAM_TYPE
(
pLeft
);
int32_t
rType
=
GET_PARAM_TYPE
(
pRight
);
__compar_fn_t
fp
=
NULL
;
int32_t
compRows
=
0
;
if
(
lType
==
rType
)
{
fp
=
filterGetCompFunc
(
lType
,
optr
);
}
else
{
...
...
@@ -1634,10 +1638,10 @@ void doVectorCompare(SScalarParam* pLeft, SScalarParam* pRight, SScalarParam *pO
}
}
void
vectorCompareImpl
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
startIndex
,
int32_t
numOfRows
,
int32_t
_ord
,
int32_t
optr
)
{
SScalarParam
pLeftOut
=
{
0
};
SScalarParam
pRightOut
=
{
0
};
void
vectorCompareImpl
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
startIndex
,
int32_t
numOfRows
,
int32_t
_ord
,
int32_t
optr
)
{
SScalarParam
pLeftOut
=
{
0
};
SScalarParam
pRightOut
=
{
0
};
SScalarParam
*
param1
=
NULL
;
SScalarParam
*
param2
=
NULL
;
...
...
@@ -1661,16 +1665,16 @@ void vectorCompareImpl(SScalarParam* pLeft, SScalarParam* pRight, SScalarParam *
}
doVectorCompare
(
param1
,
param2
,
pOut
,
startIndex
,
numOfRows
,
_ord
,
optr
);
sclFreeParam
(
&
pLeftOut
);
sclFreeParam
(
&
pRightOut
);
}
void
vectorCompare
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
_ord
,
int32_t
optr
)
{
void
vectorCompare
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
_ord
,
int32_t
optr
)
{
vectorCompareImpl
(
pLeft
,
pRight
,
pOut
,
-
1
,
-
1
,
_ord
,
optr
);
}
void
vectorGreater
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
_ord
)
{
void
vectorGreater
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
_ord
)
{
vectorCompare
(
pLeft
,
pRight
,
pOut
,
_ord
,
OP_TYPE_GREATER_THAN
);
}
...
...
@@ -1734,10 +1738,10 @@ void vectorNotNull(SScalarParam *pLeft, SScalarParam *pRight, SScalarParam *pOut
pOut
->
numOfRows
=
pLeft
->
numOfRows
;
}
void
vectorIsTrue
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
_ord
)
{
void
vectorIsTrue
(
SScalarParam
*
pLeft
,
SScalarParam
*
pRight
,
SScalarParam
*
pOut
,
int32_t
_ord
)
{
vectorConvertSingleColImpl
(
pLeft
,
pOut
,
NULL
,
-
1
,
-
1
);
for
(
int32_t
i
=
0
;
i
<
pOut
->
numOfRows
;
++
i
)
{
if
(
colDataIsNull_s
(
pOut
->
columnData
,
i
))
{
for
(
int32_t
i
=
0
;
i
<
pOut
->
numOfRows
;
++
i
)
{
if
(
colDataIsNull_s
(
pOut
->
columnData
,
i
))
{
int8_t
v
=
0
;
colDataAppendInt8
(
pOut
->
columnData
,
i
,
&
v
);
colDataSetNotNull_f
(
pOut
->
columnData
->
nullbitmap
,
i
);
...
...
@@ -1748,7 +1752,7 @@ void vectorIsTrue(SScalarParam* pLeft, SScalarParam* pRight, SScalarParam *pOut,
STagVal
getJsonValue
(
char
*
json
,
char
*
key
,
bool
*
isExist
)
{
STagVal
val
=
{.
pKey
=
key
};
if
(
tTagIsJson
((
const
STag
*
)
json
)
==
false
)
{
if
(
json
==
NULL
||
tTagIsJson
((
const
STag
*
)
json
)
==
false
)
{
terrno
=
TSDB_CODE_QRY_JSON_NOT_SUPPORT_ERROR
;
if
(
isExist
)
{
*
isExist
=
false
;
...
...
source/libs/transport/src/transSvr.c
浏览文件 @
8a210c46
...
...
@@ -195,7 +195,7 @@ static bool uvHandleReq(SSvrConn* pConn) {
}
if
(
transDecompressMsg
((
char
**
)
&
pHead
,
msgLen
)
<
0
)
{
t
Debug
(
"%s conn %p recv invalid packet, failed to decompress"
,
transLabel
(
pTransInst
),
pConn
);
t
Error
(
"%s conn %p recv invalid packet, failed to decompress"
,
transLabel
(
pTransInst
),
pConn
);
return
false
;
}
...
...
@@ -277,10 +277,8 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) {
SConnBuffer
*
pBuf
=
&
conn
->
readBuf
;
if
(
nread
>
0
)
{
pBuf
->
len
+=
nread
;
tTrace
(
"%s conn %p total read:%d, current read:%d"
,
transLabel
(
pTransInst
),
conn
,
pBuf
->
len
,
(
int
)
nread
);
if
(
pBuf
->
len
<=
TRANS_PACKET_LIMIT
)
{
while
(
transReadComplete
(
pBuf
))
{
tTrace
(
"%s conn %p alread read complete packet"
,
transLabel
(
pTransInst
),
conn
);
if
(
true
==
pBuf
->
invalid
||
false
==
uvHandleReq
(
conn
))
{
tError
(
"%s conn %p read invalid packet, received from %s, local info:%s"
,
transLabel
(
pTransInst
),
conn
,
conn
->
dst
,
conn
->
src
);
...
...
tests/parallel_test/cases.task
浏览文件 @
8a210c46
...
...
@@ -418,18 +418,18 @@
,,y,system-test,./pytest.sh python3 ./test.py -f 0-others/fsync.py
,,n,system-test,python3 ./test.py -f 0-others/compatibility.py
,,,system-test,python3 ./test.py -f 1-insert/alter_database.py
,,
,system-test,
python3 ./test.py -f 1-insert/influxdb_line_taosc_insert.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 1-insert/influxdb_line_taosc_insert.py
,,y,system-test,./pytest.sh python3 ./test.py -f 1-insert/opentsdb_telnet_line_taosc_insert.py
,,,system-test,python3 ./test.py -f 1-insert/opentsdb_json_taosc_insert.py
,,
,system-test,
python3 ./test.py -f 1-insert/test_stmt_muti_insert_query.py
,,
,system-test,
python3 ./test.py -f 1-insert/test_stmt_set_tbname_tag.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 1-insert/test_stmt_muti_insert_query.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 1-insert/test_stmt_set_tbname_tag.py
,,y,system-test,./pytest.sh python3 ./test.py -f 1-insert/alter_stable.py
#,,y,system-test,./pytest.sh python3 ./test.py -f 1-insert/alter_table.py
,,n,system-test,python3 ./test.py -f 1-insert/boundary.py
,,n,system-test,python3 ./test.py -f 1-insert/insertWithMoreVgroup.py
,,y,system-test,./pytest.sh python3 ./test.py -f 1-insert/table_comment.py
,,n,system-test,python3 ./test.py -f 1-insert/time_range_wise.py
,,
,system-test,
python3 ./test.py -f 1-insert/block_wise.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 1-insert/block_wise.py
,,,system-test,python3 ./test.py -f 1-insert/create_retentions.py
,,y,system-test,./pytest.sh python3 ./test.py -f 1-insert/mutil_stage.py
,,y,system-test,./pytest.sh python3 ./test.py -f 1-insert/table_param_ttl.py
...
...
@@ -622,12 +622,12 @@
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/join2.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/union1.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/concat2.py
,,
,system-test,
python3 ./test.py -f 2-query/json_tag.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 2-query/json_tag.py
,,,system-test,python3 ./test.py -f 2-query/nestedQuery.py
,,,system-test,python3 ./test.py -f 2-query/nestedQuery_str.py
,,,system-test,python3 ./test.py -f 2-query/nestedQuery_math.py
,,,system-test,python3 ./test.py -f 2-query/nestedQuery_time.py
,,
,system-test,
python3 ./test.py -f 2-query/stablity.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 2-query/stablity.py
,,,system-test,python3 ./test.py -f 2-query/stablity_1.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/elapsed.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/csum.py
...
...
@@ -671,22 +671,22 @@
,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/create_wrong_topic.py
,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/dropDbR3ConflictTransaction.py -N 3
,,y,system-test,./pytest.sh python3 ./test.py -f 7-tmq/basic5.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeDb.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeDb0.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeDb1.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeDb2.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeDb.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeDb0.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeDb1.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeDb2.py
,,,system-test,python3 ./test.py -f 7-tmq/subscribeDb3.py
,,,system-test,python3 ./test.py -f 7-tmq/subscribeDb4.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeStb.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeStb0.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeStb1.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeStb2.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeStb.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeStb0.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeStb1.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeStb2.py
,,,system-test,python3 ./test.py -f 7-tmq/subscribeStb3.py
,,
,system-test,
python3 ./test.py -f 7-tmq/subscribeStb4.py
,,
,system-test,
python3 ./test.py -f 7-tmq/db.py
,,,system-test,python3 ./test.py -f 7-tmq/tmqError.py
,,
,system-test,
python3 ./test.py -f 7-tmq/schema.py
,,
,system-test,
python3 ./test.py -f 7-tmq/stbFilter.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/subscribeStb4.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/db.py
,,
n
,system-test,python3 ./test.py -f 7-tmq/tmqError.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/schema.py
,,
y,system-test,./pytest.sh
python3 ./test.py -f 7-tmq/stbFilter.py
,,,system-test,python3 ./test.py -f 7-tmq/tmqCheckData.py
,,,system-test,python3 ./test.py -f 7-tmq/tmqCheckData1.py
,,,system-test,python3 ./test.py -f 7-tmq/tmqConsumerGroup.py
...
...
@@ -768,7 +768,7 @@
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/timetruncate.py -Q 2
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/diff.py -Q 2
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/Timediff.py -Q 2
,,
,system-test,
python3 ./test.py -f 2-query/json_tag.py -Q 2
,,
y,system-test,./pytest.sh
python3 ./test.py -f 2-query/json_tag.py -Q 2
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/top.py -Q 2
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/bottom.py -Q 2
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/percentile.py -Q 2
...
...
@@ -862,7 +862,7 @@
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/timetruncate.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/diff.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/Timediff.py -Q 3
,,
,system-test,
python3 ./test.py -f 2-query/json_tag.py -Q 3
,,
y,system-test,./pytest.sh
python3 ./test.py -f 2-query/json_tag.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/top.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/bottom.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/percentile.py -Q 3
...
...
@@ -978,8 +978,8 @@
,,,system-test,python3 ./test.py -f 2-query/nestedQuery_str.py -Q 4
,,,system-test,python3 ./test.py -f 2-query/nestedQuery_math.py -Q 4
,,,system-test,python3 ./test.py -f 2-query/nestedQuery_time.py -Q 4
,,
,system-test,
python3 ./test.py -f 2-query/stablity.py -Q 4
,,
,system-test,
python3 ./test.py -f 2-query/stablity_1.py -Q 4
,,
y,system-test,./pytest.sh
python3 ./test.py -f 2-query/stablity.py -Q 4
,,
y,system-test,./pytest.sh
python3 ./test.py -f 2-query/stablity_1.py -Q 4
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/avg.py -Q 4
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/elapsed.py -Q 4
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/csum.py -Q 4
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录