Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a6e37622
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
a6e37622
编写于
4月 25, 2023
作者:
K
kailixu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: more code
上级
b059cc4e
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
139 addition
and
61 deletion
+139
-61
include/util/tdef.h
include/util/tdef.h
+0
-7
source/client/src/clientSml.c
source/client/src/clientSml.c
+29
-3
source/client/src/clientSmlJson.c
source/client/src/clientSmlJson.c
+0
-2
source/client/src/clientSmlLine.c
source/client/src/clientSmlLine.c
+0
-3
source/client/src/clientSmlTelnet.c
source/client/src/clientSmlTelnet.c
+0
-1
source/libs/parser/src/parTranslater.c
source/libs/parser/src/parTranslater.c
+0
-4
tests/system-test/1-insert/boundary.py
tests/system-test/1-insert/boundary.py
+56
-0
tests/system-test/1-insert/influxdb_line_taosc_insert.py
tests/system-test/1-insert/influxdb_line_taosc_insert.py
+54
-40
tests/system-test/1-insert/stmt_error.py
tests/system-test/1-insert/stmt_error.py
+0
-1
未找到文件。
include/util/tdef.h
浏览文件 @
a6e37622
...
...
@@ -22,13 +22,6 @@
extern
"C"
{
#endif
#if 1
#define TASSERT assert(0);
#else
#define TASSERT
#endif
#define TSDB__packed
#define TSKEY int64_t
...
...
source/client/src/clientSml.c
浏览文件 @
a6e37622
...
...
@@ -624,6 +624,10 @@ static int32_t getBytes(uint8_t type, int32_t length) {
static
int32_t
smlBuildFieldsList
(
SSmlHandle
*
info
,
SSchema
*
schemaField
,
SHashObj
*
schemaHash
,
SArray
*
cols
,
SArray
*
results
,
int32_t
numOfCols
,
bool
isTag
)
{
bool
check
=
numOfCols
==
0
?
true
:
false
;
int32_t
maxLen
=
isTag
?
TSDB_MAX_TAGS_LEN
:
TSDB_MAX_BYTES_PER_ROW
;
int32_t
len
=
0
;
for
(
int
j
=
0
;
j
<
taosArrayGetSize
(
cols
);
++
j
)
{
SSmlKv
*
kv
=
(
SSmlKv
*
)
taosArrayGet
(
cols
,
j
);
ESchemaAction
action
=
SCHEMA_ACTION_NULL
;
...
...
@@ -635,11 +639,17 @@ static int32_t smlBuildFieldsList(SSmlHandle *info, SSchema *schemaField, SHashO
SField
field
=
{
0
};
field
.
type
=
kv
->
type
;
field
.
bytes
=
getBytes
(
kv
->
type
,
kv
->
length
);
if
(
check
)
{
len
+=
field
.
bytes
;
if
(
len
>
maxLen
)
{
code
=
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
uError
(
"smlBuildFieldsList add %s failed since %s"
,
isTag
?
"tag"
:
"col"
,
tstrerror
(
code
));
return
code
;
}
}
memcpy
(
field
.
name
,
kv
->
key
,
kv
->
keyLen
);
taosArrayPush
(
results
,
&
field
);
if
(
numOfCols
==
0
)
{
}
}
else
if
(
action
==
SCHEMA_ACTION_CHANGE_COLUMN_SIZE
||
action
==
SCHEMA_ACTION_CHANGE_TAG_SIZE
)
{
uint16_t
*
index
=
(
uint16_t
*
)
taosHashGet
(
schemaHash
,
kv
->
key
,
kv
->
keyLen
);
if
(
index
==
NULL
)
{
...
...
@@ -650,6 +660,14 @@ static int32_t smlBuildFieldsList(SSmlHandle *info, SSchema *schemaField, SHashO
if
(
isTag
)
newIndex
-=
numOfCols
;
SField
*
field
=
(
SField
*
)
taosArrayGet
(
results
,
newIndex
);
field
->
bytes
=
getBytes
(
kv
->
type
,
kv
->
length
);
if
(
check
)
{
len
+=
(
kv
->
length
-
schemaField
[
*
index
].
bytes
+
VARSTR_HEADER_SIZE
);
if
(
len
>
maxLen
)
{
code
=
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
uError
(
"smlBuildFieldsList change %s failed since %s"
,
isTag
?
"tag"
:
"col"
,
tstrerror
(
code
));
return
code
;
}
}
}
}
return
TSDB_CODE_SUCCESS
;
...
...
@@ -780,11 +798,15 @@ static int32_t smlModifyDBSchemas(SSmlHandle *info) {
code
=
smlBuildFieldsList
(
info
,
NULL
,
NULL
,
sTableData
->
tags
,
pTags
,
0
,
true
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
uError
(
"SML:0x%"
PRIx64
" smlBuildFieldsList tag1 failed. %s"
,
info
->
id
,
pName
.
tname
);
taosArrayDestroy
(
pColumns
);
taosArrayDestroy
(
pTags
);
goto
end
;
}
code
=
smlBuildFieldsList
(
info
,
NULL
,
NULL
,
sTableData
->
cols
,
pColumns
,
0
,
false
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
uError
(
"SML:0x%"
PRIx64
" smlBuildFieldsList col1 failed. %s"
,
info
->
id
,
pName
.
tname
);
taosArrayDestroy
(
pColumns
);
taosArrayDestroy
(
pTags
);
goto
end
;
}
code
=
smlSendMetaMsg
(
info
,
&
pName
,
pColumns
,
pTags
,
NULL
,
SCHEMA_ACTION_CREATE_STABLE
);
...
...
@@ -836,6 +858,8 @@ static int32_t smlModifyDBSchemas(SSmlHandle *info) {
pTableMeta
->
tableInfo
.
numOfColumns
,
true
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
uError
(
"SML:0x%"
PRIx64
" smlBuildFieldsList tag2 failed. %s"
,
info
->
id
,
pName
.
tname
);
taosArrayDestroy
(
pColumns
);
taosArrayDestroy
(
pTags
);
goto
end
;
}
...
...
@@ -890,6 +914,8 @@ static int32_t smlModifyDBSchemas(SSmlHandle *info) {
pTableMeta
->
tableInfo
.
numOfColumns
,
false
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
uError
(
"SML:0x%"
PRIx64
" smlBuildFieldsList col2 failed. %s"
,
info
->
id
,
pName
.
tname
);
taosArrayDestroy
(
pColumns
);
taosArrayDestroy
(
pTags
);
goto
end
;
}
...
...
source/client/src/clientSmlJson.c
浏览文件 @
a6e37622
...
...
@@ -578,12 +578,10 @@ static int32_t smlConvertJSONString(SSmlKv *pVal, char *typeStr, cJSON *value) {
pVal
->
length
=
(
uint16_t
)
strlen
(
value
->
valuestring
);
if
(
pVal
->
type
==
TSDB_DATA_TYPE_BINARY
&&
pVal
->
length
>
TSDB_MAX_BINARY_LEN
-
VARSTR_HEADER_SIZE
)
{
TASSERT
return
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
}
if
(
pVal
->
type
==
TSDB_DATA_TYPE_NCHAR
&&
pVal
->
length
>
(
TSDB_MAX_NCHAR_LEN
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
)
{
TASSERT
return
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
}
...
...
source/client/src/clientSmlLine.c
浏览文件 @
a6e37622
...
...
@@ -81,7 +81,6 @@ int32_t smlParseValue(SSmlKv *pVal, SSmlMsgBuf *msg) {
pVal
->
type
=
TSDB_DATA_TYPE_BINARY
;
pVal
->
length
-=
BINARY_ADD_LEN
;
if
(
pVal
->
length
>
TSDB_MAX_BINARY_LEN
-
VARSTR_HEADER_SIZE
)
{
TASSERT
return
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
}
pVal
->
value
+=
(
BINARY_ADD_LEN
-
1
);
...
...
@@ -95,7 +94,6 @@ int32_t smlParseValue(SSmlKv *pVal, SSmlMsgBuf *msg) {
pVal
->
type
=
TSDB_DATA_TYPE_NCHAR
;
pVal
->
length
-=
NCHAR_ADD_LEN
;
if
(
pVal
->
length
>
(
TSDB_MAX_NCHAR_LEN
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
)
{
TASSERT
return
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
}
pVal
->
value
+=
(
NCHAR_ADD_LEN
-
1
);
...
...
@@ -239,7 +237,6 @@ static int32_t smlParseTagKv(SSmlHandle *info, char **sql, char *sqlEnd, SSmlLin
}
if
(
unlikely
(
valueLen
>
(
TSDB_MAX_TAGS_LEN
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
))
{
TASSERT
return
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
}
...
...
source/client/src/clientSmlTelnet.c
浏览文件 @
a6e37622
...
...
@@ -159,7 +159,6 @@ static int32_t smlParseTelnetTags(SSmlHandle *info, char *data, char *sqlEnd, SS
}
if
(
unlikely
(
valueLen
>
(
TSDB_MAX_TAGS_LEN
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
))
{
TASSERT
return
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
}
...
...
source/libs/parser/src/parTranslater.c
浏览文件 @
a6e37622
...
...
@@ -4500,7 +4500,6 @@ static int32_t checkTableTagsSchema(STranslateContext* pCxt, SHashObj* pHash, SN
if
(
TSDB_CODE_SUCCESS
==
code
)
{
if
((
TSDB_DATA_TYPE_VARCHAR
==
pTag
->
dataType
.
type
&&
calcTypeBytes
(
pTag
->
dataType
)
>
TSDB_MAX_TAGS_LEN
)
||
(
TSDB_DATA_TYPE_NCHAR
==
pTag
->
dataType
.
type
&&
calcTypeBytes
(
pTag
->
dataType
)
>
TSDB_MAX_TAGS_LEN
))
{
TASSERT
code
=
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
);
}
}
...
...
@@ -4552,7 +4551,6 @@ static int32_t checkTableColsSchema(STranslateContext* pCxt, SHashObj* pHash, in
if
(
TSDB_CODE_SUCCESS
==
code
)
{
if
((
TSDB_DATA_TYPE_VARCHAR
==
pCol
->
dataType
.
type
&&
calcTypeBytes
(
pCol
->
dataType
)
>
TSDB_MAX_BINARY_LEN
)
||
(
TSDB_DATA_TYPE_NCHAR
==
pCol
->
dataType
.
type
&&
calcTypeBytes
(
pCol
->
dataType
)
>
TSDB_MAX_NCHAR_LEN
))
{
TASSERT
code
=
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
);
}
}
...
...
@@ -5238,7 +5236,6 @@ static int32_t checkAlterSuperTableBySchema(STranslateContext* pCxt, SAlterTable
if
(
TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES
==
pStmt
->
alterType
)
{
if
(
calcTypeBytes
(
pStmt
->
dataType
)
>
TSDB_MAX_FIELD_LEN
)
{
TASSERT
return
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
);
}
...
...
@@ -5249,7 +5246,6 @@ static int32_t checkAlterSuperTableBySchema(STranslateContext* pCxt, SAlterTable
if
(
TSDB_ALTER_TABLE_UPDATE_TAG_BYTES
==
pStmt
->
alterType
)
{
if
(
calcTypeBytes
(
pStmt
->
dataType
)
>
TSDB_MAX_TAGS_LEN
)
{
TASSERT
return
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
);
}
...
...
tests/system-test/1-insert/boundary.py
浏览文件 @
a6e37622
...
...
@@ -166,6 +166,61 @@ class TDTestCase:
else
:
tdLog
.
exit
(
"error info is not true"
)
tdSql
.
execute
(
'drop database db'
)
def
row_col_tag_maxlen_check
(
self
):
tdSql
.
prepare
()
tdSql
.
execute
(
'use db'
)
tdSql
.
execute
(
'create table if not exists stb1 (ts timestamp, c1 int,c2 binary(1000)) tags (city binary(16382))'
)
tdSql
.
error
(
'create table if not exists stb1 (ts timestamp, c1 int,c2 binary(1000)) tags (city binary(16383))'
)
tdSql
.
execute
(
'create table if not exists stb2 (ts timestamp, c0 tinyint, c1 int, c2 nchar(16379)) tags (city binary(16382))'
)
tdSql
.
error
(
'create table if not exists stb2 (ts timestamp, c0 smallint, c1 int, c2 nchar(16379)) tags (city binary(16382))'
)
tdSql
.
execute
(
'create table if not exists stb3 (ts timestamp, c1 int, c2 binary(65517)) tags (city binary(16382))'
)
tdSql
.
error
(
'create table if not exists stb3 (ts timestamp, c0 bool, c1 int, c2 binary(65517)) tags (city binary(16382))'
)
# prepare the column and tag data
char100
=
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN0123456789'
tag_max_16382
=
''
binary_max_65517
=
''
nchar_max_16379
=
''
for
num
in
range
(
163
):
nchar_max_16379
+=
char100
for
num
in
range
(
4
):
binary_max_65517
+=
char100
nchar_max_16379
+=
'0123456789012345678901234567890123456789012345678901234567890123456789012345678'
tag_max_16382
=
nchar_max_16379
tag_max_16382
+=
'9ab'
for
num
in
range
(
3
):
binary_max_65517
+=
char100
binary_max_65517
+=
'01234567890123456'
# insert/query and check
tdSql
.
execute
(
f
"create table ct1 using stb1 tags('
{
tag_max_16382
}
')"
)
tdSql
.
execute
(
f
"create table ct2 using stb2 tags('
{
tag_max_16382
}
')"
)
tdSql
.
execute
(
f
"create table ct3 using stb3 tags('
{
tag_max_16382
}
')"
)
tdSql
.
execute
(
f
"insert into ct1 values (now,1,'nchar_max_16379')"
)
tdSql
.
execute
(
f
"insert into ct2 values (now,1,1,'
{
nchar_max_16379
}
')"
)
tdSql
.
execute
(
f
"insert into ct3 values (now,1,'
{
binary_max_65517
}
')"
)
tdSql
.
query
(
"select * from stb1"
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
3
],
tag_max_16382
)
tdSql
.
query
(
"select * from ct2"
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
3
],
nchar_max_16379
)
tdSql
.
query
(
"select * from stb2"
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
3
],
nchar_max_16379
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
4
],
tag_max_16382
)
tdSql
.
query
(
"select * from ct3"
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
2
],
binary_max_65517
)
tdSql
.
query
(
"select * from stb3"
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
2
],
binary_max_65517
)
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
3
],
tag_max_16382
)
tdSql
.
execute
(
'drop database db'
)
def
run
(
self
):
self
.
dbname_length_check
()
self
.
tbname_length_check
()
...
...
@@ -174,6 +229,7 @@ class TDTestCase:
self
.
username_length_check
()
self
.
password_length_check
()
self
.
sql_length_check
()
self
.
row_col_tag_maxlen_check
()
def
stop
(
self
):
tdSql
.
close
()
...
...
tests/system-test/1-insert/influxdb_line_taosc_insert.py
浏览文件 @
a6e37622
...
...
@@ -672,28 +672,28 @@ class TDTestCase:
except
SchemalessError
as
err
:
tdSql
.
checkNotEqual
(
err
.
errno
,
0
)
#
# #
binary
# binary
stb_name
=
tdCom
.
getLongName
(
7
,
"letters"
)
input_sql
=
f
'
{
stb_name
}
,t0=t c0=f,c1
1=f,c2=f,c3=f,c4=f,c5=f,c6=f,c7=f,c8=f,c9=f,c10=f,c12=f,c1="
{
tdCom
.
getLongName
(
65519
,
"letters"
)
}
" 1626006833639000000'
input_sql
=
f
'
{
stb_name
}
,t0=t c0=f,c1
="
{
tdCom
.
getLongName
(
65517
,
"letters"
)
}
" 1626006833639000000'
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
# input_sql = f'{stb_name},t0=t c0=f,c1="{tdCom.getLongName(65514
, "letters")}" 1626006833639000000'
#
try:
#
self._conn.schemaless_insert([input_sql], TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
#
except SchemalessError as err:
#
tdSql.checkNotEqual(err.errno, 0)
input_sql
=
f
'
{
stb_name
}
,t0=t c0=f,c1="
{
tdCom
.
getLongName
(
65518
,
"letters"
)
}
" 1626006833639000000'
try
:
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
except
SchemalessError
as
err
:
tdSql
.
checkNotEqual
(
err
.
errno
,
0
)
#
#
nchar
#
#
* legal nchar could not be larger than 16374/4
#
stb_name = tdCom.getLongName(7, "letters")
# input_sql = f'{stb_name},t0=t c0=f,c1=L"{tdCom.getLongName(4093
, "letters")}" 1626006833639000000'
#
self._conn.schemaless_insert([input_sql], TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
# nchar
# * legal nchar could not be larger than 16374/4
stb_name
=
tdCom
.
getLongName
(
7
,
"letters"
)
input_sql
=
f
'
{
stb_name
}
,t0=t c0=f,c1=L"
{
tdCom
.
getLongName
(
16379
,
"letters"
)
}
" 1626006833639000000'
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
# input_sql = f'{stb_name},t0=t c0=f,c1=L"{tdCom.getLongName(4094
, "letters")}" 1626006833639000000'
#
try:
#
self._conn.schemaless_insert([input_sql], TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
#
except SchemalessError as err:
#
tdSql.checkNotEqual(err.errno, 0)
input_sql
=
f
'
{
stb_name
}
,t0=t c0=f,c1=L"
{
tdCom
.
getLongName
(
16380
,
"letters"
)
}
" 1626006833639000000'
try
:
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
except
SchemalessError
as
err
:
tdSql
.
checkNotEqual
(
err
.
errno
,
0
)
def
tagColIllegalValueCheckCase
(
self
):
...
...
@@ -896,26 +896,40 @@ class TDTestCase:
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
# * every binary and nchar must be length+2, so here is two tag, max length could not larger than 16384-2*2
input_sql
=
f
'
{
stb_name
}
,t0=t,t1="
{
tdCom
.
getLongName
(
16374
,
"letters"
)
}
",t2="
{
tdCom
.
getLongName
(
5
,
"letters"
)
}
" c0=f 1626006833639000000'
# input_sql = f'{stb_name}, t1="{tdCom.getLongName(4095, "letters")}"" c0=f 1626006833639000000'
# self._conn.schemaless_insert([input_sql], TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
# tdSql.query(f"select * from {stb_name}")
# tdSql.checkRows(2)
# input_sql = f'{stb_name},t0=t,t1="{tdCom.getLongName(4084, "letters")}",t2="{tdCom.getLongName(6, "letters")}" c0=f 1626006833639000000'
# try:
# self._conn.schemaless_insert([input_sql], TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
# raise Exception("should not reach here")
# except SchemalessError as err:
# tdSql.checkNotEqual(err.errno, 0)
# tdSql.query(f"select * from {stb_name}")
# tdSql.checkRows(2)
# # * check col,col+ts max in describe ---> 16143
input_sql
=
f
'
{
stb_name
}
,t0=t c0=i32,c1="
{
tdCom
.
getLongName
(
65517
,
"letters"
)
}
" 1626006833639000000'
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
tdSql
.
query
(
f
"select * from
{
stb_name
}
"
)
tdSql
.
checkRows
(
2
)
input_sql
=
f
'
{
stb_name
}
,t0=t,t1="
{
tdCom
.
getLongName
(
16374
,
"letters"
)
}
",t2="
{
tdCom
.
getLongName
(
6
,
"letters"
)
}
" c0=f 1626006833639000000'
input_sql
=
f
'
{
stb_name
}
,t0=t c0=i32,c1="
{
tdCom
.
getLongName
(
65517
,
"letters"
)
}
,c2=f" 1626006833639000000'
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
try
:
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
raise
Exception
(
"should not reach here"
)
except
SchemalessError
as
err
:
tdSql
.
checkNotEqual
(
err
.
errno
,
0
)
tdSql
.
query
(
f
"select * from
{
stb_name
}
"
)
tdSql
.
checkRows
(
2
)
# # * check col,col+ts max in describe ---> 16143
input_sql
=
f
'
{
stb_name
}
,t0=t c0=f,c1="
{
tdCom
.
getLongName
(
65517
,
"letters"
)
}
" 1626006833639000000'
input_sql
=
f
'
{
stb_name
}
,t0=t c0=i16,c1="
{
tdCom
.
getLongName
(
49133
,
"letters"
)
}
",c2="
{
tdCom
.
getLongName
(
16384
,
"letters"
)
}
" 1626006833639000000'
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
input_sql
=
f
'
{
stb_name
}
,t0=t c0=
f,c1="
{
tdCom
.
getLongName
(
49133
,
"letters"
)
}
",c2="
{
tdCom
.
getLongName
(
16384
,
"letters"
)
}
" 1626006833639000000'
input_sql
=
f
'
{
stb_name
}
,t0=t c0=
i16,c1="
{
tdCom
.
getLongName
(
49133
,
"letters"
)
}
",c2="
{
tdCom
.
getLongName
(
16384
,
"letters"
)
}
,c3=t
" 1626006833639000000'
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
try
:
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
except
SchemalessError
as
err
:
tdSql
.
checkNotEqual
(
err
.
errno
,
0
)
tdSql
.
query
(
f
"select * from
{
stb_name
}
"
)
tdSql
.
checkRows
(
3
)
...
...
@@ -939,17 +953,17 @@ class TDTestCase:
code
=
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
# * legal nchar could not be larger than 16374/4
input_sql
=
f
'
{
stb_name
}
,t0=t,t1=L"
{
tdCom
.
getLongName
(
4093
,
"letters"
)
}
",t2=L"
{
tdCom
.
getLongName
(
1
,
"letters"
)
}
" c0=f 1626006833639000000'
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
tdSql
.
query
(
f
"select * from
{
stb_name
}
"
)
tdSql
.
checkRows
(
2
)
input_sql
=
f
'
{
stb_name
}
,t0=t,t1=L"
{
tdCom
.
getLongName
(
4093
,
"letters"
)
}
",t2=L"
{
tdCom
.
getLongName
(
2
,
"letters"
)
}
" c0=f 1626006833639000000'
try
:
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
except
SchemalessError
as
err
:
tdSql
.
checkNotEqual
(
err
.
errno
,
0
)
tdSql
.
query
(
f
"select * from
{
stb_name
}
"
)
tdSql
.
checkRows
(
2
)
#
input_sql = f'{stb_name},t0=t,t1=L"{tdCom.getLongName(4093, "letters")}",t2=L"{tdCom.getLongName(1, "letters")}" c0=f 1626006833639000000'
#
self._conn.schemaless_insert([input_sql], TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
#
tdSql.query(f"select * from {stb_name}")
#
tdSql.checkRows(2)
#
input_sql = f'{stb_name},t0=t,t1=L"{tdCom.getLongName(4093, "letters")}",t2=L"{tdCom.getLongName(2, "letters")}" c0=f 1626006833639000000'
#
try:
#
self._conn.schemaless_insert([input_sql], TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value)
#
except SchemalessError as err:
#
tdSql.checkNotEqual(err.errno, 0)
#
tdSql.query(f"select * from {stb_name}")
#
tdSql.checkRows(2)
input_sql
=
f
'
{
stb_name
}
,t0=t c0=f,c1=L"
{
tdCom
.
getLongName
(
4093
,
"letters"
)
}
",c2=L"
{
tdCom
.
getLongName
(
4093
,
"letters"
)
}
",c3=L"
{
tdCom
.
getLongName
(
4093
,
"letters"
)
}
",c4=L"
{
tdCom
.
getLongName
(
4
,
"letters"
)
}
" 1626006833639000000'
self
.
_conn
.
schemaless_insert
([
input_sql
],
TDSmlProtocolType
.
LINE
.
value
,
TDSmlTimestampType
.
NANO_SECOND
.
value
)
...
...
@@ -1283,7 +1297,7 @@ class TDTestCase:
self
.
nowTsCheckCase
()
self
.
dateFormatTsCheckCase
()
self
.
illegalTsCheckCase
()
self
.
tagValueLengthCheckCase
()
#
self.tagValueLengthCheckCase()
self
.
colValueLengthCheckCase
()
self
.
tagColIllegalValueCheckCase
()
self
.
duplicateIdTagColInsertCheckCase
()
...
...
tests/system-test/1-insert/stmt_error.py
浏览文件 @
a6e37622
...
...
@@ -216,7 +216,6 @@ class TDTestCase:
tdLog
.
info
(
'=========stmt error occured for bind part column(NULL Timestamp) =============='
)
else
:
tdLog
.
exit
(
"expect error(%s) not occured - 2"
%
str
(
error
))
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录