未验证 提交 2507ee7e 编写于 作者: D dapan1121 提交者: GitHub

Merge pull request #19612 from taosdata/feat/TS-2081-D

fix: stmt insert for 64k
...@@ -723,7 +723,7 @@ static FORCE_INLINE int doBindParam(STableDataBlocks* pBlock, char* data, SParam ...@@ -723,7 +723,7 @@ static FORCE_INLINE int doBindParam(STableDataBlocks* pBlock, char* data, SParam
if ((*bind->length) > (uintptr_t)param->bytes) { if ((*bind->length) > (uintptr_t)param->bytes) {
return TSDB_CODE_TSC_INVALID_VALUE; return TSDB_CODE_TSC_INVALID_VALUE;
} }
short size = (short)*bind->length; uint16_t size = (uint16_t)*bind->length;
STR_WITH_SIZE_TO_VARSTR(data + param->offset, bind->buffer, size); STR_WITH_SIZE_TO_VARSTR(data + param->offset, bind->buffer, size);
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
} }
...@@ -777,7 +777,7 @@ static FORCE_INLINE int doBindParam(STableDataBlocks* pBlock, char* data, SParam ...@@ -777,7 +777,7 @@ static FORCE_INLINE int doBindParam(STableDataBlocks* pBlock, char* data, SParam
return TSDB_CODE_TSC_INVALID_VALUE; return TSDB_CODE_TSC_INVALID_VALUE;
} }
short size = 0; uint16_t size = 0;
switch(param->type) { switch(param->type) {
case TSDB_DATA_TYPE_BOOL: case TSDB_DATA_TYPE_BOOL:
case TSDB_DATA_TYPE_TINYINT: case TSDB_DATA_TYPE_TINYINT:
...@@ -808,7 +808,7 @@ static FORCE_INLINE int doBindParam(STableDataBlocks* pBlock, char* data, SParam ...@@ -808,7 +808,7 @@ static FORCE_INLINE int doBindParam(STableDataBlocks* pBlock, char* data, SParam
tscError("column length is too big"); tscError("column length is too big");
return TSDB_CODE_TSC_INVALID_VALUE; return TSDB_CODE_TSC_INVALID_VALUE;
} }
size = (short)*pBind->length; size = (uint16_t)*pBind->length;
STR_WITH_SIZE_TO_VARSTR(data + param->offset, pBind->buffer, size); STR_WITH_SIZE_TO_VARSTR(data + param->offset, pBind->buffer, size);
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
......
...@@ -45,7 +45,7 @@ class TDTestCase: ...@@ -45,7 +45,7 @@ class TDTestCase:
conn.execute( conn.execute(
"create table if not exists log(ts timestamp, bo bool, nil tinyint, ti tinyint, si smallint, ii int,\ "create table if not exists log(ts timestamp, bo bool, nil tinyint, ti tinyint, si smallint, ii int,\
bi bigint, tu tinyint unsigned, su smallint unsigned, iu int unsigned, bu bigint unsigned, \ bi bigint, tu tinyint unsigned, su smallint unsigned, iu int unsigned, bu bigint unsigned, \
ff float, dd double, bb binary(100), nn nchar(100), tt timestamp)", ff float, dd double, bb binary(65059), nn nchar(100), tt timestamp)",
) )
conn.load_table_info("log") conn.load_table_info("log")
...@@ -65,7 +65,10 @@ class TDTestCase: ...@@ -65,7 +65,10 @@ class TDTestCase:
params[10].bigint_unsigned(9) params[10].bigint_unsigned(9)
params[11].float(10.1) params[11].float(10.1)
params[12].double(10.11) params[12].double(10.11)
params[13].binary("hello") binaryStr = '123456789'
for i in range(1301):
binaryStr += "1234567890abcdefghij1234567890abcdefghij12345hello"
params[13].binary(binaryStr)
params[14].nchar("stmt") params[14].nchar("stmt")
params[15].timestamp(1626861392589, PrecisionEnum.Milliseconds) params[15].timestamp(1626861392589, PrecisionEnum.Milliseconds)
...@@ -88,7 +91,7 @@ class TDTestCase: ...@@ -88,7 +91,7 @@ class TDTestCase:
#float == may not work as expected #float == may not work as expected
# assert row[10] == c_float(10.1) # assert row[10] == c_float(10.1)
assert row[12] == 10.11 assert row[12] == 10.11
assert row[13] == "hello" assert row[13][65054:] == "hello"
assert row[14] == "stmt" assert row[14] == "stmt"
conn.execute("drop database if exists %s" % dbname) conn.execute("drop database if exists %s" % dbname)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册