Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4321012a
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4321012a
编写于
4月 25, 2023
作者:
wmmhello
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'main' of
https://github.com/taosdata/TDengine
into fix/TS-3222
上级
d1e5d6e0
d1732137
变更
19
展开全部
隐藏空白更改
内联
并排
Showing
19 changed file
with
2768 addition
and
57 deletion
+2768
-57
source/dnode/mgmt/node_mgmt/src/dmNodes.c
source/dnode/mgmt/node_mgmt/src/dmNodes.c
+4
-0
source/dnode/vnode/src/meta/metaTable.c
source/dnode/vnode/src/meta/metaTable.c
+1
-2
source/dnode/vnode/src/tsdb/tsdbMergeTree.c
source/dnode/vnode/src/tsdb/tsdbMergeTree.c
+4
-0
source/libs/index/src/indexFilter.c
source/libs/index/src/indexFilter.c
+172
-13
source/libs/stream/src/stream.c
source/libs/stream/src/stream.c
+1
-1
source/os/src/osLocale.c
source/os/src/osLocale.c
+1
-1
tests/parallel_test/cases.task
tests/parallel_test/cases.task
+10
-0
tests/parallel_test/run.sh
tests/parallel_test/run.sh
+1
-1
tests/script/tsim/tag/bigint.sim
tests/script/tsim/tag/bigint.sim
+11
-0
tests/script/tsim/tag/double.sim
tests/script/tsim/tag/double.sim
+9
-0
tests/script/tsim/tag/float.sim
tests/script/tsim/tag/float.sim
+10
-0
tests/script/tsim/tag/int.sim
tests/script/tsim/tag/int.sim
+10
-0
tests/script/tsim/tag/int_float.sim
tests/script/tsim/tag/int_float.sim
+12
-0
tests/script/tsim/tag/tinyint.sim
tests/script/tsim/tag/tinyint.sim
+22
-0
tests/system-test/0-others/compatibility.py
tests/system-test/0-others/compatibility.py
+3
-3
tests/system-test/1-insert/database_pre_suf.py
tests/system-test/1-insert/database_pre_suf.py
+229
-35
tests/system-test/2-query/select_null.py
tests/system-test/2-query/select_null.py
+446
-0
tests/system-test/2-query/slimit.py
tests/system-test/2-query/slimit.py
+1821
-0
tests/system-test/7-tmq/tmqCommon.py
tests/system-test/7-tmq/tmqCommon.py
+1
-1
未找到文件。
source/dnode/mgmt/node_mgmt/src/dmNodes.c
浏览文件 @
4321012a
...
@@ -132,11 +132,15 @@ int32_t dmRunDnode(SDnode *pDnode) {
...
@@ -132,11 +132,15 @@ int32_t dmRunDnode(SDnode *pDnode) {
int32_t
count
=
0
;
int32_t
count
=
0
;
if
(
dmOpenNodes
(
pDnode
)
!=
0
)
{
if
(
dmOpenNodes
(
pDnode
)
!=
0
)
{
dError
(
"failed to open nodes since %s"
,
terrstr
());
dError
(
"failed to open nodes since %s"
,
terrstr
());
dmCloseNodes
(
pDnode
);
return
-
1
;
return
-
1
;
}
}
if
(
dmStartNodes
(
pDnode
)
!=
0
)
{
if
(
dmStartNodes
(
pDnode
)
!=
0
)
{
dError
(
"failed to start nodes since %s"
,
terrstr
());
dError
(
"failed to start nodes since %s"
,
terrstr
());
dmSetStatus
(
pDnode
,
DND_STAT_STOPPED
);
dmStopNodes
(
pDnode
);
dmCloseNodes
(
pDnode
);
return
-
1
;
return
-
1
;
}
}
...
...
source/dnode/vnode/src/meta/metaTable.c
浏览文件 @
4321012a
...
@@ -936,8 +936,7 @@ static int metaDropTableByUid(SMeta *pMeta, tb_uid_t uid, int *type) {
...
@@ -936,8 +936,7 @@ static int metaDropTableByUid(SMeta *pMeta, tb_uid_t uid, int *type) {
int
tLen
=
0
;
int
tLen
=
0
;
if
(
tdbTbGet
(
pMeta
->
pUidIdx
,
&
e
.
ctbEntry
.
suid
,
sizeof
(
tb_uid_t
),
&
tData
,
&
tLen
)
==
0
)
{
if
(
tdbTbGet
(
pMeta
->
pUidIdx
,
&
e
.
ctbEntry
.
suid
,
sizeof
(
tb_uid_t
),
&
tData
,
&
tLen
)
==
0
)
{
version
=
((
SUidIdxVal
*
)
tData
)[
0
].
version
;
STbDbKey
tbDbKey
=
{.
uid
=
e
.
ctbEntry
.
suid
,
.
version
=
((
SUidIdxVal
*
)
tData
)[
0
].
version
};
STbDbKey
tbDbKey
=
{.
uid
=
e
.
ctbEntry
.
suid
,
.
version
=
version
};
if
(
tdbTbGet
(
pMeta
->
pTbDb
,
&
tbDbKey
,
sizeof
(
tbDbKey
),
&
tData
,
&
tLen
)
==
0
)
{
if
(
tdbTbGet
(
pMeta
->
pTbDb
,
&
tbDbKey
,
sizeof
(
tbDbKey
),
&
tData
,
&
tLen
)
==
0
)
{
SDecoder
tdc
=
{
0
};
SDecoder
tdc
=
{
0
};
SMetaEntry
stbEntry
=
{
0
};
SMetaEntry
stbEntry
=
{
0
};
...
...
source/dnode/vnode/src/tsdb/tsdbMergeTree.c
浏览文件 @
4321012a
...
@@ -88,6 +88,10 @@ void getLastBlockLoadInfo(SSttBlockLoadInfo *pLoadInfo, int64_t *blocks, double
...
@@ -88,6 +88,10 @@ void getLastBlockLoadInfo(SSttBlockLoadInfo *pLoadInfo, int64_t *blocks, double
}
}
void
*
destroyLastBlockLoadInfo
(
SSttBlockLoadInfo
*
pLoadInfo
)
{
void
*
destroyLastBlockLoadInfo
(
SSttBlockLoadInfo
*
pLoadInfo
)
{
if
(
pLoadInfo
==
NULL
)
{
return
NULL
;
}
for
(
int32_t
i
=
0
;
i
<
pLoadInfo
->
numOfStt
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pLoadInfo
->
numOfStt
;
++
i
)
{
pLoadInfo
[
i
].
currentLoadBlockIndex
=
1
;
pLoadInfo
[
i
].
currentLoadBlockIndex
=
1
;
pLoadInfo
[
i
].
blockIndex
[
0
]
=
-
1
;
pLoadInfo
[
i
].
blockIndex
[
0
]
=
-
1
;
...
...
source/libs/index/src/indexFilter.c
浏览文件 @
4321012a
...
@@ -221,6 +221,71 @@ static FORCE_INLINE int32_t sifInitJsonParam(SNode *node, SIFParam *param, SIFCt
...
@@ -221,6 +221,71 @@ static FORCE_INLINE int32_t sifInitJsonParam(SNode *node, SIFParam *param, SIFCt
param
->
status
=
SFLT_COARSE_INDEX
;
param
->
status
=
SFLT_COARSE_INDEX
;
return
0
;
return
0
;
}
}
static
int32_t
sifNeedConvertCond
(
SNode
*
l
,
SNode
*
r
)
{
if
(
nodeType
(
l
)
!=
QUERY_NODE_COLUMN
||
nodeType
(
r
)
!=
QUERY_NODE_VALUE
)
{
return
0
;
}
SColumnNode
*
c
=
(
SColumnNode
*
)
l
;
SValueNode
*
v
=
(
SValueNode
*
)
r
;
int32_t
ctype
=
c
->
node
.
resType
.
type
;
int32_t
vtype
=
v
->
node
.
resType
.
type
;
if
(
!
IS_VAR_DATA_TYPE
(
ctype
)
&&
IS_VAR_DATA_TYPE
(
vtype
))
{
return
1
;
}
return
0
;
}
static
int32_t
sifInitParamValByCol
(
SNode
*
r
,
SNode
*
l
,
SIFParam
*
param
,
SIFCtx
*
ctx
)
{
param
->
status
=
SFLT_COARSE_INDEX
;
SColumnNode
*
cn
=
(
SColumnNode
*
)
r
;
SValueNode
*
vn
=
(
SValueNode
*
)
l
;
if
(
vn
->
typeData
==
TSDB_DATA_TYPE_NULL
&&
(
vn
->
literal
==
NULL
||
strlen
(
vn
->
literal
)
==
0
))
{
param
->
status
=
SFLT_NOT_INDEX
;
return
0
;
}
SDataType
*
pType
=
&
cn
->
node
.
resType
;
int32_t
type
=
pType
->
type
;
SDataType
*
pVType
=
&
vn
->
node
.
resType
;
int32_t
vtype
=
pVType
->
type
;
char
*
pData
=
nodesGetValueFromNode
(
vn
);
int32_t
valLen
=
0
;
char
**
value
=
&
param
->
condValue
;
if
(
IS_VAR_DATA_TYPE
(
type
))
{
int32_t
dataLen
=
varDataTLen
(
pData
);
if
(
type
==
TSDB_DATA_TYPE_JSON
)
{
if
(
*
pData
==
TSDB_DATA_TYPE_NULL
)
{
dataLen
=
0
;
}
else
if
(
*
pData
==
TSDB_DATA_TYPE_NCHAR
)
{
dataLen
=
varDataTLen
(
pData
);
}
else
if
(
*
pData
==
TSDB_DATA_TYPE_DOUBLE
)
{
dataLen
=
LONG_BYTES
;
}
else
if
(
*
pData
==
TSDB_DATA_TYPE_BOOL
)
{
dataLen
=
CHAR_BYTES
;
}
dataLen
+=
CHAR_BYTES
;
}
valLen
=
dataLen
;
}
else
{
valLen
=
pType
->
bytes
;
}
char
*
tv
=
taosMemoryCalloc
(
1
,
valLen
+
1
);
if
(
tv
==
NULL
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
}
memcpy
(
tv
,
pData
,
valLen
);
*
value
=
tv
;
param
->
colId
=
-
1
;
param
->
colValType
=
(
uint8_t
)(
vn
->
node
.
resType
.
type
);
if
(
vn
->
literal
!=
NULL
&&
strlen
(
vn
->
literal
)
<=
sizeof
(
param
->
colName
))
{
memcpy
(
param
->
colName
,
vn
->
literal
,
strlen
(
vn
->
literal
));
}
else
{
param
->
status
=
SFLT_NOT_INDEX
;
}
return
0
;
}
static
int32_t
sifInitParam
(
SNode
*
node
,
SIFParam
*
param
,
SIFCtx
*
ctx
)
{
static
int32_t
sifInitParam
(
SNode
*
node
,
SIFParam
*
param
,
SIFCtx
*
ctx
)
{
param
->
status
=
SFLT_COARSE_INDEX
;
param
->
status
=
SFLT_COARSE_INDEX
;
switch
(
nodeType
(
node
))
{
switch
(
nodeType
(
node
))
{
...
@@ -317,8 +382,13 @@ static int32_t sifInitOperParams(SIFParam **params, SOperatorNode *node, SIFCtx
...
@@ -317,8 +382,13 @@ static int32_t sifInitOperParams(SIFParam **params, SOperatorNode *node, SIFCtx
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
else
{
}
else
{
SIF_ERR_JRET
(
sifInitParam
(
node
->
pLeft
,
&
paramList
[
0
],
ctx
));
SIF_ERR_JRET
(
sifInitParam
(
node
->
pLeft
,
&
paramList
[
0
],
ctx
));
if
(
nParam
>
1
)
{
if
(
nParam
>
1
)
{
// if (sifNeedConvertCond(node->pLeft, node->pRight)) {
// SIF_ERR_JRET(sifInitParamValByCol(node->pLeft, node->pRight, ¶mList[1], ctx));
// } else {
SIF_ERR_JRET
(
sifInitParam
(
node
->
pRight
,
&
paramList
[
1
],
ctx
));
SIF_ERR_JRET
(
sifInitParam
(
node
->
pRight
,
&
paramList
[
1
],
ctx
));
// }
// if (paramList[0].colValType == TSDB_DATA_TYPE_JSON &&
// if (paramList[0].colValType == TSDB_DATA_TYPE_JSON &&
// ((SOperatorNode *)(node))->opType == OP_TYPE_JSON_CONTAINS) {
// ((SOperatorNode *)(node))->opType == OP_TYPE_JSON_CONTAINS) {
// return TSDB_CODE_OUT_OF_MEMORY;
// return TSDB_CODE_OUT_OF_MEMORY;
...
@@ -404,60 +474,149 @@ static FORCE_INLINE FilterFunc sifGetFilterFunc(EIndexQueryType type, bool *reve
...
@@ -404,60 +474,149 @@ static FORCE_INLINE FilterFunc sifGetFilterFunc(EIndexQueryType type, bool *reve
}
}
return
NULL
;
return
NULL
;
}
}
int32_t
sifStr2Num
(
char
*
buf
,
int32_t
len
,
int8_t
type
,
void
*
val
)
{
// signed/unsigned/float
if
(
IS_SIGNED_NUMERIC_TYPE
(
type
))
{
int64_t
v
=
0
;
if
(
0
!=
toInteger
(
buf
,
len
,
10
,
&
v
))
{
return
-
1
;
}
if
(
type
==
TSDB_DATA_TYPE_BIGINT
)
{
*
(
int64_t
*
)
val
=
v
;
}
else
if
(
type
==
TSDB_DATA_TYPE_INT
)
{
*
(
int32_t
*
)
val
=
v
;
}
else
if
(
type
==
TSDB_DATA_TYPE_TINYINT
)
{
*
(
int8_t
*
)
val
=
v
;
}
else
if
(
type
==
TSDB_DATA_TYPE_SMALLINT
)
{
*
(
int16_t
*
)
val
=
v
;
}
}
else
if
(
IS_FLOAT_TYPE
(
type
))
{
if
(
type
==
TSDB_DATA_TYPE_FLOAT
)
{
*
(
float
*
)
val
=
taosStr2Float
(
buf
,
NULL
);
}
else
{
*
(
double
*
)
val
=
taosStr2Double
(
buf
,
NULL
);
}
}
else
if
(
IS_UNSIGNED_NUMERIC_TYPE
(
type
))
{
uint64_t
v
=
0
;
if
(
0
!=
toUInteger
(
buf
,
len
,
10
,
&
v
))
{
return
-
1
;
}
if
(
type
==
TSDB_DATA_TYPE_UBIGINT
)
{
*
(
uint64_t
*
)
val
=
v
;
}
else
if
(
type
==
TSDB_DATA_TYPE_UINT
)
{
*
(
uint32_t
*
)
val
=
v
;
}
else
if
(
type
==
TSDB_DATA_TYPE_UTINYINT
)
{
*
(
uint8_t
*
)
val
=
v
;
}
else
if
(
type
==
TSDB_DATA_TYPE_USMALLINT
)
{
*
(
uint16_t
*
)
val
=
v
;
}
}
else
{
return
-
1
;
}
return
0
;
}
static
void
sifSetFltParam
(
SIFParam
*
left
,
SIFParam
*
right
,
SDataTypeBuf
*
typedata
,
SMetaFltParam
*
param
)
{
static
int32_t
sifSetFltParam
(
SIFParam
*
left
,
SIFParam
*
right
,
SDataTypeBuf
*
typedata
,
SMetaFltParam
*
param
)
{
int8_t
ltype
=
left
->
colValType
,
rtype
=
right
->
colValType
;
int32_t
code
=
0
;
int8_t
ltype
=
left
->
colValType
,
rtype
=
right
->
colValType
;
if
(
!
IS_NUMERIC_TYPE
(
ltype
)
||
!
((
IS_NUMERIC_TYPE
(
rtype
))
||
rtype
==
TSDB_DATA_TYPE_VARCHAR
))
{
return
-
1
;
}
if
(
ltype
==
TSDB_DATA_TYPE_FLOAT
)
{
if
(
ltype
==
TSDB_DATA_TYPE_FLOAT
)
{
float
f
=
0
;
float
f
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
f
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
f
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_FLOAT
,
&
f
));
}
typedata
->
f
=
f
;
typedata
->
f
=
f
;
param
->
val
=
&
typedata
->
f
;
param
->
val
=
&
typedata
->
f
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_DOUBLE
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_DOUBLE
)
{
double
d
=
0
;
double
d
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
d
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
d
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_DOUBLE
,
&
d
));
}
typedata
->
d
=
d
;
typedata
->
d
=
d
;
param
->
val
=
&
typedata
->
d
;
param
->
val
=
&
typedata
->
d
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_BIGINT
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_BIGINT
)
{
int64_t
i64
=
0
;
int64_t
i64
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
i64
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
i64
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_BIGINT
,
&
i64
));
}
typedata
->
i64
=
i64
;
typedata
->
i64
=
i64
;
param
->
val
=
&
typedata
->
i64
;
param
->
val
=
&
typedata
->
i64
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_INT
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_INT
)
{
int32_t
i32
=
0
;
int32_t
i32
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
i32
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
i32
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_INT
,
&
i32
));
}
typedata
->
i32
=
i32
;
typedata
->
i32
=
i32
;
param
->
val
=
&
typedata
->
i32
;
param
->
val
=
&
typedata
->
i32
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_SMALLINT
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_SMALLINT
)
{
int16_t
i16
=
0
;
int16_t
i16
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
i16
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
i16
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_SMALLINT
,
&
i16
));
}
typedata
->
i16
=
i16
;
typedata
->
i16
=
i16
;
param
->
val
=
&
typedata
->
i16
;
param
->
val
=
&
typedata
->
i16
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_TINYINT
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_TINYINT
)
{
int8_t
i8
=
0
;
int8_t
i8
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
i8
)
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
i8
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_TINYINT
,
&
i8
));
}
typedata
->
i8
=
i8
;
typedata
->
i8
=
i8
;
param
->
val
=
&
typedata
->
i8
;
param
->
val
=
&
typedata
->
i8
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_UBIGINT
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_UBIGINT
)
{
uint64_t
u64
=
0
;
uint64_t
u64
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
u64
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
u64
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_UBIGINT
,
&
u64
));
}
typedata
->
u64
=
u64
;
typedata
->
u64
=
u64
;
param
->
val
=
&
typedata
->
u64
;
param
->
val
=
&
typedata
->
u64
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_UINT
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_UINT
)
{
uint32_t
u32
=
0
;
uint32_t
u32
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
u32
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
u32
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_UINT
,
&
u32
));
}
typedata
->
u32
=
u32
;
typedata
->
u32
=
u32
;
param
->
val
=
&
typedata
->
u32
;
param
->
val
=
&
typedata
->
u32
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_USMALLINT
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_USMALLINT
)
{
uint16_t
u16
=
0
;
uint16_t
u16
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
u16
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
u16
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_USMALLINT
,
&
u16
));
}
typedata
->
u16
=
u16
;
typedata
->
u16
=
u16
;
param
->
val
=
&
typedata
->
u16
;
param
->
val
=
&
typedata
->
u16
;
}
else
if
(
ltype
==
TSDB_DATA_TYPE_UTINYINT
)
{
}
else
if
(
ltype
==
TSDB_DATA_TYPE_UTINYINT
)
{
uint8_t
u8
=
0
;
uint8_t
u8
=
0
;
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
u8
);
if
(
IS_NUMERIC_TYPE
(
rtype
))
{
SIF_DATA_CONVERT
(
rtype
,
right
->
condValue
,
u8
);
}
else
{
SIF_ERR_RET
(
sifStr2Num
(
varDataVal
(
right
->
condValue
),
varDataLen
(
right
->
condValue
),
TSDB_DATA_TYPE_UTINYINT
,
&
u8
));
}
typedata
->
u8
=
u8
;
typedata
->
u8
=
u8
;
param
->
val
=
&
typedata
->
u8
;
param
->
val
=
&
typedata
->
u8
;
}
}
return
0
;
}
}
static
int32_t
sifDoIndex
(
SIFParam
*
left
,
SIFParam
*
right
,
int8_t
operType
,
SIFParam
*
output
)
{
static
int32_t
sifDoIndex
(
SIFParam
*
left
,
SIFParam
*
right
,
int8_t
operType
,
SIFParam
*
output
)
{
int
ret
=
0
;
int
ret
=
0
;
...
@@ -498,7 +657,7 @@ static int32_t sifDoIndex(SIFParam *left, SIFParam *right, int8_t operType, SIFP
...
@@ -498,7 +657,7 @@ static int32_t sifDoIndex(SIFParam *left, SIFParam *right, int8_t operType, SIFP
param
.
val
=
buf
;
param
.
val
=
buf
;
}
}
}
else
{
}
else
{
sifSetFltParam
(
left
,
right
,
&
typedata
,
&
param
)
;
if
(
sifSetFltParam
(
left
,
right
,
&
typedata
,
&
param
)
!=
0
)
return
-
1
;
}
}
ret
=
metaFilterTableIds
(
arg
->
metaEx
,
&
param
,
output
->
result
);
ret
=
metaFilterTableIds
(
arg
->
metaEx
,
&
param
,
output
->
result
);
}
}
...
...
source/libs/stream/src/stream.c
浏览文件 @
4321012a
...
@@ -52,7 +52,7 @@ void streamCleanUp() {
...
@@ -52,7 +52,7 @@ void streamCleanUp() {
void
streamSchedByTimer
(
void
*
param
,
void
*
tmrId
)
{
void
streamSchedByTimer
(
void
*
param
,
void
*
tmrId
)
{
SStreamTask
*
pTask
=
(
void
*
)
param
;
SStreamTask
*
pTask
=
(
void
*
)
param
;
if
(
atomic_load_8
(
&
pTask
->
status
.
taskStatus
)
==
TASK_STATUS__DROPPING
)
{
if
(
streamTaskShouldStop
(
&
pTask
->
status
)
)
{
streamMetaReleaseTask
(
NULL
,
pTask
);
streamMetaReleaseTask
(
NULL
,
pTask
);
return
;
return
;
}
}
...
...
source/os/src/osLocale.c
浏览文件 @
4321012a
...
@@ -171,7 +171,7 @@ void taosGetSystemLocale(char *outLocale, char *outCharset) {
...
@@ -171,7 +171,7 @@ void taosGetSystemLocale(char *outLocale, char *outCharset) {
strcpy
(
outLocale
,
"en_US.UTF-8"
);
strcpy
(
outLocale
,
"en_US.UTF-8"
);
}
else
{
}
else
{
tstrncpy
(
outLocale
,
locale
,
TD_LOCALE_LEN
);
tstrncpy
(
outLocale
,
locale
,
TD_LOCALE_LEN
);
// printf("locale not configured, set to system default:%s
", outLocale);
printf
(
"locale not configured, set to system default:%s
\n
"
,
outLocale
);
}
}
// if user does not specify the charset, extract it from locale
// if user does not specify the charset, extract it from locale
...
...
tests/parallel_test/cases.task
浏览文件 @
4321012a
...
@@ -51,6 +51,16 @@
...
@@ -51,6 +51,16 @@
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/nestedQuery_math.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/nestedQuery_math.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/nestedQuery_time.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/nestedQuery_time.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/nestedQuery_26.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/nestedQuery_26.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/select_null.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/select_null.py -R
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/select_null.py -Q 2
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/select_null.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/select_null.py -Q 4
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/slimit.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/slimit.py -R
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/slimit.py -Q 2
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/slimit.py -Q 3
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/slimit.py -Q 4
,,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/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/dropDbR3ConflictTransaction.py -N 3
...
...
tests/parallel_test/run.sh
浏览文件 @
4321012a
...
@@ -303,7 +303,7 @@ function run_thread() {
...
@@ -303,7 +303,7 @@ function run_thread() {
if
[
!
-z
"
$corefile
"
]
;
then
if
[
!
-z
"
$corefile
"
]
;
then
echo
-e
"
\e
[34m corefiles:
$corefile
\e
[0m"
echo
-e
"
\e
[34m corefiles:
$corefile
\e
[0m"
local
build_dir
=
$log_dir
/build_
${
hosts
[index]
}
local
build_dir
=
$log_dir
/build_
${
hosts
[index]
}
local
remote_build_dir
=
"
${
workdirs
[index]
}
/{DEBUGPATH}/build"
local
remote_build_dir
=
"
${
workdirs
[index]
}
/
$
{
DEBUGPATH
}
/build"
# if [ $ent -ne 0 ]; then
# if [ $ent -ne 0 ]; then
# remote_build_dir="${workdirs[index]}/{DEBUGPATH}/build"
# remote_build_dir="${workdirs[index]}/{DEBUGPATH}/build"
# fi
# fi
...
...
tests/script/tsim/tag/bigint.sim
浏览文件 @
4321012a
...
@@ -123,6 +123,17 @@ sql select * from $mt where tgcol = 1
...
@@ -123,6 +123,17 @@ sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = '1'
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = "1"
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 1
sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
...
...
tests/script/tsim/tag/double.sim
浏览文件 @
4321012a
...
@@ -123,6 +123,15 @@ sql select * from $mt where tgcol = 1
...
@@ -123,6 +123,15 @@ sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = '1';
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = "1.0"
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 1
sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
...
...
tests/script/tsim/tag/float.sim
浏览文件 @
4321012a
...
@@ -123,6 +123,16 @@ sql select * from $mt where tgcol = 1
...
@@ -123,6 +123,16 @@ sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = "1.0"
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = "1"
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 1
sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
...
...
tests/script/tsim/tag/int.sim
浏览文件 @
4321012a
...
@@ -123,6 +123,16 @@ sql select * from $mt where tgcol = 1
...
@@ -123,6 +123,16 @@ sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = '1'
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = "1";
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 1
sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
...
...
tests/script/tsim/tag/int_float.sim
浏览文件 @
4321012a
...
@@ -85,10 +85,22 @@ sql select * from $mt where tgcol <> 1
...
@@ -85,10 +85,22 @@ sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = 1
sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = '1'
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = "1"
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 1
sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
...
...
tests/script/tsim/tag/tinyint.sim
浏览文件 @
4321012a
...
@@ -115,14 +115,36 @@ sql select * from $mt where tgcol = 0
...
@@ -115,14 +115,36 @@ sql select * from $mt where tgcol = 0
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = '0'
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = "0"
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 0
sql select * from $mt where tgcol <> 0
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = 1
sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
endi
endi
sql select * from $mt where tgcol = "1"
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = '1'
if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol <> 1
sql select * from $mt where tgcol <> 1
if $rows != 100 then
if $rows != 100 then
return -1
return -1
...
...
tests/system-test/0-others/compatibility.py
浏览文件 @
4321012a
...
@@ -17,12 +17,12 @@ from util.dnodes import TDDnode
...
@@ -17,12 +17,12 @@ from util.dnodes import TDDnode
from
util.cluster
import
*
from
util.cluster
import
*
import
subprocess
import
subprocess
BASEVERSION
=
"3.0.
1.8
"
BASEVERSION
=
"3.0.
2.3
"
class
TDTestCase
:
class
TDTestCase
:
def
caseDescription
(
self
):
def
caseDescription
(
self
):
'''
f
'''
3.0 data compatibility test
3.0 data compatibility test
case1: basedata version is
3.0.1.8
case1: basedata version is
{
BASEVERSION
}
'''
'''
return
return
...
...
tests/system-test/1-insert/database_pre_suf.py
浏览文件 @
4321012a
此差异已折叠。
点击以展开。
tests/system-test/2-query/select_null.py
0 → 100755
浏览文件 @
4321012a
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import
random
import
os
import
time
import
taos
import
subprocess
from
faker
import
Faker
from
util.log
import
tdLog
from
util.cases
import
tdCases
from
util.sql
import
tdSql
from
util.dnodes
import
tdDnodes
from
util.dnodes
import
*
class
TDTestCase
:
def
init
(
self
,
conn
,
logSql
,
replicaVar
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
(),
logSql
)
self
.
testcasePath
=
os
.
path
.
split
(
__file__
)[
0
]
self
.
testcaseFilename
=
os
.
path
.
split
(
__file__
)[
-
1
]
os
.
system
(
"rm -rf %s/%s.sql"
%
(
self
.
testcasePath
,
self
.
testcaseFilename
))
self
.
db
=
"sel_null"
def
insert_data
(
self
,
database
,
vgroups
):
num_random
=
10
tdSql
.
execute
(
'''drop database if exists %s ;'''
%
database
)
tdSql
.
execute
(
'''create database %s keep 36500 vgroups %d PRECISION 'us';'''
%
(
database
,
vgroups
))
tdSql
.
execute
(
'''use %s;'''
%
database
)
tdSql
.
execute
(
'''create stable %s.stb0 (ts timestamp , c0 int , c1 double , c0null int , c1null double ) tags( t0 tinyint , t1 varchar(16) , t_int int , t_bigint bigint , t_smallint smallint , t_tinyint tinyint , t_bool bool , t_binary binary(100) , t_nchar nchar(100) ,t_float float , t_double double , t_ts timestamp);'''
%
database
)
for
i
in
range
(
5
):
tdSql
.
execute
(
'''create table %s.stb0_%d using %s.stb0 tags(%d,'varchar%d',%d,%d, %d, %d,%d,'binary%d','nchar%d',%d,%d,%d ) ;'''
%
(
database
,
i
,
database
,
i
,
i
,
i
,
i
,
i
,
i
,
i
,
i
,
i
,
i
,
i
,
i
))
# insert data
for
i
in
range
(
num_random
):
for
j
in
range
(
50
):
tdSql
.
execute
(
'''insert into %s.stb0_0 (ts , c1 , c0) values(now, %d, %d) ;'''
%
(
database
,
j
,
j
))
tdSql
.
execute
(
'''insert into %s.stb0_1 (ts , c1 , c0) values(now, %d, %d) ;'''
%
(
database
,
j
,
j
))
tdSql
.
execute
(
'''insert into %s.stb0_2 (ts , c1 , c0) values(now, %d, %d) ;'''
%
(
database
,
j
,
j
))
tdSql
.
execute
(
'''insert into %s.stb0_3 (ts , c1 , c0) values(now, %d, %d) ;'''
%
(
database
,
j
,
j
))
tdSql
.
execute
(
'''insert into %s.stb0_4 (ts , c1 , c0) values(now, %d, %d) ;'''
%
(
database
,
j
,
j
))
tdSql
.
query
(
"select count(*) from %s.stb0;"
%
database
)
tdSql
.
checkData
(
0
,
0
,
5
*
num_random
*
50
)
tdSql
.
query
(
"select count(*) from %s.stb0_0;"
%
database
)
tdSql
.
checkData
(
0
,
0
,
num_random
*
50
)
def
ts_3085
(
self
,
database
):
sql
=
"select count(c0null) from(select * from %s.stb0 limit 20,4) "
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
offset
=
random
.
randint
(
10
,
100
)
for
i
in
range
(
offset
):
sql
=
"select count(c0null) from(select * from %s.stb0 limit %d,%d) "
%
(
database
,
offset
,
i
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select count(c1null) from(select * from %s.stb0 limit %d,%d) "
%
(
database
,
offset
,
i
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select count(c0) from(select * from %s.stb0 limit %d,%d) "
%
(
database
,
offset
,
i
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
i
)
sql
=
"select count(c1) from(select * from %s.stb0 limit %d,%d) "
%
(
database
,
offset
,
i
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
i
)
sql
=
"select count(t0) from(select * from %s.stb0 limit %d,%d) "
%
(
database
,
offset
,
i
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
i
)
sql
=
"select count(t1) from(select * from %s.stb0 limit %d,%d) "
%
(
database
,
offset
,
i
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
i
)
def
ts_2974_max
(
self
,
database
):
sql
=
"select max(c0) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
49
)
sql
=
"select max(c0),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
49
)
sql
=
"select max(c1) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
49
)
sql
=
"select max(c1),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
49
)
sql
=
"select max(c0null) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
"None"
)
sql
=
"select max(c0null),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
"None"
)
sql
=
"select max(c1null) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
"None"
)
sql
=
"select max(c1null),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
"None"
)
sql
=
"select max(t0) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t0),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t1) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select max(t1),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select max(t_bool) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select max(t_bool),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select max(t_binary) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select max(t_binary),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select max(t_nchar) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select max(t_nchar),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select max(t_int) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_int),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_int) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_int),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_int) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_int),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_bigint) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_bigint),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_smallint) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_smallint),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_tinyint) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_tinyint),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_float) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_float),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_double) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
sql
=
"select max(t_double),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
4
)
def
ts_2974_min
(
self
,
database
):
sql
=
"select min(c0) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(c0),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(c1) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(c1),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(c0null) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
"None"
)
sql
=
"select min(c0null),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
"None"
)
sql
=
"select min(c1null) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
"None"
)
sql
=
"select min(c1null),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
"None"
)
sql
=
"select min(t0) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t0),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t1) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select min(t1),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select min(t_bool) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select min(t_bool),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select min(t_binary) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select min(t_binary),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select min(t_nchar) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select min(t_nchar),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select min(t_int) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_int),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_int) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_int),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_int) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_int),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_bigint) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_bigint),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_smallint) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_smallint),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_tinyint) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_tinyint),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_float) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_float),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_double) from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
sql
=
"select min(t_double),ts from %s.stb0 where ts<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
0
)
def
ts_2601
(
self
,
database
):
tdSql
.
query
(
"alter local 'keepcolumnname' '0';"
)
sql
=
"select ts,c0 from (select last(*) from %s.stb0 where ts<now);"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"select ts,c0 from (select last(*) from %s.stb0 where ts<now order by ts );"
%
(
database
)
tdSql
.
error
(
sql
)
tdSql
.
query
(
"alter local 'keepcolumnname' '1';"
)
sql
=
"select ts,c0 from (select last(*) from %s.stb0 where ts<now);"
%
(
database
)
tdSql
.
query
(
sql
)
sql
=
"select ts,c0 from (select last(*) from %s.stb0 where ts<now order by ts );"
%
(
database
)
tdSql
.
query
(
sql
)
def
ts_3108
(
self
,
database
):
sql
=
"select count(*) from %s.stb0 where to_unixtimestamp('2023-01-01 00:00:00.000')<now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
2500
)
sql
=
"select count(*) from %s.stb0 where to_unixtimestamp('2023-01-01 00:00:00.000')>now;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkRows
(
0
)
sql
=
"select count(*) from %s.stb0 where to_unixtimestamp('2024-01-01 00:00:00.000')<now+1y;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
0
,
2500
)
sql
=
"select count(*) from %s.stb0 where to_unixtimestamp('2024-01-01 00:00:00.000')>now+1y;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkRows
(
0
)
def
ts_3110
(
self
,
database
):
sql1
=
"select * from %s.stb0 order by ts desc limit 2;"
%
(
database
)
tdSql
.
query
(
sql1
)
data1_0_0
=
tdSql
.
getData
(
0
,
0
)
data1_1_0
=
tdSql
.
getData
(
1
,
0
)
sql2
=
"select * from (select * from %s.stb0 order by ts desc limit 2) order by ts;"
%
(
database
)
tdSql
.
query
(
sql2
)
data2_0_0
=
tdSql
.
getData
(
0
,
0
)
data2_1_0
=
tdSql
.
getData
(
1
,
0
)
if
(
data1_0_0
==
data2_1_0
)
and
(
data1_1_0
==
data2_0_0
):
tdLog
.
info
(
"ts_3110: success"
)
else
:
tdLog
.
exit
(
"ts_3110: sql1 result:'%s' not equal sql2 result:'%s'"
%
(
sql1
,
sql2
))
def
ts_3036
(
self
,
database
):
sql1
=
"select ts , c0 , c1 , c0null , c1null from (select ts , c0 , c1 , c0null , c1null from %s.stb0_0 where ts between now -1d and now +1d
\
union all select ts , c0 , c1 , c0null , c1null from %s.stb0_1 where ts between now -1d and now +1d
\
union all select ts , c0 , c1 , c0null , c1null from %s.stb0_2 where ts between now -1d and now +1d ) tt
\
where ts < now order by tt.ts desc limit 2;"
%
(
database
,
database
,
database
)
tdSql
.
query
(
sql1
)
data1_0_0
=
tdSql
.
getData
(
0
,
0
)
data1_1_0
=
tdSql
.
getData
(
1
,
0
)
sql2
=
"select ts , c0 , c1 , c0null , c1null from (select tbname as tb, ts , c0 , c1 , c0null , c1null from %s.stb0 where ts > now
\
union all select tbname as tb, ts , c0 , c1 , c0null , c1null from %s.stb0 where ts = now
\
union all select tbname as tb, ts , c0 , c1 , c0null , c1null from %s.stb0 where ts < now ) tt
\
where tt.ts between now -1d and now +1d and tt.tb in ('stb0_0','stb0_1','stb0_2') order by tt.ts desc limit 2;"
%
(
database
,
database
,
database
)
tdSql
.
query
(
sql2
)
data2_0_0
=
tdSql
.
getData
(
0
,
0
)
data2_1_0
=
tdSql
.
getData
(
1
,
0
)
sql3
=
"select ts , c0 , c1 , c0null , c1null from %s.stb0
\
where ts between now -1d and now +1d and tbname in ('stb0_0','stb0_1','stb0_2') order by ts desc limit 2;"
%
(
database
)
tdSql
.
query
(
sql3
)
data3_0_0
=
tdSql
.
getData
(
0
,
0
)
data3_1_0
=
tdSql
.
getData
(
1
,
0
)
if
(
data1_0_0
==
data2_0_0
==
data3_0_0
)
and
(
data1_1_0
==
data2_1_0
==
data3_1_0
):
tdLog
.
info
(
"ts_3036: success"
)
else
:
tdLog
.
exit
(
"ts_3036: sql1 result:'%s' not equal sql2 result:'%s' or not equal sql3 result:'%s'"
%
(
sql1
,
sql2
,
sql3
))
def
ts_23569
(
self
,
database
):
tdSql
.
query
(
"alter local 'keepcolumnname' '0';"
)
sql
=
"alter table %s.stb0 drop tag t10;"
%
(
database
)
tdSql
.
error
(
sql
)
error_msg
=
tdSql
.
error
(
sql
)
include_msg
=
'Invalid tag name'
if
include_msg
in
error_msg
:
tdLog
.
info
(
"ts_23569: success"
)
else
:
tdLog
.
exit
(
"ts_23569: include_msg:'%s' not in error_msg:'%s'"
%
(
include_msg
,
error_msg
))
tdSql
.
query
(
"alter local 'keepcolumnname' '1';"
)
sql
=
"alter table %s.stb0 drop tag t10;"
%
(
database
)
tdSql
.
error
(
sql
)
error_msg
=
tdSql
.
error
(
sql
)
include_msg
=
'Invalid tag name'
if
include_msg
in
error_msg
:
tdLog
.
info
(
"ts_23569: success"
)
else
:
tdLog
.
exit
(
"ts_23569: include_msg:'%s' not in error_msg:'%s'"
%
(
include_msg
,
error_msg
))
def
ts_23505
(
self
,
database
):
sql
=
"create table %s.`12345` (`567` timestamp,num int);"
%
(
database
)
tdSql
.
execute
(
sql
)
sql
=
"insert into %s.12345 values (now,1);"
%
(
database
)
tdSql
.
error
(
sql
)
sql
=
"insert into %s.`12345` values (now,1);"
%
(
database
)
tdSql
.
execute
(
sql
)
sql
=
"select * from %s.`12345` order by `567` desc limit 2;"
%
(
database
)
tdSql
.
query
(
sql
)
tdSql
.
checkData
(
0
,
1
,
1
)
sql
=
"drop table %s.`12345` ;"
%
(
database
)
tdSql
.
execute
(
sql
)
sql
=
"select * from %s.`12345` order by `567` desc limit 2;"
%
(
database
)
tdSql
.
error
(
sql
)
def
run
(
self
):
startTime
=
time
.
time
()
os
.
system
(
"rm -rf %s/%s.sql"
%
(
self
.
testcasePath
,
self
.
testcaseFilename
))
self
.
insert_data
(
"%s"
%
self
.
db
,
2
)
self
.
ts_3085
(
"%s"
%
self
.
db
)
self
.
ts_2974_max
(
"%s"
%
self
.
db
)
self
.
ts_2974_min
(
"%s"
%
self
.
db
)
self
.
ts_2601
(
"%s"
%
self
.
db
)
self
.
ts_23569
(
"%s"
%
self
.
db
)
self
.
ts_3108
(
"%s"
%
self
.
db
)
self
.
ts_3110
(
"%s"
%
self
.
db
)
self
.
ts_23505
(
"%s"
%
self
.
db
)
self
.
ts_3036
(
"%s"
%
self
.
db
)
tdSql
.
query
(
"flush database %s"
%
self
.
db
)
self
.
ts_2974_max
(
"%s"
%
self
.
db
)
self
.
ts_2974_min
(
"%s"
%
self
.
db
)
self
.
ts_3085
(
"%s"
%
self
.
db
)
self
.
ts_2601
(
"%s"
%
self
.
db
)
self
.
ts_23569
(
"%s"
%
self
.
db
)
self
.
ts_3108
(
"%s"
%
self
.
db
)
self
.
ts_3110
(
"%s"
%
self
.
db
)
self
.
ts_23505
(
"%s"
%
self
.
db
)
self
.
ts_3036
(
"%s"
%
self
.
db
)
endTime
=
time
.
time
()
print
(
"total time %ds"
%
(
endTime
-
startTime
))
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
tests/system-test/2-query/slimit.py
0 → 100644
浏览文件 @
4321012a
此差异已折叠。
点击以展开。
tests/system-test/7-tmq/tmqCommon.py
浏览文件 @
4321012a
...
@@ -170,7 +170,7 @@ class TMQCom:
...
@@ -170,7 +170,7 @@ class TMQCom:
if
tdSql
.
getData
(
i
,
1
)
==
1
:
if
tdSql
.
getData
(
i
,
1
)
==
1
:
loopFlag
=
0
loopFlag
=
0
break
break
time
.
sleep
(
0.
02
)
time
.
sleep
(
0.
10
)
return
return
def
create_database
(
self
,
tsql
,
dbName
,
dropFlag
=
1
,
vgroups
=
4
,
replica
=
1
):
def
create_database
(
self
,
tsql
,
dbName
,
dropFlag
=
1
,
vgroups
=
4
,
replica
=
1
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录