Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
84a7a9af
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看板
提交
84a7a9af
编写于
4月 13, 2022
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
差异文件
Merge branch '3.0' into feature/TD-11463-3.0
上级
f9d162ba
8ba6ddf8
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
460 addition
and
414 deletion
+460
-414
include/common/ttime.h
include/common/ttime.h
+1
-0
include/libs/function/functionMgt.h
include/libs/function/functionMgt.h
+1
-1
include/libs/scalar/scalar.h
include/libs/scalar/scalar.h
+2
-0
packaging/install.sh
packaging/install.sh
+5
-1
source/common/src/ttime.c
source/common/src/ttime.c
+25
-1
source/libs/function/inc/builtins.h
source/libs/function/inc/builtins.h
+1
-1
source/libs/function/src/builtins.c
source/libs/function/src/builtins.c
+29
-0
source/libs/scalar/inc/sclInt.h
source/libs/scalar/inc/sclInt.h
+3
-2
source/libs/scalar/src/sclfunc.c
source/libs/scalar/src/sclfunc.c
+232
-0
tests/script/tmp/back.sim
tests/script/tmp/back.sim
+6
-0
tests/script/tmp/data.sim
tests/script/tmp/data.sim
+14
-0
tests/script/tsim/query/complex_group.sim
tests/script/tsim/query/complex_group.sim
+75
-75
tests/script/tsim/query/complex_having.sim
tests/script/tsim/query/complex_having.sim
+14
-14
tests/script/tsim/query/complex_where.sim
tests/script/tsim/query/complex_where.sim
+40
-40
tests/script/tsim/tmq/consumerMain.sim
tests/script/tsim/tmq/consumerMain.sim
+0
-267
tests/tsim/src/simSystem.c
tests/tsim/src/simSystem.c
+12
-12
未找到文件。
include/common/ttime.h
浏览文件 @
84a7a9af
...
...
@@ -64,6 +64,7 @@ char getPrecisionUnit(int32_t precision);
int64_t
convertTimePrecision
(
int64_t
time
,
int32_t
fromPrecision
,
int32_t
toPrecision
);
int64_t
convertTimeFromPrecisionToUnit
(
int64_t
time
,
int32_t
fromPrecision
,
char
toUnit
);
int32_t
convertStringToTimestamp
(
int16_t
type
,
char
*
inputData
,
int64_t
timePrec
,
int64_t
*
timeVal
);
void
taosFormatUtcTime
(
char
*
buf
,
int32_t
bufLen
,
int64_t
time
,
int32_t
precision
);
...
...
include/libs/function/functionMgt.h
浏览文件 @
84a7a9af
...
...
@@ -85,8 +85,8 @@ typedef enum EFunctionType {
// conversion function
FUNCTION_TYPE_CAST
=
2000
,
FUNCTION_TYPE_TO_ISO8601
,
FUNCTION_TYPE_TO_UNIXTIMESTAMP
,
FUNCTION_TYPE_TO_JSON
,
FUNCTION_TYPE_UNIXTIMESTAMP
,
// date and time function
FUNCTION_TYPE_NOW
=
2500
,
...
...
include/libs/scalar/scalar.h
浏览文件 @
84a7a9af
...
...
@@ -75,6 +75,8 @@ int32_t castFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOutp
/* Time related functions */
int32_t
toISO8601Function
(
SScalarParam
*
pInput
,
int32_t
inputNum
,
SScalarParam
*
pOutput
);
int32_t
toUnixtimestampFunction
(
SScalarParam
*
pInput
,
int32_t
inputNum
,
SScalarParam
*
pOutput
);
int32_t
timeTruncateFunction
(
SScalarParam
*
pInput
,
int32_t
inputNum
,
SScalarParam
*
pOutput
);
bool
getTimePseudoFuncEnv
(
struct
SFunctionNode
*
pFunc
,
SFuncExecEnv
*
pEnv
);
...
...
packaging/install.sh
浏览文件 @
84a7a9af
...
...
@@ -157,7 +157,7 @@ function install_main_path() {
${
csudo
}
mkdir
-p
${
install_main_dir
}
/cfg
${
csudo
}
mkdir
-p
${
install_main_dir
}
/bin
${
csudo
}
mkdir
-p
${
install_main_dir
}
/connector
${
csudo
}
mkdir
-p
${
install_main_dir
}
/
driver
${
csudo
}
mkdir
-p
${
install_main_dir
}
/
lib
${
csudo
}
mkdir
-p
${
install_main_dir
}
/examples
${
csudo
}
mkdir
-p
${
install_main_dir
}
/include
${
csudo
}
mkdir
-p
${
install_main_dir
}
/init.d
...
...
@@ -198,6 +198,10 @@ function install_lib() {
# Remove links
${
csudo
}
rm
-f
${
lib_link_dir
}
/libtaos.
*
||
:
${
csudo
}
rm
-f
${
lib64_link_dir
}
/libtaos.
*
||
:
${
csudo
}
rm
-f
${
lib_link_dir
}
/libtdb.
*
||
:
${
csudo
}
rm
-f
${
lib64_link_dir
}
/libtdb.
*
||
:
${
csudo
}
cp
-rf
${
script_dir
}
/lib/
*
${
install_main_dir
}
/lib
&&
${
csudo
}
chmod
777
${
install_main_dir
}
/lib/
*
${
csudo
}
ln
-s
${
install_main_dir
}
/lib/libtaos.
*
${
lib_link_dir
}
/libtaos.so.1
${
csudo
}
ln
-s
${
lib_link_dir
}
/libtaos.so.1
${
lib_link_dir
}
/libtaos.so
...
...
source/common/src/ttime.c
浏览文件 @
84a7a9af
...
...
@@ -406,7 +406,31 @@ int64_t convertTimeFromPrecisionToUnit(int64_t time, int32_t fromPrecision, char
default:
{
return
-
1
;
}
}
}
}
int32_t
convertStringToTimestamp
(
int16_t
type
,
char
*
inputData
,
int64_t
timePrec
,
int64_t
*
timeVal
)
{
int32_t
charLen
=
varDataLen
(
inputData
);
char
*
newColData
;
if
(
type
==
TSDB_DATA_TYPE_BINARY
)
{
newColData
=
taosMemoryCalloc
(
1
,
charLen
+
1
);
memcpy
(
newColData
,
varDataVal
(
inputData
),
charLen
);
taosParseTime
(
newColData
,
timeVal
,
charLen
,
(
int32_t
)
timePrec
,
0
);
taosMemoryFree
(
newColData
);
}
else
if
(
type
==
TSDB_DATA_TYPE_NCHAR
)
{
newColData
=
taosMemoryCalloc
(
1
,
charLen
/
TSDB_NCHAR_SIZE
+
1
);
int
len
=
taosUcs4ToMbs
((
TdUcs4
*
)
varDataVal
(
inputData
),
charLen
,
newColData
);
if
(
len
<
0
){
taosMemoryFree
(
newColData
);
return
TSDB_CODE_FAILED
;
}
newColData
[
len
]
=
0
;
taosParseTime
(
newColData
,
timeVal
,
len
+
1
,
(
int32_t
)
timePrec
,
0
);
taosMemoryFree
(
newColData
);
}
else
{
return
TSDB_CODE_FAILED
;
}
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
getDuration
(
int64_t
val
,
char
unit
,
int64_t
*
result
,
int32_t
timePrecision
)
{
...
...
source/libs/function/inc/builtins.h
浏览文件 @
84a7a9af
...
...
@@ -22,7 +22,7 @@ extern "C" {
#include "functionMgt.h"
#define FUNCTION_NAME_MAX_LENGTH
16
#define FUNCTION_NAME_MAX_LENGTH
32
#define FUNC_MGT_FUNC_CLASSIFICATION_MASK(n) (1 << n)
...
...
source/libs/function/src/builtins.c
浏览文件 @
84a7a9af
...
...
@@ -403,6 +403,26 @@ const SBuiltinFuncDefinition funcMgtBuiltins[] = {
.
sprocessFunc
=
toISO8601Function
,
.
finalizeFunc
=
NULL
},
{
.
name
=
"to_unixtimestamp"
,
.
type
=
FUNCTION_TYPE_TO_UNIXTIMESTAMP
,
.
classification
=
FUNC_MGT_SCALAR_FUNC
,
.
checkFunc
=
checkAndGetResultType
,
.
getEnvFunc
=
NULL
,
.
initFunc
=
NULL
,
.
sprocessFunc
=
toUnixtimestampFunction
,
.
finalizeFunc
=
NULL
},
{
.
name
=
"timetruncate"
,
.
type
=
FUNCTION_TYPE_TIMETRUNCATE
,
.
classification
=
FUNC_MGT_SCALAR_FUNC
,
.
checkFunc
=
checkAndGetResultType
,
.
getEnvFunc
=
NULL
,
.
initFunc
=
NULL
,
.
sprocessFunc
=
timeTruncateFunction
,
.
finalizeFunc
=
NULL
},
{
.
name
=
"_rowts"
,
.
type
=
FUNCTION_TYPE_ROWTS
,
...
...
@@ -621,6 +641,15 @@ int32_t checkAndGetResultType(SFunctionNode* pFunc) {
}
case
FUNCTION_TYPE_TO_ISO8601
:
{
pFunc
->
node
.
resType
=
(
SDataType
)
{
.
bytes
=
64
,
.
type
=
TSDB_DATA_TYPE_BINARY
};
break
;
}
case
FUNCTION_TYPE_TO_UNIXTIMESTAMP
:
{
pFunc
->
node
.
resType
=
(
SDataType
)
{
.
bytes
=
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
,
.
type
=
TSDB_DATA_TYPE_BIGINT
};
break
;
}
case
FUNCTION_TYPE_TIMETRUNCATE
:
{
pFunc
->
node
.
resType
=
(
SDataType
)
{
.
bytes
=
tDataTypes
[
TSDB_DATA_TYPE_TIMESTAMP
].
bytes
,
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
};
break
;
}
case
FUNCTION_TYPE_TBNAME
:
{
...
...
source/libs/scalar/inc/sclInt.h
浏览文件 @
84a7a9af
...
...
@@ -46,8 +46,9 @@ typedef struct SScalarCtx {
int32_t
doConvertDataType
(
SValueNode
*
pValueNode
,
SScalarParam
*
out
);
SColumnInfoData
*
createColumnInfoData
(
SDataType
*
pType
,
int32_t
numOfRows
);
#define GET_PARAM_TYPE(_c) ((_c)->columnData->info.type)
#define GET_PARAM_BYTES(_c) ((_c)->columnData->info.bytes)
#define GET_PARAM_TYPE(_c) ((_c)->columnData->info.type)
#define GET_PARAM_BYTES(_c) ((_c)->columnData->info.bytes)
#define GET_PARAM_PRECISON(_c) ((_c)->columnData->info.precision)
void
sclFreeParam
(
SScalarParam
*
param
);
...
...
source/libs/scalar/src/sclfunc.c
浏览文件 @
84a7a9af
#include "function.h"
#include "scalar.h"
#include "tdatablock.h"
#include "ttime.h"
#include "sclInt.h"
#include "sclvector.h"
...
...
@@ -872,6 +873,237 @@ int32_t toISO8601Function(SScalarParam *pInput, int32_t inputNum, SScalarParam *
return
TSDB_CODE_SUCCESS
;
}
int32_t
toUnixtimestampFunction
(
SScalarParam
*
pInput
,
int32_t
inputNum
,
SScalarParam
*
pOutput
)
{
int32_t
type
=
GET_PARAM_TYPE
(
pInput
);
int32_t
timePrec
=
GET_PARAM_PRECISON
(
pInput
);
if
(
type
!=
TSDB_DATA_TYPE_BINARY
&&
type
!=
TSDB_DATA_TYPE_NCHAR
)
{
return
TSDB_CODE_FAILED
;
}
if
(
inputNum
!=
1
)
{
return
TSDB_CODE_FAILED
;
}
char
*
input
=
pInput
[
0
].
columnData
->
pData
+
pInput
[
0
].
columnData
->
varmeta
.
offset
[
0
];
for
(
int32_t
i
=
0
;
i
<
pInput
[
0
].
numOfRows
;
++
i
)
{
if
(
colDataIsNull_s
(
pInput
[
0
].
columnData
,
i
))
{
colDataAppendNULL
(
pOutput
->
columnData
,
i
);
continue
;
}
int64_t
timeVal
=
0
;
convertStringToTimestamp
(
type
,
input
,
timePrec
,
&
timeVal
);
colDataAppend
(
pOutput
->
columnData
,
i
,
(
char
*
)
&
timeVal
,
false
);
input
+=
varDataTLen
(
input
);
}
pOutput
->
numOfRows
=
pInput
->
numOfRows
;
return
TSDB_CODE_SUCCESS
;
}
int32_t
timeTruncateFunction
(
SScalarParam
*
pInput
,
int32_t
inputNum
,
SScalarParam
*
pOutput
)
{
int32_t
type
=
GET_PARAM_TYPE
(
&
pInput
[
0
]);
int32_t
timePrec
=
GET_PARAM_PRECISON
(
&
pInput
[
0
]);
if
(
inputNum
!=
2
)
{
return
TSDB_CODE_FAILED
;
}
if
(
type
!=
TSDB_DATA_TYPE_BIGINT
&&
type
!=
TSDB_DATA_TYPE_TIMESTAMP
&&
type
!=
TSDB_DATA_TYPE_BINARY
&&
type
!=
TSDB_DATA_TYPE_NCHAR
)
{
return
TSDB_CODE_FAILED
;
}
if
(
GET_PARAM_TYPE
(
&
pInput
[
1
])
!=
TSDB_DATA_TYPE_BIGINT
)
{
//time_unit
return
TSDB_CODE_FAILED
;
}
int64_t
timeUnit
,
timeVal
=
0
;
GET_TYPED_DATA
(
timeUnit
,
int64_t
,
GET_PARAM_TYPE
(
&
pInput
[
1
]),
pInput
[
1
].
columnData
->
pData
);
int64_t
factor
=
(
timePrec
==
TSDB_TIME_PRECISION_MILLI
)
?
1000
:
(
timePrec
==
TSDB_TIME_PRECISION_MICRO
?
1000000
:
1000000000
);
char
*
input
=
NULL
;
if
(
IS_VAR_DATA_TYPE
(
type
))
{
input
=
pInput
[
0
].
columnData
->
pData
+
pInput
[
0
].
columnData
->
varmeta
.
offset
[
0
];
}
else
{
input
=
pInput
[
0
].
columnData
->
pData
;
}
for
(
int32_t
i
=
0
;
i
<
pInput
[
0
].
numOfRows
;
++
i
)
{
if
(
colDataIsNull_s
(
pInput
[
0
].
columnData
,
i
))
{
colDataAppendNULL
(
pOutput
->
columnData
,
i
);
continue
;
}
if
(
IS_VAR_DATA_TYPE
(
type
))
{
/* datetime format strings */
convertStringToTimestamp
(
type
,
input
,
TSDB_TIME_PRECISION_NANO
,
&
timeVal
);
//If converted value is less than 10digits in second, use value in second instead
int64_t
timeValSec
=
timeVal
/
1000000000
;
if
(
timeValSec
<
1000000000
)
{
timeVal
=
timeValSec
;
}
}
else
if
(
type
==
TSDB_DATA_TYPE_BIGINT
)
{
/* unix timestamp */
GET_TYPED_DATA
(
timeVal
,
int64_t
,
type
,
input
);
}
else
if
(
type
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
/* timestamp column*/
GET_TYPED_DATA
(
timeVal
,
int64_t
,
type
,
input
);
int64_t
timeValSec
=
timeVal
/
factor
;
if
(
timeValSec
<
1000000000
)
{
timeVal
=
timeValSec
;
}
}
char
buf
[
20
]
=
{
0
};
NUM_TO_STRING
(
TSDB_DATA_TYPE_BIGINT
,
&
timeVal
,
sizeof
(
buf
),
buf
);
int32_t
tsDigits
=
(
int32_t
)
strlen
(
buf
);
timeUnit
=
timeUnit
*
1000
/
factor
;
switch
(
timeUnit
)
{
case
0
:
{
/* 1u */
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000
*
1000
;
//} else if (tsDigits == TSDB_TIME_PRECISION_MICRO_DIGITS) {
// //timeVal = timeVal / 1000;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
;
}
else
{
timeVal
=
timeVal
*
1
;
}
break
;
}
case
1
:
{
/* 1a */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
*
1
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
*
1000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
){
timeVal
=
timeVal
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
1000
:
{
/* 1s */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
60000
:
{
/* 1m */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
/
60
*
60
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
/
60
*
60
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
/
60
*
60
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
/
factor
/
60
*
60
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
3600000
:
{
/* 1h */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
/
3600
*
3600
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
/
3600
*
3600
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
/
3600
*
3600
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
/
factor
/
3600
*
3600
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
86400000
:
{
/* 1d */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
/
86400
*
86400
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
/
86400
*
86400
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
/
86400
*
86400
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
/
factor
/
86400
*
86400
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
604800000
:
{
/* 1w */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
/
604800
*
604800
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
/
604800
*
604800
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
/
604800
*
604800
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
/
factor
/
604800
*
604800
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
default:
{
timeVal
=
timeVal
*
1
;
break
;
}
}
//truncate the timestamp to db precision
switch
(
timePrec
)
{
case
TSDB_TIME_PRECISION_MILLI
:
{
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
;
}
break
;
}
case
TSDB_TIME_PRECISION_MICRO
:
{
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
*
1000
;
}
break
;
}
case
TSDB_TIME_PRECISION_NANO
:
{
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
*
1000000
;
}
break
;
}
}
colDataAppend
(
pOutput
->
columnData
,
i
,
(
char
*
)
&
timeVal
,
false
);
if
(
IS_VAR_DATA_TYPE
(
type
))
{
input
+=
varDataTLen
(
input
);
}
else
{
input
+=
tDataTypes
[
type
].
bytes
;
}
}
pOutput
->
numOfRows
=
pInput
->
numOfRows
;
return
TSDB_CODE_SUCCESS
;
}
int32_t
atanFunction
(
SScalarParam
*
pInput
,
int32_t
inputNum
,
SScalarParam
*
pOutput
)
{
return
doScalarFunctionUnique
(
pInput
,
inputNum
,
pOutput
,
atan
);
}
...
...
tests/script/tmp/back.sim
0 → 100644
浏览文件 @
84a7a9af
sql connect
$x = 1
begin:
sql insert into db.tb values(now, $x ) -x begin
$x = $x + 1
goto begin
tests/script/tmp/data.sim
0 → 100644
浏览文件 @
84a7a9af
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
sql create database db
sql create table db.tb (ts timestamp, i int)
sql insert into db.tb values(now, 1)
print ======== start back
run_back tmp/back.sim
sleep 2000
return -1
tests/script/tsim/query/complex_group.sim
浏览文件 @
84a7a9af
...
...
@@ -97,167 +97,167 @@ print ================ query 1 group by filter
sql select count(*) from ct3 group by c1
print ====> sql : select count(*) from ct3 group by c1
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c2
print ====> sql : select count(*) from ct3 group by c2
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c3
print ====> sql : select count(*) from ct3 group by c3
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c4
print ====> sql : select count(*) from ct3 group by c4
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c5
print ====> sql : select count(*) from ct3 group by c5
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c6
print ====> sql : select count(*) from ct3 group by c6
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c7
print ====> sql : select count(*) from ct3 group by c7
print ====> rows: $rows
if $rows !=
2
then
if $rows !=
3
then
return -1
endi
sql select count(*) from ct3 group by c8
print ====> sql : select count(*) from ct3 group by c8
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c9
print ====> sql : select count(*) from ct3 group by c9
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c10
print ====> sql : select count(*) from ct3 group by c10
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
print ================ query 2 complex with group by
sql select count(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 1
print ====> sql : select count(c1) from ct3 where c1 > 2 group by c7 limit 1 offset
2
print ====> sql : select count(c1) from ct3 where c1 > 2 group by c7 limit 1 offset
1
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select abs(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select abs(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select abs(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select abs(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select acos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select acos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select acos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select acos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select asin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select asin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select asin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select asin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select atan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select atan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select atan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select atan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select ceil(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select ceil(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select ceil(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select ceil(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select cos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select cos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select cos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select cos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select floor(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select floor(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select floor(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select floor(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select log(c1,10) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select log(c1,10) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select log(c1,10) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select log(c1,10) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select pow(c1,3) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select pow(c1,3) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select pow(c1,3) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select pow(c1,3) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select round(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select round(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select round(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select round(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select sqrt(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select sqrt(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select sqrt(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select sqrt(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select sin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select sin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select sin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select sin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select tan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select tan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select tan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select tan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
...
...
@@ -307,170 +307,170 @@ print ================ query 1 group by filter
sql select count(*) from ct3 group by c1
print ====> sql : select count(*) from ct3 group by c1
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c2
print ====> sql : select count(*) from ct3 group by c2
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c3
print ====> sql : select count(*) from ct3 group by c3
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c4
print ====> sql : select count(*) from ct3 group by c4
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c5
print ====> sql : select count(*) from ct3 group by c5
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c6
print ====> sql : select count(*) from ct3 group by c6
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c7
print ====> sql : select count(*) from ct3 group by c7
print ====> rows: $rows
if $rows !=
2
then
if $rows !=
3
then
return -1
endi
sql select count(*) from ct3 group by c8
print ====> sql : select count(*) from ct3 group by c8
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c9
print ====> sql : select count(*) from ct3 group by c9
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
sql select count(*) from ct3 group by c10
print ====> sql : select count(*) from ct3 group by c10
print ====> rows: $rows
if $rows !=
8
then
if $rows !=
9
then
return -1
endi
print ================ query 2 complex with group by
sql select count(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 1
print ====> sql : select count(c1) from ct3 where c1 > 2 group by c7 limit 1 offset
2
print ====> sql : select count(c1) from ct3 where c1 > 2 group by c7 limit 1 offset
1
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select abs(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select abs(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select abs(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select abs(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select acos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select acos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select acos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select acos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select asin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select asin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select asin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select asin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select atan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select atan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select atan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select atan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select ceil(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select ceil(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select ceil(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select ceil(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select cos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select cos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select cos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select cos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select floor(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select floor(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select floor(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select floor(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select log(c1,10) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select log(c1,10) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select log(c1,10) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select log(c1,10) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select pow(c1,3) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select pow(c1,3) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select pow(c1,3) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select pow(c1,3) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select round(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select round(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select round(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select round(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select sqrt(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select sqrt(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select sqrt(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select sqrt(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select sin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select sin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select sin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select sin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select tan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
print ====> sql : select tan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 2
sql select tan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select tan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
#system sh/exec.sh -n dnode1 -s stop -x SIGINT
\ No newline at end of file
system sh/exec.sh -n dnode1 -s stop -x SIGINT
\ No newline at end of file
tests/script/tsim/query/complex_having.sim
浏览文件 @
84a7a9af
...
...
@@ -77,9 +77,9 @@ sql insert into ct4 values ( '2022-05-21 01:01:01.000', NULL, NULL, NULL, NULL,
print ================ start query ======================
print ================ query 1 having condition
sql
_error
select c1 from ct1 group by c1 having count(c1)
sql
_error
select c1 from ct4 group by c1 having count(c1)
sql
_error
select count(c1) from ct1 group by c1 having count(c1)
sql select c1 from ct1 group by c1 having count(c1)
sql select c1 from ct4 group by c1 having count(c1)
sql select count(c1) from ct1 group by c1 having count(c1)
sql select sum(c1) ,count(c7) from ct4 group by c7 having count(c7) > 1 ;
print ====> sql : select sum(c1) ,count(c7) from ct4 group by c7 having count(c7) > 1 ;
...
...
@@ -98,22 +98,22 @@ endi
sql select sum(c1) ,count(c1) from ct4 group by c1 having count(c7) < 2 and sum(c1) > 2 ;
print ====> sql : select sum(c1) ,count(c1) from ct4 group by c1 having count(c7) < 2 and sum(c1) > 2 ;
print ====> rows: $rows
if $rows !=
2
then
if $rows !=
7
then
return -1
endi
sql select sum(c1) ,count(c1) from ct4 group by c1 having count(c7) < 1 or sum(c1) > 2 ;
print ====> sql : select sum(c1) ,count(c1) from ct4 group by c1 having count(c7) < 1 or sum(c1) > 2 ;
print ====> rows: $rows
if $rows !=
2
then
if $rows !=
7
then
return -1
endi
print ================ query 1 complex with having condition
sql select count(c1) from ct4 where c1 > 2 group by c7 having count(c1)
< 1 limit 1 offset 1
print ====> sql : select count(c1) from ct4 where c1 > 2 group by c7 having count(c1)
< 1 limit 1 offset 1
sql select count(c1) from ct4 where c1 > 2 group by c7 having count(c1)
> 1 limit 1 offset 0
print ====> sql : select count(c1) from ct4 where c1 > 2 group by c7 having count(c1)
> 1 limit 1 offset 0
print ====> rows: $rows
if $rows != 1 then
return -1
...
...
@@ -250,9 +250,9 @@ if $data00 != 20 then
endi
print ================ query 1 having condition
sql
_error
select c1 from ct1 group by c1 having count(c1)
sql
_error
select c1 from ct4 group by c1 having count(c1)
sql
_error
select count(c1) from ct1 group by c1 having count(c1)
sql select c1 from ct1 group by c1 having count(c1)
sql select c1 from ct4 group by c1 having count(c1)
sql select count(c1) from ct1 group by c1 having count(c1)
sql select sum(c1) ,count(c7) from ct4 group by c7 having count(c7) > 1 ;
print ====> sql : select sum(c1) ,count(c7) from ct4 group by c7 having count(c7) > 1 ;
...
...
@@ -271,22 +271,22 @@ endi
sql select sum(c1) ,count(c1) from ct4 group by c1 having count(c7) < 2 and sum(c1) > 2 ;
print ====> sql : select sum(c1) ,count(c1) from ct4 group by c1 having count(c7) < 2 and sum(c1) > 2 ;
print ====> rows: $rows
if $rows !=
2
then
if $rows !=
7
then
return -1
endi
sql select sum(c1) ,count(c1) from ct4 group by c1 having count(c7) < 1 or sum(c1) > 2 ;
print ====> sql : select sum(c1) ,count(c1) from ct4 group by c1 having count(c7) < 1 or sum(c1) > 2 ;
print ====> rows: $rows
if $rows !=
2
then
if $rows !=
7
then
return -1
endi
print ================ query 1 complex with having condition
sql select count(c1) from ct4 where c1 > 2 group by c7 having count(c1)
< 1 limit 1 offset 1
print ====> sql : select count(c1) from ct4 where c1 > 2 group by c7 having count(c1)
< 1 limit 1 offset 1
sql select count(c1) from ct4 where c1 > 2 group by c7 having count(c1)
> 1 limit 1 offset 0
print ====> sql : select count(c1) from ct4 where c1 > 2 group by c7 having count(c1)
> 1 limit 1 offset 0
print ====> rows: $rows
if $rows != 1 then
return -1
...
...
tests/script/tsim/query/complex_where.sim
浏览文件 @
84a7a9af
...
...
@@ -192,14 +192,14 @@ if $data01 != 1 then
return -1
endi
sql select c1 from stb1 where
stb
1 > 5 and c1 <= 6
sql select c1 from stb1 where
c
1 > 5 and c1 <= 6
print ====> sql : select c1 from stb1 where c1 > 5 and c1 <= 6
print ====> rows: $rows
print ====> rows0: $data00
if $rows !=
4
then
if $rows !=
3
then
return -1
endi
if $data0
1
!= 6 then
if $data0
0
!= 6 then
return -1
endi
...
...
@@ -210,7 +210,7 @@ print ====> rows0: $data00
if $rows != 32 then
return -1
endi
if $data0
1
!= 1 then
if $data0
0
!= 1 then
return -1
endi
...
...
@@ -221,7 +221,7 @@ print ====> rows0: $data00
if $rows != 17 then
return -1
endi
if $data0
1
!= 5 then
if $data0
0
!= 5 then
return -1
endi
...
...
@@ -240,7 +240,7 @@ if $rows != 12 then
return -1
endi
sql
_error
select c1 from stb1 where c7 between false and true
sql select c1 from stb1 where c7 between false and true
sql select c1 from stb1 where c1 in (1,2,3)
print ====> sql : select c1 from stb1 where c1 in (1,2,3)
...
...
@@ -272,98 +272,98 @@ endi
print ================ query 2 complex with where
sql select count(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select count(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select count(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select abs(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select abs(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select abs(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select acos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select acos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select acos(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select asin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select asin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select asin(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select atan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select atan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select atan(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select ceil(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select ceil(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select ceil(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select cos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select cos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select cos(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select floor(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select floor(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select floor(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select log(c1,10) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select log(c1,10) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select log(c1,10) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select pow(c1,3) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select pow(c1,3) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select pow(c1,3) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select round(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select round(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select round(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select sqrt(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select sqrt(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select sqrt(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select sin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select sin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select sin(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select tan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select tan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select tan(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
...
...
@@ -510,14 +510,14 @@ if $data01 != 1 then
return -1
endi
sql select c1 from stb1 where
stb
1 > 5 and c1 <= 6
sql select c1 from stb1 where
c
1 > 5 and c1 <= 6
print ====> sql : select c1 from stb1 where c1 > 5 and c1 <= 6
print ====> rows: $rows
print ====> rows0: $data00
if $rows !=
4
then
if $rows !=
3
then
return -1
endi
if $data0
1
!= 6 then
if $data0
0
!= 6 then
return -1
endi
...
...
@@ -528,7 +528,7 @@ print ====> rows0: $data00
if $rows != 32 then
return -1
endi
if $data0
1
!= 1 then
if $data0
0
!= 1 then
return -1
endi
...
...
@@ -539,7 +539,7 @@ print ====> rows0: $data00
if $rows != 17 then
return -1
endi
if $data0
1
!= 5 then
if $data0
0
!= 5 then
return -1
endi
...
...
@@ -558,7 +558,7 @@ if $rows != 12 then
return -1
endi
sql
_error
select c1 from stb1 where c7 between false and true
sql select c1 from stb1 where c7 between false and true
sql select c1 from stb1 where c1 in (1,2,3)
print ====> sql : select c1 from stb1 where c1 in (1,2,3)
...
...
@@ -590,98 +590,98 @@ endi
print ================ query 2 complex with where
sql select count(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select count(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select count(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select abs(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select abs(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select abs(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select acos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select acos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select acos(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select asin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select asin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select asin(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select atan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select atan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select atan(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select ceil(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select ceil(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select ceil(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select cos(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select cos(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select cos(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select floor(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select floor(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select floor(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select log(c1,10) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select log(c1,10) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select log(c1,10) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select pow(c1,3) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select pow(c1,3) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select pow(c1,3) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select round(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select round(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select round(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select sqrt(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select sqrt(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select sqrt(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select sin(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select sin(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select sin(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
return -1
endi
sql select tan(c1) from ct3 where c1 > 2 group by c
7
limit 1 offset 1
sql select tan(c1) from ct3 where c1 > 2 group by c
1
limit 1 offset 1
print ====> sql : select tan(c1) from ct3 where c1 > 2 group by c7 limit 1 offset 2
print ====> rows: $rows
if $rows != 1 then
...
...
tests/script/tsim/tmq/consumerMain.sim
已删除
100644 → 0
浏览文件 @
f9d162ba
#### test scenario, please refer to https://jira.taosdata.com:18090/pages/viewpage.action?pageId=135120406
# scene1: vgroups=1, one topic for one consumer, include: columns from stb/ctb/ntb, * from stb/ctb/ntb, Scalar function from stb/ctb/ntb
# scene2: vgroups=1, multi topics for one consumer, include: columns from stb/ctb/ntb, * from stb/ctb/ntb, Scalar function from stb/ctb/ntb
# scene3: vgroups=4, one topic for one consumer, include: columns from stb/ctb/ntb, * from stb/ctb/ntb, Scalar function from stb/ctb/ntb
# scene4: vgroups=4, multi topics for one consumer, include: columns from stb/ctb/ntb, * from stb/ctb/ntb, Scalar function from stb/ctb/ntb
# notes1: Scalar function: ABS/ACOS/ASIN/ATAN/CEIL/COS/FLOOR/LOG/POW/ROUND/SIN/SQRT/TAN
# The above use cases are combined with where filter conditions, such as: where ts > "2017-08-12 18:25:58.128Z" and sin(a) > 0.5;
#
# notes2: not support aggregate functions(such as sum/count/min/max) and time-windows(interval).
#
######## ######## ######## ######## ######## ######## ######## ######## ######## ########
######## This test case include scene1 and scene3
######## ######## ######## ######## ######## ######## ######## ######## ######## ########
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1
system sh/exec.sh -n dnode1 -s start
$loop_cnt = 0
check_dnode_ready:
$loop_cnt = $loop_cnt + 1
sleep 200
if $loop_cnt == 10 then
print ====> dnode not ready!
return -1
endi
sql show dnodes
print ===> $rows $data00 $data01 $data02 $data03 $data04 $data05
if $data00 != 1 then
return -1
endi
if $data04 != ready then
goto check_dnode_ready
endi
sql connect
$loop_cnt = 0
$vgroups = 1
$dbNamme = d0
loop_vgroups:
print =============== create database $dbNamme vgroups $vgroups
sql create database $dbNamme vgroups $vgroups
sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
print $data10 $data11 $data12 $data13 $data14 $data15 $data16 $data17 $data18 $data19
print $data20 $data21 $data22 $data23 $data24 $data25 $data26 $data27 $data28 $data29
if $loop_cnt == 0 then
if $rows != 2 then
return -1
endi
if $data02 != 1 then # vgroups
print vgroups: $data02
return -1
endi
else
if $rows != 3 then
return -1
endi
if $data00 == d1 then
if $data02 != 4 then # vgroups
print vgroups: $data02
return -1
endi
else
if $data12 != 4 then # vgroups
print vgroups: $data12
return -1
endi
endi
endi
sql use $dbNamme
print =============== create super table
sql create table if not exists stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
sql show stables
if $rows != 1 then
return -1
endi
print =============== create child table
$tbPrefix = ct
$tbNum = 2
$i = 0
while $i < $tbNum
$tb = $tbPrefix . $i
sql create table $tb using stb tags( $i )
$i = $i + 1
endw
print =============== create normal table
sql create table ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
print =============== create multi topics. notes: now only support:
print =============== 1. columns from stb/ctb/ntb; 2. * from ctb/ntb; 3. function from stb/ctb/ntb
print =============== will support: * from stb
sql create topic topic_stb_column as select ts, c1, c3 from stb
#sql create topic topic_stb_all as select * from stb
sql create topic topic_stb_function as select ts, abs(c1), sin(c2) from stb
sql create topic topic_ctb_column as select ts, c1, c3 from ct0
sql create topic topic_ctb_all as select * from ct0
sql create topic topic_ctb_function as select ts, abs(c1), sin(c2) from ct0
sql create topic topic_ntb_column as select ts, c1, c3 from ntb
sql create topic topic_ntb_all as select * from ntb
sql create topic topic_ntb_function as select ts, abs(c1), sin(c2) from ntb
sql show tables
if $rows != 3 then
return -1
endi
print =============== run_back insert data
if $loop_cnt == 0 then
run_back tsim/tmq/insertDataV1.sim
else
run_back tsim/tmq/insertDataV4.sim
endi
sleep 1000
#$rowNum = 1000
#$tstart = 1640966400000 # 2022-01-01 00:00:00.000
#
#$i = 0
#while $i < $tbNum
# $tb = $tbPrefix . $i
#
# $x = 0
# while $x < $rowNum
# $c = $x / 10
# $c = $c * 10
# $c = $x - $c
#
# $binary = ' . binary
# $binary = $binary . $c
# $binary = $binary . '
#
# sql insert into $tb values ($tstart , $c , $x , $binary )
# sql insert into ntb values ($tstart , $c , $x , $binary )
# $tstart = $tstart + 1
# $x = $x + 1
# endw
#
# $i = $i + 1
# $tstart = 1640966400000
#endw
#root@trd02 /home $ tmq_sim --help
# -c Configuration directory, default is
# -d The name of the database for cosumer, no default
# -t The topic string for cosumer, no default
# -k The key-value string for cosumer, no default
# -g showMsgFlag, default is 0
#
$consumeDelay = 5000
$expectConsumeMsgCnt = 1000
print expectConsumeMsgCnt: $expectConsumeMsgCnt, consumeDelay: $consumeDelay
# supported key:
# group.id:<xxx>
# enable.auto.commit:<true | false>
# auto.offset.reset:<earliest | latest | none>
# td.connect.ip:<fqdn | ipaddress>
# td.connect.user:root
# td.connect.pass:taosdata
# td.connect.port:6030
# td.connect.db:db
$expect_result = @{consume success: @
$expect_result = $expect_result . $expectConsumeMsgCnt
$expect_result = $expect_result . @, @
$expect_result = $expect_result . 0}
print expect_result----> $expect_result
print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_stb_column" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_stb_column" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
print cmd result----> $system_content
if $system_content >= $expect_result then
return -1
endi
#print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_stb_all" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
#system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_stb_all" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
#print cmd result----> $system_content
##if $system_content != @{consume success: 10000, 0}@ then
#if $system_content != $expect_result then
# return -1
#endi
print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_stb_function" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_stb_function" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
print cmd result----> $system_content
#if $system_content != @{consume success: 10000, 0}@ then
if $system_content >= $expect_result then
return -1
endi
$expect_result = @{consume success: @
$expect_result = $expect_result . $rowNum
$expect_result = $expect_result . @, @
$expect_result = $expect_result . 0}
print expect_result----> $expect_result
print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ctb_column" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ctb_column" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
print cmd result----> $system_content
if $system_content >= $expect_result then
return -1
endi
print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ctb_all" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ctb_all" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
print cmd result----> $system_content
if $system_content >= $expect_result then
return -1
endi
print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ctb_function" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ctb_function" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
print cmd result----> $system_content
if $system_content >= $expect_result then
return -1
endi
$expect_result = @{consume success: @
$expect_result = $expect_result . $totalMsgCnt
$expect_result = $expect_result . @, @
$expect_result = $expect_result . 0}
print expect_result----> $expect_result
print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ntb_column" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ntb_column" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
print cmd result----> $system_content
if $system_content >= $expect_result then
return -1
endi
print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ntb_all" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ntb_all" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
print cmd result----> $system_content
if $system_content >= $expect_result then
return -1
endi
print cmd===> system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ntb_function" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
system_content ../../debug/tests/test/c/tmq_sim -c ../../sim/tsim/cfg -d $dbNamme -t "topic_ntb_function" -k "group.id:tg2" -y $consumeDelay -m $expectConsumeMsgCnt
print cmd result----> $system_content
if $system_content >= $expect_result then
return -1
endi
if $loop_cnt == 0 then
$loop_cnt = 1
$vgroups = 4
$dbNamme = d1
goto loop_vgroups
endi
#system sh/exec.sh -n dnode1 -s stop -x SIGINT
tests/tsim/src/simSystem.c
浏览文件 @
84a7a9af
...
...
@@ -80,24 +80,24 @@ SScript *simProcessCallOver(SScript *script) {
simExecSuccess
=
false
;
simInfo
(
"script:"
FAILED_PREFIX
"%s"
FAILED_POSTFIX
", "
FAILED_PREFIX
"failed"
FAILED_POSTFIX
", error:%s"
,
script
->
fileName
,
script
->
error
);
return
NULL
;
}
else
{
simExecSuccess
=
true
;
simInfo
(
"script:"
SUCCESS_PREFIX
"%s"
SUCCESS_POSTFIX
", "
SUCCESS_PREFIX
"success"
SUCCESS_POSTFIX
,
script
->
fileName
);
simCloseTaosdConnect
(
script
);
simScriptSucced
++
;
simScriptPos
--
;
simFreeScript
(
script
);
if
(
simScriptPos
==
-
1
)
{
simInfo
(
"----------------------------------------------------------------------"
);
simInfo
(
"Simulation Test Done, "
SUCCESS_PREFIX
"%d"
SUCCESS_POSTFIX
" Passed:
\n
"
,
simScriptSucced
);
return
NULL
;
}
}
return
simScriptList
[
simScriptPos
];
simCloseTaosdConnect
(
script
);
simScriptSucced
++
;
simScriptPos
--
;
simFreeScript
(
script
);
if
(
simScriptPos
==
-
1
&&
simExecSuccess
)
{
simInfo
(
"----------------------------------------------------------------------"
);
simInfo
(
"Simulation Test Done, "
SUCCESS_PREFIX
"%d"
SUCCESS_POSTFIX
" Passed:
\n
"
,
simScriptSucced
);
return
NULL
;
}
return
simScriptList
[
simScriptPos
];
}
else
{
simDebug
(
"script:%s, is stopped"
,
script
->
fileName
);
simFreeScript
(
script
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录