Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
7441801e
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看板
提交
7441801e
编写于
8月 15, 2023
作者:
wmmhello
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:support varbinary type
上级
c2417eb5
变更
41
隐藏空白更改
内联
并排
Showing
41 changed file
with
115 addition
and
97 deletion
+115
-97
docs/examples/c/async_query_example.c
docs/examples/c/async_query_example.c
+1
-0
docs/examples/c/query_example.c
docs/examples/c/query_example.c
+1
-0
docs/zh/08-connector/45-php.mdx
docs/zh/08-connector/45-php.mdx
+1
-0
include/common/ttypes.h
include/common/ttypes.h
+2
-2
source/client/src/clientJniConnector.c
source/client/src/clientJniConnector.c
+1
-0
source/client/src/clientMain.c
source/client/src/clientMain.c
+2
-1
source/client/src/clientRawBlockWrite.c
source/client/src/clientRawBlockWrite.c
+6
-6
source/client/src/clientSml.c
source/client/src/clientSml.c
+3
-3
source/client/src/clientSmlJson.c
source/client/src/clientSmlJson.c
+3
-1
source/client/src/clientSmlLine.c
source/client/src/clientSmlLine.c
+1
-1
source/common/src/ttszip.c
source/common/src/ttszip.c
+4
-2
source/common/src/ttypes.c
source/common/src/ttypes.c
+1
-0
source/common/src/tvariant.c
source/common/src/tvariant.c
+9
-4
source/dnode/mnode/impl/src/mndFunc.c
source/dnode/mnode/impl/src/mndFunc.c
+2
-1
source/dnode/mnode/impl/src/mndStb.c
source/dnode/mnode/impl/src/mndStb.c
+4
-2
source/dnode/mnode/impl/src/mndTopic.c
source/dnode/mnode/impl/src/mndTopic.c
+2
-1
source/libs/catalog/src/ctgAsync.c
source/libs/catalog/src/ctgAsync.c
+1
-0
source/libs/command/src/command.c
source/libs/command/src/command.c
+1
-0
source/libs/executor/src/sysscanoperator.c
source/libs/executor/src/sysscanoperator.c
+1
-2
source/libs/executor/src/timewindowoperator.c
source/libs/executor/src/timewindowoperator.c
+1
-1
source/libs/index/src/indexComm.c
source/libs/index/src/indexComm.c
+2
-1
source/libs/index/src/indexJson.c
source/libs/index/src/indexJson.c
+2
-2
source/libs/index/src/indexTfile.c
source/libs/index/src/indexTfile.c
+2
-2
source/libs/parser/src/parInsertSml.c
source/libs/parser/src/parInsertSml.c
+3
-3
source/libs/parser/src/parInsertSql.c
source/libs/parser/src/parInsertSql.c
+22
-1
source/libs/parser/src/parInsertStmt.c
source/libs/parser/src/parInsertStmt.c
+1
-1
source/libs/parser/src/parTokenizer.c
source/libs/parser/src/parTokenizer.c
+1
-0
source/libs/parser/src/parTranslater.c
source/libs/parser/src/parTranslater.c
+1
-1
source/libs/qcom/src/queryUtil.c
source/libs/qcom/src/queryUtil.c
+3
-1
source/libs/scalar/inc/filterInt.h
source/libs/scalar/inc/filterInt.h
+1
-1
source/libs/scalar/src/filter.c
source/libs/scalar/src/filter.c
+5
-2
source/libs/scalar/src/sclvector.c
source/libs/scalar/src/sclvector.c
+7
-51
source/util/src/tcompare.c
source/util/src/tcompare.c
+6
-2
source/util/src/thashutil.c
source/util/src/thashutil.c
+1
-0
source/util/src/tskiplist.c
source/util/src/tskiplist.c
+1
-0
tests/script/api/batchprepare.c
tests/script/api/batchprepare.c
+3
-2
tests/script/api/passwdTest.c
tests/script/api/passwdTest.c
+1
-0
tests/script/api/stmt_function.c
tests/script/api/stmt_function.c
+1
-0
tools/shell/src/shellEngine.c
tools/shell/src/shellEngine.c
+3
-0
utils/test/c/tmqSim.c
utils/test/c/tmqSim.c
+1
-0
utils/tsim/src/simExe.c
utils/tsim/src/simExe.c
+1
-0
未找到文件。
docs/examples/c/async_query_example.c
浏览文件 @
7441801e
...
@@ -78,6 +78,7 @@ int printRow(char *str, TAOS_ROW row, TAOS_FIELD *fields, int numFields) {
...
@@ -78,6 +78,7 @@ int printRow(char *str, TAOS_ROW row, TAOS_FIELD *fields, int numFields) {
}
break
;
}
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
int32_t
charLen
=
varDataLen
((
char
*
)
row
[
i
]
-
VARSTR_HEADER_SIZE
);
int32_t
charLen
=
varDataLen
((
char
*
)
row
[
i
]
-
VARSTR_HEADER_SIZE
);
...
...
docs/examples/c/query_example.c
浏览文件 @
7441801e
...
@@ -76,6 +76,7 @@ int printRow(char *str, TAOS_ROW row, TAOS_FIELD *fields, int numFields) {
...
@@ -76,6 +76,7 @@ int printRow(char *str, TAOS_ROW row, TAOS_FIELD *fields, int numFields) {
}
break
;
}
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
int32_t
charLen
=
varDataLen
((
char
*
)
row
[
i
]
-
VARSTR_HEADER_SIZE
);
int32_t
charLen
=
varDataLen
((
char
*
)
row
[
i
]
-
VARSTR_HEADER_SIZE
);
...
...
docs/zh/08-connector/45-php.mdx
浏览文件 @
7441801e
...
@@ -143,6 +143,7 @@ phpize && ./configure --enable-swoole && make -j && make install
...
@@ -143,6 +143,7 @@ phpize && ./configure --enable-swoole && make -j && make install
| `TDengine\TSDB_DATA_TYPE_FLOAT` | float |
| `TDengine\TSDB_DATA_TYPE_FLOAT` | float |
| `TDengine\TSDB_DATA_TYPE_DOUBLE` | double |
| `TDengine\TSDB_DATA_TYPE_DOUBLE` | double |
| `TDengine\TSDB_DATA_TYPE_BINARY` | binary |
| `TDengine\TSDB_DATA_TYPE_BINARY` | binary |
| `TDengine\TSDB_DATA_TYPE_VARBINARY` | varbinary |
| `TDengine\TSDB_DATA_TYPE_TIMESTAMP` | timestamp |
| `TDengine\TSDB_DATA_TYPE_TIMESTAMP` | timestamp |
| `TDengine\TSDB_DATA_TYPE_NCHAR` | nchar |
| `TDengine\TSDB_DATA_TYPE_NCHAR` | nchar |
| `TDengine\TSDB_DATA_TYPE_UTINYINT` | utinyint |
| `TDengine\TSDB_DATA_TYPE_UTINYINT` | utinyint |
...
...
include/common/ttypes.h
浏览文件 @
7441801e
...
@@ -269,8 +269,8 @@ typedef struct {
...
@@ -269,8 +269,8 @@ typedef struct {
(IS_NUMERIC_TYPE(_t) || (_t) == (TSDB_DATA_TYPE_BOOL) || (_t) == (TSDB_DATA_TYPE_TIMESTAMP))
(IS_NUMERIC_TYPE(_t) || (_t) == (TSDB_DATA_TYPE_BOOL) || (_t) == (TSDB_DATA_TYPE_TIMESTAMP))
#define IS_VAR_DATA_TYPE(t) \
#define IS_VAR_DATA_TYPE(t) \
(((t) == TSDB_DATA_TYPE_VARCHAR) || ((t) == TSDB_DATA_TYPE_NCHAR) || ((t) == TSDB_DATA_TYPE_JSON) || ((t) == TSDB_DATA_TYPE_GEOMETRY))
(((t) == TSDB_DATA_TYPE_VARCHAR) || (
t) == TSDB_DATA_TYPE_VARBINARY || (
(t) == TSDB_DATA_TYPE_NCHAR) || ((t) == TSDB_DATA_TYPE_JSON) || ((t) == TSDB_DATA_TYPE_GEOMETRY))
#define IS_STR_DATA_TYPE(t) (((t) == TSDB_DATA_TYPE_VARCHAR) || ((t) == TSDB_DATA_TYPE_NCHAR))
#define IS_STR_DATA_TYPE(t) (((t) == TSDB_DATA_TYPE_VARCHAR) || ((t) == TSDB_DATA_TYPE_
VARBINARY) || ((t) == TSDB_DATA_TYPE_
NCHAR))
#define IS_VALID_TINYINT(_t) ((_t) >= INT8_MIN && (_t) <= INT8_MAX)
#define IS_VALID_TINYINT(_t) ((_t) >= INT8_MIN && (_t) <= INT8_MAX)
#define IS_VALID_SMALLINT(_t) ((_t) >= INT16_MIN && (_t) <= INT16_MAX)
#define IS_VALID_SMALLINT(_t) ((_t) >= INT16_MIN && (_t) <= INT16_MAX)
...
...
source/client/src/clientJniConnector.c
浏览文件 @
7441801e
...
@@ -580,6 +580,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_fetchRowImp(JNIEn
...
@@ -580,6 +580,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_fetchRowImp(JNIEn
(
*
env
)
->
CallVoidMethod
(
env
,
rowobj
,
g_rowdataSetDoubleFp
,
i
,
(
jdouble
)
dv
);
(
*
env
)
->
CallVoidMethod
(
env
,
rowobj
,
g_rowdataSetDoubleFp
,
i
,
(
jdouble
)
dv
);
}
break
;
}
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
memcpy
(
tmp
,
row
[
i
],
length
[
i
]);
// handle the case that terminated does not exist
memcpy
(
tmp
,
row
[
i
],
length
[
i
]);
// handle the case that terminated does not exist
(
*
env
)
->
CallVoidMethod
(
env
,
rowobj
,
g_rowdataSetStringFp
,
i
,
(
*
env
)
->
NewStringUTF
(
env
,
tmp
));
(
*
env
)
->
CallVoidMethod
(
env
,
rowobj
,
g_rowdataSetStringFp
,
i
,
(
*
env
)
->
NewStringUTF
(
env
,
tmp
));
...
...
source/client/src/clientMain.c
浏览文件 @
7441801e
...
@@ -388,10 +388,11 @@ int taos_print_row(char *str, TAOS_ROW row, TAOS_FIELD *fields, int num_fields)
...
@@ -388,10 +388,11 @@ int taos_print_row(char *str, TAOS_ROW row, TAOS_FIELD *fields, int num_fields)
}
break
;
}
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
int32_t
charLen
=
varDataLen
((
char
*
)
row
[
i
]
-
VARSTR_HEADER_SIZE
);
int32_t
charLen
=
varDataLen
((
char
*
)
row
[
i
]
-
VARSTR_HEADER_SIZE
);
if
(
fields
[
i
].
type
==
TSDB_DATA_TYPE_BINARY
||
fields
[
i
].
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
fields
[
i
].
type
==
TSDB_DATA_TYPE_BINARY
||
fields
[
i
].
type
==
TSDB_DATA_TYPE_
VARBINARY
||
fields
[
i
].
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
if
(
ASSERT
(
charLen
<=
fields
[
i
].
bytes
&&
charLen
>=
0
))
{
if
(
ASSERT
(
charLen
<=
fields
[
i
].
bytes
&&
charLen
>=
0
))
{
tscError
(
"taos_print_row error binary. charLen:%d, fields[i].bytes:%d"
,
charLen
,
fields
[
i
].
bytes
);
tscError
(
"taos_print_row error binary. charLen:%d, fields[i].bytes:%d"
,
charLen
,
fields
[
i
].
bytes
);
}
}
...
...
source/client/src/clientRawBlockWrite.c
浏览文件 @
7441801e
...
@@ -56,7 +56,7 @@ static char* buildCreateTableJson(SSchemaWrapper* schemaRow, SSchemaWrapper* sch
...
@@ -56,7 +56,7 @@ static char* buildCreateTableJson(SSchemaWrapper* schemaRow, SSchemaWrapper* sch
cJSON_AddItemToObject
(
column
,
"name"
,
cname
);
cJSON_AddItemToObject
(
column
,
"name"
,
cname
);
cJSON
*
ctype
=
cJSON_CreateNumber
(
s
->
type
);
cJSON
*
ctype
=
cJSON_CreateNumber
(
s
->
type
);
cJSON_AddItemToObject
(
column
,
"type"
,
ctype
);
cJSON_AddItemToObject
(
column
,
"type"
,
ctype
);
if
(
s
->
type
==
TSDB_DATA_TYPE_BINARY
||
s
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
s
->
type
==
TSDB_DATA_TYPE_BINARY
||
s
->
type
==
TSDB_DATA_TYPE_
VARBINARY
||
s
->
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
int32_t
length
=
s
->
bytes
-
VARSTR_HEADER_SIZE
;
int32_t
length
=
s
->
bytes
-
VARSTR_HEADER_SIZE
;
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON_AddItemToObject
(
column
,
"length"
,
cbytes
);
cJSON_AddItemToObject
(
column
,
"length"
,
cbytes
);
...
@@ -77,7 +77,7 @@ static char* buildCreateTableJson(SSchemaWrapper* schemaRow, SSchemaWrapper* sch
...
@@ -77,7 +77,7 @@ static char* buildCreateTableJson(SSchemaWrapper* schemaRow, SSchemaWrapper* sch
cJSON_AddItemToObject
(
tag
,
"name"
,
tname
);
cJSON_AddItemToObject
(
tag
,
"name"
,
tname
);
cJSON
*
ttype
=
cJSON_CreateNumber
(
s
->
type
);
cJSON
*
ttype
=
cJSON_CreateNumber
(
s
->
type
);
cJSON_AddItemToObject
(
tag
,
"type"
,
ttype
);
cJSON_AddItemToObject
(
tag
,
"type"
,
ttype
);
if
(
s
->
type
==
TSDB_DATA_TYPE_BINARY
||
s
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
s
->
type
==
TSDB_DATA_TYPE_BINARY
||
s
->
type
==
TSDB_DATA_TYPE_
VARBINARY
||
s
->
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
int32_t
length
=
s
->
bytes
-
VARSTR_HEADER_SIZE
;
int32_t
length
=
s
->
bytes
-
VARSTR_HEADER_SIZE
;
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON_AddItemToObject
(
tag
,
"length"
,
cbytes
);
cJSON_AddItemToObject
(
tag
,
"length"
,
cbytes
);
...
@@ -130,7 +130,7 @@ static char* buildAlterSTableJson(void* alterData, int32_t alterDataLen) {
...
@@ -130,7 +130,7 @@ static char* buildAlterSTableJson(void* alterData, int32_t alterDataLen) {
cJSON
*
colType
=
cJSON_CreateNumber
(
field
->
type
);
cJSON
*
colType
=
cJSON_CreateNumber
(
field
->
type
);
cJSON_AddItemToObject
(
json
,
"colType"
,
colType
);
cJSON_AddItemToObject
(
json
,
"colType"
,
colType
);
if
(
field
->
type
==
TSDB_DATA_TYPE_BINARY
||
field
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
field
->
type
==
TSDB_DATA_TYPE_BINARY
||
field
->
type
==
TSDB_DATA_TYPE_
VARBINARY
||
field
->
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
int32_t
length
=
field
->
bytes
-
VARSTR_HEADER_SIZE
;
int32_t
length
=
field
->
bytes
-
VARSTR_HEADER_SIZE
;
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON_AddItemToObject
(
json
,
"colLength"
,
cbytes
);
cJSON_AddItemToObject
(
json
,
"colLength"
,
cbytes
);
...
@@ -155,7 +155,7 @@ static char* buildAlterSTableJson(void* alterData, int32_t alterDataLen) {
...
@@ -155,7 +155,7 @@ static char* buildAlterSTableJson(void* alterData, int32_t alterDataLen) {
cJSON_AddItemToObject
(
json
,
"colName"
,
colName
);
cJSON_AddItemToObject
(
json
,
"colName"
,
colName
);
cJSON
*
colType
=
cJSON_CreateNumber
(
field
->
type
);
cJSON
*
colType
=
cJSON_CreateNumber
(
field
->
type
);
cJSON_AddItemToObject
(
json
,
"colType"
,
colType
);
cJSON_AddItemToObject
(
json
,
"colType"
,
colType
);
if
(
field
->
type
==
TSDB_DATA_TYPE_BINARY
||
field
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
field
->
type
==
TSDB_DATA_TYPE_BINARY
||
field
->
type
==
TSDB_DATA_TYPE_
VARBINARY
||
field
->
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
int32_t
length
=
field
->
bytes
-
VARSTR_HEADER_SIZE
;
int32_t
length
=
field
->
bytes
-
VARSTR_HEADER_SIZE
;
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON_AddItemToObject
(
json
,
"colLength"
,
cbytes
);
cJSON_AddItemToObject
(
json
,
"colLength"
,
cbytes
);
...
@@ -457,7 +457,7 @@ static char* processAlterTable(SMqMetaRsp* metaRsp) {
...
@@ -457,7 +457,7 @@ static char* processAlterTable(SMqMetaRsp* metaRsp) {
cJSON
*
colType
=
cJSON_CreateNumber
(
vAlterTbReq
.
type
);
cJSON
*
colType
=
cJSON_CreateNumber
(
vAlterTbReq
.
type
);
cJSON_AddItemToObject
(
json
,
"colType"
,
colType
);
cJSON_AddItemToObject
(
json
,
"colType"
,
colType
);
if
(
vAlterTbReq
.
type
==
TSDB_DATA_TYPE_BINARY
||
vAlterTbReq
.
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
vAlterTbReq
.
type
==
TSDB_DATA_TYPE_BINARY
||
vAlterTbReq
.
type
==
TSDB_DATA_TYPE_
VARBINARY
||
vAlterTbReq
.
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
int32_t
length
=
vAlterTbReq
.
bytes
-
VARSTR_HEADER_SIZE
;
int32_t
length
=
vAlterTbReq
.
bytes
-
VARSTR_HEADER_SIZE
;
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON_AddItemToObject
(
json
,
"colLength"
,
cbytes
);
cJSON_AddItemToObject
(
json
,
"colLength"
,
cbytes
);
...
@@ -478,7 +478,7 @@ static char* processAlterTable(SMqMetaRsp* metaRsp) {
...
@@ -478,7 +478,7 @@ static char* processAlterTable(SMqMetaRsp* metaRsp) {
cJSON_AddItemToObject
(
json
,
"colName"
,
colName
);
cJSON_AddItemToObject
(
json
,
"colName"
,
colName
);
cJSON
*
colType
=
cJSON_CreateNumber
(
vAlterTbReq
.
colModType
);
cJSON
*
colType
=
cJSON_CreateNumber
(
vAlterTbReq
.
colModType
);
cJSON_AddItemToObject
(
json
,
"colType"
,
colType
);
cJSON_AddItemToObject
(
json
,
"colType"
,
colType
);
if
(
vAlterTbReq
.
colModType
==
TSDB_DATA_TYPE_BINARY
||
vAlterTbReq
.
colModType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
vAlterTbReq
.
colModType
==
TSDB_DATA_TYPE_BINARY
||
vAlterTbReq
.
colModType
==
TSDB_DATA_TYPE_
VARBINARY
||
vAlterTbReq
.
colModType
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
int32_t
length
=
vAlterTbReq
.
colModBytes
-
VARSTR_HEADER_SIZE
;
int32_t
length
=
vAlterTbReq
.
colModBytes
-
VARSTR_HEADER_SIZE
;
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON
*
cbytes
=
cJSON_CreateNumber
(
length
);
cJSON_AddItemToObject
(
json
,
"colLength"
,
cbytes
);
cJSON_AddItemToObject
(
json
,
"colLength"
,
cbytes
);
...
...
source/client/src/clientSml.c
浏览文件 @
7441801e
...
@@ -627,7 +627,7 @@ static int32_t smlFindNearestPowerOf2(int32_t length, uint8_t type) {
...
@@ -627,7 +627,7 @@ static int32_t smlFindNearestPowerOf2(int32_t length, uint8_t type) {
}
}
}
}
if
((
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
&&
result
>
TSDB_MAX_BINARY_LEN
-
VARSTR_HEADER_SIZE
)
{
if
((
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_
VARBINARY
||
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
&&
result
>
TSDB_MAX_BINARY_LEN
-
VARSTR_HEADER_SIZE
)
{
result
=
TSDB_MAX_BINARY_LEN
-
VARSTR_HEADER_SIZE
;
result
=
TSDB_MAX_BINARY_LEN
-
VARSTR_HEADER_SIZE
;
}
else
if
(
type
==
TSDB_DATA_TYPE_NCHAR
&&
result
>
(
TSDB_MAX_NCHAR_LEN
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
)
{
}
else
if
(
type
==
TSDB_DATA_TYPE_NCHAR
&&
result
>
(
TSDB_MAX_NCHAR_LEN
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
)
{
result
=
(
TSDB_MAX_NCHAR_LEN
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
;
result
=
(
TSDB_MAX_NCHAR_LEN
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
;
...
@@ -635,7 +635,7 @@ static int32_t smlFindNearestPowerOf2(int32_t length, uint8_t type) {
...
@@ -635,7 +635,7 @@ static int32_t smlFindNearestPowerOf2(int32_t length, uint8_t type) {
if
(
type
==
TSDB_DATA_TYPE_NCHAR
)
{
if
(
type
==
TSDB_DATA_TYPE_NCHAR
)
{
result
=
result
*
TSDB_NCHAR_SIZE
+
VARSTR_HEADER_SIZE
;
result
=
result
*
TSDB_NCHAR_SIZE
+
VARSTR_HEADER_SIZE
;
}
else
if
(
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
}
else
if
(
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_
VARBINARY
||
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
result
=
result
+
VARSTR_HEADER_SIZE
;
result
=
result
+
VARSTR_HEADER_SIZE
;
}
}
return
result
;
return
result
;
...
@@ -679,7 +679,7 @@ static int32_t smlCheckMeta(SSchema *schema, int32_t length, SArray *cols, bool
...
@@ -679,7 +679,7 @@ static int32_t smlCheckMeta(SSchema *schema, int32_t length, SArray *cols, bool
}
}
static
int32_t
getBytes
(
uint8_t
type
,
int32_t
length
)
{
static
int32_t
getBytes
(
uint8_t
type
,
int32_t
length
)
{
if
(
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_NCHAR
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_
VARBINARY
||
type
==
TSDB_DATA_TYPE_
NCHAR
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
return
smlFindNearestPowerOf2
(
length
,
type
);
return
smlFindNearestPowerOf2
(
length
,
type
);
}
else
{
}
else
{
return
tDataTypes
[
type
].
bytes
;
return
tDataTypes
[
type
].
bytes
;
...
...
source/client/src/clientSmlJson.c
浏览文件 @
7441801e
...
@@ -569,6 +569,8 @@ static int32_t smlConvertJSONNumber(SSmlKv *pVal, char *typeStr, cJSON *value) {
...
@@ -569,6 +569,8 @@ static int32_t smlConvertJSONNumber(SSmlKv *pVal, char *typeStr, cJSON *value) {
static
int32_t
smlConvertJSONString
(
SSmlKv
*
pVal
,
char
*
typeStr
,
cJSON
*
value
)
{
static
int32_t
smlConvertJSONString
(
SSmlKv
*
pVal
,
char
*
typeStr
,
cJSON
*
value
)
{
if
(
strcasecmp
(
typeStr
,
"binary"
)
==
0
)
{
if
(
strcasecmp
(
typeStr
,
"binary"
)
==
0
)
{
pVal
->
type
=
TSDB_DATA_TYPE_BINARY
;
pVal
->
type
=
TSDB_DATA_TYPE_BINARY
;
}
else
if
(
strcasecmp
(
typeStr
,
"varbinary"
)
==
0
)
{
pVal
->
type
=
TSDB_DATA_TYPE_VARBINARY
;
}
else
if
(
strcasecmp
(
typeStr
,
"nchar"
)
==
0
)
{
}
else
if
(
strcasecmp
(
typeStr
,
"nchar"
)
==
0
)
{
pVal
->
type
=
TSDB_DATA_TYPE_NCHAR
;
pVal
->
type
=
TSDB_DATA_TYPE_NCHAR
;
}
else
{
}
else
{
...
@@ -577,7 +579,7 @@ static int32_t smlConvertJSONString(SSmlKv *pVal, char *typeStr, cJSON *value) {
...
@@ -577,7 +579,7 @@ static int32_t smlConvertJSONString(SSmlKv *pVal, char *typeStr, cJSON *value) {
}
}
pVal
->
length
=
strlen
(
value
->
valuestring
);
pVal
->
length
=
strlen
(
value
->
valuestring
);
if
(
pVal
->
type
==
TSDB_DATA_TYPE_BINARY
&&
pVal
->
length
>
TSDB_MAX_BINARY_LEN
-
VARSTR_HEADER_SIZE
)
{
if
(
(
pVal
->
type
==
TSDB_DATA_TYPE_BINARY
||
pVal
->
type
==
TSDB_DATA_TYPE_VARBINARY
)
&&
pVal
->
length
>
TSDB_MAX_BINARY_LEN
-
VARSTR_HEADER_SIZE
)
{
return
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
return
TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN
;
}
}
if
(
pVal
->
type
==
TSDB_DATA_TYPE_NCHAR
&&
if
(
pVal
->
type
==
TSDB_DATA_TYPE_NCHAR
&&
...
...
source/client/src/clientSmlLine.c
浏览文件 @
7441801e
...
@@ -390,7 +390,7 @@ static int32_t smlParseColKv(SSmlHandle *info, char **sql, char *sqlEnd, SSmlLin
...
@@ -390,7 +390,7 @@ static int32_t smlParseColKv(SSmlHandle *info, char **sql, char *sqlEnd, SSmlLin
SSmlKv
kv
=
{.
key
=
tag
->
name
,
.
keyLen
=
strlen
(
tag
->
name
),
.
type
=
tag
->
type
};
SSmlKv
kv
=
{.
key
=
tag
->
name
,
.
keyLen
=
strlen
(
tag
->
name
),
.
type
=
tag
->
type
};
if
(
tag
->
type
==
TSDB_DATA_TYPE_NCHAR
)
{
if
(
tag
->
type
==
TSDB_DATA_TYPE_NCHAR
)
{
kv
.
length
=
(
tag
->
bytes
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
;
kv
.
length
=
(
tag
->
bytes
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
;
}
else
if
(
tag
->
type
==
TSDB_DATA_TYPE_BINARY
)
{
}
else
if
(
tag
->
type
==
TSDB_DATA_TYPE_BINARY
||
tag
->
type
==
TSDB_DATA_TYPE_VARBINARY
)
{
kv
.
length
=
tag
->
bytes
-
VARSTR_HEADER_SIZE
;
kv
.
length
=
tag
->
bytes
-
VARSTR_HEADER_SIZE
;
}
}
taosArrayPush
((
*
tmp
)
->
cols
,
&
kv
);
taosArrayPush
((
*
tmp
)
->
cols
,
&
kv
);
...
...
source/common/src/ttszip.c
浏览文件 @
7441801e
...
@@ -296,7 +296,8 @@ static void writeDataToDisk(STSBuf* pTSBuf) {
...
@@ -296,7 +296,8 @@ static void writeDataToDisk(STSBuf* pTSBuf) {
metaLen
+=
(
int32_t
)
taosWriteFile
(
pTSBuf
->
pFile
,
&
pBlock
->
tag
.
nType
,
sizeof
(
pBlock
->
tag
.
nType
));
metaLen
+=
(
int32_t
)
taosWriteFile
(
pTSBuf
->
pFile
,
&
pBlock
->
tag
.
nType
,
sizeof
(
pBlock
->
tag
.
nType
));
int32_t
trueLen
=
pBlock
->
tag
.
nLen
;
int32_t
trueLen
=
pBlock
->
tag
.
nLen
;
if
(
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_BINARY
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_NCHAR
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_BINARY
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_VARBINARY
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_NCHAR
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
metaLen
+=
(
int32_t
)
taosWriteFile
(
pTSBuf
->
pFile
,
&
pBlock
->
tag
.
nLen
,
sizeof
(
pBlock
->
tag
.
nLen
));
metaLen
+=
(
int32_t
)
taosWriteFile
(
pTSBuf
->
pFile
,
&
pBlock
->
tag
.
nLen
,
sizeof
(
pBlock
->
tag
.
nLen
));
metaLen
+=
(
int32_t
)
taosWriteFile
(
pTSBuf
->
pFile
,
pBlock
->
tag
.
pz
,
(
size_t
)
pBlock
->
tag
.
nLen
);
metaLen
+=
(
int32_t
)
taosWriteFile
(
pTSBuf
->
pFile
,
pBlock
->
tag
.
pz
,
(
size_t
)
pBlock
->
tag
.
nLen
);
}
else
if
(
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_FLOAT
)
{
}
else
if
(
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_FLOAT
)
{
...
@@ -378,7 +379,8 @@ STSBlock* readDataFromDisk(STSBuf* pTSBuf, int32_t order, bool decomp) {
...
@@ -378,7 +379,8 @@ STSBlock* readDataFromDisk(STSBuf* pTSBuf, int32_t order, bool decomp) {
// NOTE: mix types tags are not supported
// NOTE: mix types tags are not supported
size_t
sz
=
0
;
size_t
sz
=
0
;
if
(
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_BINARY
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_NCHAR
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_BINARY
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_VARBINARY
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_NCHAR
||
pBlock
->
tag
.
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
char
*
tp
=
taosMemoryRealloc
(
pBlock
->
tag
.
pz
,
pBlock
->
tag
.
nLen
+
1
);
char
*
tp
=
taosMemoryRealloc
(
pBlock
->
tag
.
pz
,
pBlock
->
tag
.
nLen
+
1
);
ASSERT
(
tp
!=
NULL
);
ASSERT
(
tp
!=
NULL
);
...
...
source/common/src/ttypes.c
浏览文件 @
7441801e
...
@@ -135,6 +135,7 @@ void assignVal(char *val, const char *src, int32_t len, int32_t type) {
...
@@ -135,6 +135,7 @@ void assignVal(char *val, const char *src, int32_t len, int32_t type) {
*
((
int64_t
*
)
val
)
=
GET_INT64_VAL
(
src
);
*
((
int64_t
*
)
val
)
=
GET_INT64_VAL
(
src
);
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
varDataCopy
(
val
,
src
);
varDataCopy
(
val
,
src
);
break
;
break
;
...
...
source/common/src/tvariant.c
浏览文件 @
7441801e
...
@@ -122,6 +122,7 @@ void taosVariantCreateFromBinary(SVariant *pVar, const char *pz, size_t len, uin
...
@@ -122,6 +122,7 @@ void taosVariantCreateFromBinary(SVariant *pVar, const char *pz, size_t len, uin
break
;
break
;
}
}
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
{
// todo refactor, extract a method
case
TSDB_DATA_TYPE_GEOMETRY
:
{
// todo refactor, extract a method
pVar
->
pz
=
taosMemoryCalloc
(
len
+
1
,
sizeof
(
char
));
pVar
->
pz
=
taosMemoryCalloc
(
len
+
1
,
sizeof
(
char
));
memcpy
(
pVar
->
pz
,
pz
,
len
);
memcpy
(
pVar
->
pz
,
pz
,
len
);
...
@@ -141,7 +142,8 @@ void taosVariantDestroy(SVariant *pVar) {
...
@@ -141,7 +142,8 @@ void taosVariantDestroy(SVariant *pVar) {
if
(
pVar
==
NULL
)
return
;
if
(
pVar
==
NULL
)
return
;
if
(
pVar
->
nType
==
TSDB_DATA_TYPE_BINARY
||
pVar
->
nType
==
TSDB_DATA_TYPE_NCHAR
||
if
(
pVar
->
nType
==
TSDB_DATA_TYPE_BINARY
||
pVar
->
nType
==
TSDB_DATA_TYPE_NCHAR
||
pVar
->
nType
==
TSDB_DATA_TYPE_JSON
||
pVar
->
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
pVar
->
nType
==
TSDB_DATA_TYPE_JSON
||
pVar
->
nType
==
TSDB_DATA_TYPE_GEOMETRY
||
pVar
->
nType
==
TSDB_DATA_TYPE_VARBINARY
)
{
taosMemoryFreeClear
(
pVar
->
pz
);
taosMemoryFreeClear
(
pVar
->
pz
);
pVar
->
nLen
=
0
;
pVar
->
nLen
=
0
;
}
}
...
@@ -152,8 +154,9 @@ void taosVariantAssign(SVariant *pDst, const SVariant *pSrc) {
...
@@ -152,8 +154,9 @@ void taosVariantAssign(SVariant *pDst, const SVariant *pSrc) {
if
(
pSrc
==
NULL
||
pDst
==
NULL
)
return
;
if
(
pSrc
==
NULL
||
pDst
==
NULL
)
return
;
pDst
->
nType
=
pSrc
->
nType
;
pDst
->
nType
=
pSrc
->
nType
;
if
(
pSrc
->
nType
==
TSDB_DATA_TYPE_BINARY
||
pSrc
->
nType
==
TSDB_DATA_TYPE_NCHAR
||
if
(
pSrc
->
nType
==
TSDB_DATA_TYPE_BINARY
||
pSrc
->
nType
==
TSDB_DATA_TYPE_VARBINARY
||
pSrc
->
nType
==
TSDB_DATA_TYPE_JSON
||
pSrc
->
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
pSrc
->
nType
==
TSDB_DATA_TYPE_NCHAR
||
pSrc
->
nType
==
TSDB_DATA_TYPE_JSON
||
pSrc
->
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
int32_t
len
=
pSrc
->
nLen
+
TSDB_NCHAR_SIZE
;
int32_t
len
=
pSrc
->
nLen
+
TSDB_NCHAR_SIZE
;
char
*
p
=
taosMemoryRealloc
(
pDst
->
pz
,
len
);
char
*
p
=
taosMemoryRealloc
(
pDst
->
pz
,
len
);
ASSERT
(
p
);
ASSERT
(
p
);
...
@@ -185,7 +188,8 @@ int32_t taosVariantCompare(const SVariant *p1, const SVariant *p2) {
...
@@ -185,7 +188,8 @@ int32_t taosVariantCompare(const SVariant *p1, const SVariant *p2) {
return
1
;
return
1
;
}
}
if
(
p1
->
nType
==
TSDB_DATA_TYPE_BINARY
||
p1
->
nType
==
TSDB_DATA_TYPE_NCHAR
||
p1
->
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
p1
->
nType
==
TSDB_DATA_TYPE_BINARY
||
p1
->
nType
==
TSDB_DATA_TYPE_VARBINARY
||
p1
->
nType
==
TSDB_DATA_TYPE_NCHAR
||
p1
->
nType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
p1
->
nLen
==
p2
->
nLen
)
{
if
(
p1
->
nLen
==
p2
->
nLen
)
{
return
memcmp
(
p1
->
pz
,
p2
->
pz
,
p1
->
nLen
);
return
memcmp
(
p1
->
pz
,
p2
->
pz
,
p1
->
nLen
);
}
else
{
}
else
{
...
@@ -237,6 +241,7 @@ char *taosVariantGet(SVariant *pVar, int32_t type) {
...
@@ -237,6 +241,7 @@ char *taosVariantGet(SVariant *pVar, int32_t type) {
case
TSDB_DATA_TYPE_FLOAT
:
case
TSDB_DATA_TYPE_FLOAT
:
return
(
char
*
)
&
pVar
->
f
;
return
(
char
*
)
&
pVar
->
f
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
return
(
char
*
)
pVar
->
pz
;
return
(
char
*
)
pVar
->
pz
;
...
...
source/dnode/mnode/impl/src/mndFunc.c
浏览文件 @
7441801e
...
@@ -562,7 +562,8 @@ static void *mnodeGenTypeStr(char *buf, int32_t buflen, uint8_t type, int32_t le
...
@@ -562,7 +562,8 @@ static void *mnodeGenTypeStr(char *buf, int32_t buflen, uint8_t type, int32_t le
return
msg
;
return
msg
;
}
}
if
(
type
==
TSDB_DATA_TYPE_NCHAR
||
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
type
==
TSDB_DATA_TYPE_NCHAR
||
type
==
TSDB_DATA_TYPE_VARBINARY
||
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
int32_t
bytes
=
len
>
0
?
(
int32_t
)(
len
-
VARSTR_HEADER_SIZE
)
:
len
;
int32_t
bytes
=
len
>
0
?
(
int32_t
)(
len
-
VARSTR_HEADER_SIZE
)
:
len
;
snprintf
(
buf
,
buflen
-
1
,
"%s(%d)"
,
tDataTypes
[
type
].
name
,
type
==
TSDB_DATA_TYPE_NCHAR
?
bytes
/
4
:
bytes
);
snprintf
(
buf
,
buflen
-
1
,
"%s(%d)"
,
tDataTypes
[
type
].
name
,
type
==
TSDB_DATA_TYPE_NCHAR
?
bytes
/
4
:
bytes
);
...
...
source/dnode/mnode/impl/src/mndStb.c
浏览文件 @
7441801e
...
@@ -1478,7 +1478,8 @@ static int32_t mndAlterStbTagBytes(SMnode *pMnode, const SStbObj *pOld, SStbObj
...
@@ -1478,7 +1478,8 @@ static int32_t mndAlterStbTagBytes(SMnode *pMnode, const SStbObj *pOld, SStbObj
SSchema
*
pTag
=
pNew
->
pTags
+
tag
;
SSchema
*
pTag
=
pNew
->
pTags
+
tag
;
if
(
!
(
pTag
->
type
==
TSDB_DATA_TYPE_BINARY
||
pTag
->
type
==
TSDB_DATA_TYPE_NCHAR
||
pTag
->
type
==
TSDB_DATA_TYPE_GEOMETRY
))
{
if
(
!
(
pTag
->
type
==
TSDB_DATA_TYPE_BINARY
||
pTag
->
type
==
TSDB_DATA_TYPE_VARBINARY
||
pTag
->
type
==
TSDB_DATA_TYPE_NCHAR
||
pTag
->
type
==
TSDB_DATA_TYPE_GEOMETRY
))
{
terrno
=
TSDB_CODE_MND_INVALID_STB_OPTION
;
terrno
=
TSDB_CODE_MND_INVALID_STB_OPTION
;
return
-
1
;
return
-
1
;
}
}
...
@@ -1598,7 +1599,8 @@ static int32_t mndAlterStbColumnBytes(SMnode *pMnode, const SStbObj *pOld, SStbO
...
@@ -1598,7 +1599,8 @@ static int32_t mndAlterStbColumnBytes(SMnode *pMnode, const SStbObj *pOld, SStbO
}
}
SSchema
*
pCol
=
pNew
->
pColumns
+
col
;
SSchema
*
pCol
=
pNew
->
pColumns
+
col
;
if
(
!
(
pCol
->
type
==
TSDB_DATA_TYPE_BINARY
||
pCol
->
type
==
TSDB_DATA_TYPE_NCHAR
||
pCol
->
type
==
TSDB_DATA_TYPE_GEOMETRY
))
{
if
(
!
(
pCol
->
type
==
TSDB_DATA_TYPE_BINARY
||
pCol
->
type
==
TSDB_DATA_TYPE_VARBINARY
||
pCol
->
type
==
TSDB_DATA_TYPE_NCHAR
||
pCol
->
type
==
TSDB_DATA_TYPE_GEOMETRY
))
{
terrno
=
TSDB_CODE_MND_INVALID_STB_OPTION
;
terrno
=
TSDB_CODE_MND_INVALID_STB_OPTION
;
return
-
1
;
return
-
1
;
}
}
...
...
source/dnode/mnode/impl/src/mndTopic.c
浏览文件 @
7441801e
...
@@ -860,7 +860,8 @@ static void schemaToJson(SSchema *schema, int32_t nCols, char *schemaJson){
...
@@ -860,7 +860,8 @@ static void schemaToJson(SSchema *schema, int32_t nCols, char *schemaJson){
cJSON
*
ctype
=
cJSON_CreateString
(
tDataTypes
[
s
->
type
].
name
);
cJSON
*
ctype
=
cJSON_CreateString
(
tDataTypes
[
s
->
type
].
name
);
cJSON_AddItemToObject
(
column
,
"type"
,
ctype
);
cJSON_AddItemToObject
(
column
,
"type"
,
ctype
);
int32_t
length
=
0
;
int32_t
length
=
0
;
if
(
s
->
type
==
TSDB_DATA_TYPE_BINARY
)
{
if
(
s
->
type
==
TSDB_DATA_TYPE_BINARY
||
s
->
type
==
TSDB_DATA_TYPE_VARBINARY
||
s
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
length
=
s
->
bytes
-
VARSTR_HEADER_SIZE
;
length
=
s
->
bytes
-
VARSTR_HEADER_SIZE
;
}
else
if
(
s
->
type
==
TSDB_DATA_TYPE_NCHAR
||
s
->
type
==
TSDB_DATA_TYPE_JSON
)
{
}
else
if
(
s
->
type
==
TSDB_DATA_TYPE_NCHAR
||
s
->
type
==
TSDB_DATA_TYPE_JSON
)
{
length
=
(
s
->
bytes
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
;
length
=
(
s
->
bytes
-
VARSTR_HEADER_SIZE
)
/
TSDB_NCHAR_SIZE
;
...
...
source/libs/catalog/src/ctgAsync.c
浏览文件 @
7441801e
...
@@ -1051,6 +1051,7 @@ void ctgUpdateJobErrCode(SCtgJob* pJob, int32_t errCode) {
...
@@ -1051,6 +1051,7 @@ void ctgUpdateJobErrCode(SCtgJob* pJob, int32_t errCode) {
atomic_store_32
(
&
pJob
->
jobResCode
,
errCode
);
atomic_store_32
(
&
pJob
->
jobResCode
,
errCode
);
qDebug
(
"QID:0x%"
PRIx64
" ctg job errCode updated to %s"
,
pJob
->
queryId
,
tstrerror
(
errCode
));
qDebug
(
"QID:0x%"
PRIx64
" ctg job errCode updated to %s"
,
pJob
->
queryId
,
tstrerror
(
errCode
));
ASSERT
(
0
);
return
;
return
;
}
}
...
...
source/libs/command/src/command.c
浏览文件 @
7441801e
...
@@ -48,6 +48,7 @@ static int32_t buildRetrieveTableRsp(SSDataBlock* pBlock, int32_t numOfCols, SRe
...
@@ -48,6 +48,7 @@ static int32_t buildRetrieveTableRsp(SSDataBlock* pBlock, int32_t numOfCols, SRe
static
int32_t
getSchemaBytes
(
const
SSchema
*
pSchema
)
{
static
int32_t
getSchemaBytes
(
const
SSchema
*
pSchema
)
{
switch
(
pSchema
->
type
)
{
switch
(
pSchema
->
type
)
{
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
return
(
pSchema
->
bytes
-
VARSTR_HEADER_SIZE
);
return
(
pSchema
->
bytes
-
VARSTR_HEADER_SIZE
);
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
...
...
source/libs/executor/src/sysscanoperator.c
浏览文件 @
7441801e
...
@@ -400,8 +400,7 @@ static bool sysTableIsOperatorCondOnOneTable(SNode* pCond, char* condTable) {
...
@@ -400,8 +400,7 @@ static bool sysTableIsOperatorCondOnOneTable(SNode* pCond, char* condTable) {
strcasecmp
(
nodesGetNameFromColumnNode
(
node
->
pLeft
),
"table_name"
)
==
0
&&
strcasecmp
(
nodesGetNameFromColumnNode
(
node
->
pLeft
),
"table_name"
)
==
0
&&
nodeType
(
node
->
pRight
)
==
QUERY_NODE_VALUE
)
{
nodeType
(
node
->
pRight
)
==
QUERY_NODE_VALUE
)
{
SValueNode
*
pValue
=
(
SValueNode
*
)
node
->
pRight
;
SValueNode
*
pValue
=
(
SValueNode
*
)
node
->
pRight
;
if
(
pValue
->
node
.
resType
.
type
==
TSDB_DATA_TYPE_NCHAR
||
pValue
->
node
.
resType
.
type
==
TSDB_DATA_TYPE_VARCHAR
||
if
(
pValue
->
node
.
resType
.
type
==
TSDB_DATA_TYPE_NCHAR
||
pValue
->
node
.
resType
.
type
==
TSDB_DATA_TYPE_VARCHAR
)
{
pValue
->
node
.
resType
.
type
==
TSDB_DATA_TYPE_BINARY
)
{
char
*
value
=
nodesGetValueFromNode
(
pValue
);
char
*
value
=
nodesGetValueFromNode
(
pValue
);
strncpy
(
condTable
,
varDataVal
(
value
),
TSDB_TABLE_NAME_LEN
);
strncpy
(
condTable
,
varDataVal
(
value
),
TSDB_TABLE_NAME_LEN
);
return
true
;
return
true
;
...
...
source/libs/executor/src/timewindowoperator.c
浏览文件 @
7441801e
...
@@ -308,7 +308,7 @@ void doTimeWindowInterpolation(SArray* pPrevValues, SArray* pDataBlock, TSKEY pr
...
@@ -308,7 +308,7 @@ void doTimeWindowInterpolation(SArray* pPrevValues, SArray* pDataBlock, TSKEY pr
pCtx[k].end.key = curTs;
pCtx[k].end.key = curTs;
pCtx[k].end.val = v2;
pCtx[k].end.val = v2;
if (pColInfo->info.type == TSDB_DATA_TYPE_BINARY || pColInfo->info.type == TSDB_DATA_TYPE_NCHAR ||
if (pColInfo->info.type == TSDB_DATA_TYPE_BINARY || pColInfo->info.type == TSDB_DATA_TYPE_
VARBINARY || pColInfo->info.type == TSDB_DATA_TYPE_
NCHAR ||
pColInfo->info.type == TSDB_DATA_TYPE_GEOMETRY) {
pColInfo->info.type == TSDB_DATA_TYPE_GEOMETRY) {
if (prevRowIndex == -1) {
if (prevRowIndex == -1) {
// pCtx[k].start.ptr = (char*)pRuntimeEnv->prevRow[index];
// pCtx[k].start.ptr = (char*)pRuntimeEnv->prevRow[index];
...
...
source/libs/index/src/indexComm.c
浏览文件 @
7441801e
...
@@ -76,7 +76,8 @@ char* idxInt2str(int64_t val, char* dst, int radix) {
...
@@ -76,7 +76,8 @@ char* idxInt2str(int64_t val, char* dst, int radix) {
return
dst
-
1
;
return
dst
-
1
;
}
}
__compar_fn_t
idxGetCompar
(
int8_t
type
)
{
__compar_fn_t
idxGetCompar
(
int8_t
type
)
{
if
(
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_NCHAR
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_VARBINARY
||
type
==
TSDB_DATA_TYPE_NCHAR
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
return
(
__compar_fn_t
)
strcmp
;
return
(
__compar_fn_t
)
strcmp
;
}
}
return
getComparFunc
(
type
,
0
);
return
getComparFunc
(
type
,
0
);
...
...
source/libs/index/src/indexJson.c
浏览文件 @
7441801e
...
@@ -24,7 +24,7 @@ int indexJsonPut(SIndexJson *index, SIndexJsonMultiTerm *terms, uint64_t uid) {
...
@@ -24,7 +24,7 @@ int indexJsonPut(SIndexJson *index, SIndexJsonMultiTerm *terms, uint64_t uid) {
SIndexJsonTerm
*
p
=
taosArrayGetP
(
terms
,
i
);
SIndexJsonTerm
*
p
=
taosArrayGetP
(
terms
,
i
);
if
(
p
->
colType
==
TSDB_DATA_TYPE_BOOL
)
{
if
(
p
->
colType
==
TSDB_DATA_TYPE_BOOL
)
{
p
->
colType
=
TSDB_DATA_TYPE_INT
;
p
->
colType
=
TSDB_DATA_TYPE_INT
;
}
else
if
(
p
->
colType
==
TSDB_DATA_TYPE_VAR
CHAR
||
p
->
colType
==
TSDB_DATA_TYPE_NCHAR
||
}
else
if
(
p
->
colType
==
TSDB_DATA_TYPE_VAR
BINARY
||
p
->
colType
==
TSDB_DATA_TYPE_NCHAR
||
p
->
colType
==
TSDB_DATA_TYPE_BINARY
||
p
->
colType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
p
->
colType
==
TSDB_DATA_TYPE_BINARY
||
p
->
colType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
// p->colType = TSDB_DATA_TYPE_NCHAR;
// p->colType = TSDB_DATA_TYPE_NCHAR;
}
else
{
}
else
{
...
@@ -42,7 +42,7 @@ int indexJsonSearch(SIndexJson *index, SIndexJsonMultiTermQuery *tq, SArray *res
...
@@ -42,7 +42,7 @@ int indexJsonSearch(SIndexJson *index, SIndexJsonMultiTermQuery *tq, SArray *res
SIndexJsonTerm
*
p
=
taosArrayGetP
(
terms
,
i
);
SIndexJsonTerm
*
p
=
taosArrayGetP
(
terms
,
i
);
if
(
p
->
colType
==
TSDB_DATA_TYPE_BOOL
)
{
if
(
p
->
colType
==
TSDB_DATA_TYPE_BOOL
)
{
p
->
colType
=
TSDB_DATA_TYPE_INT
;
p
->
colType
=
TSDB_DATA_TYPE_INT
;
}
else
if
(
p
->
colType
==
TSDB_DATA_TYPE_VAR
CHAR
||
p
->
colType
==
TSDB_DATA_TYPE_NCHAR
||
}
else
if
(
p
->
colType
==
TSDB_DATA_TYPE_VAR
BINARY
||
p
->
colType
==
TSDB_DATA_TYPE_NCHAR
||
p
->
colType
==
TSDB_DATA_TYPE_BINARY
||
p
->
colType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
p
->
colType
==
TSDB_DATA_TYPE_BINARY
||
p
->
colType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
// p->colType = TSDB_DATA_TYPE_NCHAR;
// p->colType = TSDB_DATA_TYPE_NCHAR;
}
else
{
}
else
{
...
...
source/libs/index/src/indexTfile.c
浏览文件 @
7441801e
...
@@ -545,8 +545,8 @@ int tfileWriterPut(TFileWriter* tw, void* data, bool order) {
...
@@ -545,8 +545,8 @@ int tfileWriterPut(TFileWriter* tw, void* data, bool order) {
int8_t
colType
=
tw
->
header
.
colType
;
int8_t
colType
=
tw
->
header
.
colType
;
colType
=
IDX_TYPE_GET_TYPE
(
colType
);
colType
=
IDX_TYPE_GET_TYPE
(
colType
);
if
(
colType
==
TSDB_DATA_TYPE_BINARY
||
colType
==
TSDB_DATA_TYPE_
NCHAR
||
if
(
colType
==
TSDB_DATA_TYPE_BINARY
||
colType
==
TSDB_DATA_TYPE_
VARBINARY
||
colType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
colType
==
TSDB_DATA_TYPE_
NCHAR
||
colType
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
fn
=
tfileStrCompare
;
fn
=
tfileStrCompare
;
}
else
{
}
else
{
fn
=
getComparFunc
(
colType
,
0
);
fn
=
getComparFunc
(
colType
,
0
);
...
...
source/libs/parser/src/parInsertSml.c
浏览文件 @
7441801e
...
@@ -134,7 +134,7 @@ static int32_t smlBuildTagRow(SArray* cols, SBoundColInfo* tags, SSchema* pSchem
...
@@ -134,7 +134,7 @@ static int32_t smlBuildTagRow(SArray* cols, SBoundColInfo* tags, SSchema* pSchem
taosArrayPush
(
*
tagName
,
pTagSchema
->
name
);
taosArrayPush
(
*
tagName
,
pTagSchema
->
name
);
STagVal
val
=
{.
cid
=
pTagSchema
->
colId
,
.
type
=
pTagSchema
->
type
};
STagVal
val
=
{.
cid
=
pTagSchema
->
colId
,
.
type
=
pTagSchema
->
type
};
// strcpy(val.colName, pTagSchema->name);
// strcpy(val.colName, pTagSchema->name);
if
(
pTagSchema
->
type
==
TSDB_DATA_TYPE_BINARY
||
if
(
pTagSchema
->
type
==
TSDB_DATA_TYPE_BINARY
||
pTagSchema
->
type
==
TSDB_DATA_TYPE_VARBINARY
||
pTagSchema
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
pTagSchema
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
val
.
pData
=
(
uint8_t
*
)
kv
->
value
;
val
.
pData
=
(
uint8_t
*
)
kv
->
value
;
val
.
nData
=
kv
->
length
;
val
.
nData
=
kv
->
length
;
...
@@ -237,7 +237,7 @@ int32_t smlBuildCol(STableDataCxt* pTableCxt, SSchema* schema, void* data, int32
...
@@ -237,7 +237,7 @@ int32_t smlBuildCol(STableDataCxt* pTableCxt, SSchema* schema, void* data, int32
}
}
pVal
->
value
.
pData
=
pUcs4
;
pVal
->
value
.
pData
=
pUcs4
;
pVal
->
value
.
nData
=
len
;
pVal
->
value
.
nData
=
len
;
}
else
if
(
kv
->
type
==
TSDB_DATA_TYPE_BINARY
||
kv
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
}
else
if
(
kv
->
type
==
TSDB_DATA_TYPE_BINARY
||
kv
->
type
==
TSDB_DATA_TYPE_
VARBINARY
||
kv
->
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
pVal
->
value
.
nData
=
kv
->
length
;
pVal
->
value
.
nData
=
kv
->
length
;
pVal
->
value
.
pData
=
(
uint8_t
*
)
kv
->
value
;
pVal
->
value
.
pData
=
(
uint8_t
*
)
kv
->
value
;
}
else
{
}
else
{
...
@@ -364,7 +364,7 @@ int32_t smlBindData(SQuery* query, bool dataFormat, SArray* tags, SArray* colsSc
...
@@ -364,7 +364,7 @@ int32_t smlBindData(SQuery* query, bool dataFormat, SArray* tags, SArray* colsSc
}
}
pVal
->
value
.
pData
=
pUcs4
;
pVal
->
value
.
pData
=
pUcs4
;
pVal
->
value
.
nData
=
len
;
pVal
->
value
.
nData
=
len
;
}
else
if
(
kv
->
type
==
TSDB_DATA_TYPE_BINARY
||
kv
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
}
else
if
(
kv
->
type
==
TSDB_DATA_TYPE_BINARY
||
kv
->
type
==
TSDB_DATA_TYPE_
VARBINARY
||
kv
->
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
pVal
->
value
.
nData
=
kv
->
length
;
pVal
->
value
.
nData
=
kv
->
length
;
pVal
->
value
.
pData
=
(
uint8_t
*
)
kv
->
value
;
pVal
->
value
.
pData
=
(
uint8_t
*
)
kv
->
value
;
}
else
{
}
else
{
...
...
source/libs/parser/src/parInsertSql.c
浏览文件 @
7441801e
...
@@ -477,7 +477,15 @@ static int32_t parseTagToken(const char** end, SToken* pToken, SSchema* pSchema,
...
@@ -477,7 +477,15 @@ static int32_t parseTagToken(const char** end, SToken* pToken, SSchema* pSchema,
val
->
nData
=
pToken
->
n
;
val
->
nData
=
pToken
->
n
;
break
;
break
;
}
}
case
TSDB_DATA_TYPE_VARBINARY
:
{
// Too long values will raise the invalid sql error message
if
(
pToken
->
n
+
VARSTR_HEADER_SIZE
>
pSchema
->
bytes
)
{
return
generateSyntaxErrMsg
(
pMsgBuf
,
TSDB_CODE_PAR_VALUE_TOO_LONG
,
pSchema
->
name
);
}
val
->
pData
=
taosStrdup
(
pToken
->
z
)
val
->
nData
=
pToken
->
n
;
break
;
}
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
unsigned
char
*
output
=
NULL
;
unsigned
char
*
output
=
NULL
;
size_t
size
=
0
;
size_t
size
=
0
;
...
@@ -1364,6 +1372,19 @@ static int32_t parseValueTokenImpl(SInsertParseContext* pCxt, const char** pSql,
...
@@ -1364,6 +1372,19 @@ static int32_t parseValueTokenImpl(SInsertParseContext* pCxt, const char** pSql,
pVal
->
value
.
nData
=
pToken
->
n
;
pVal
->
value
.
nData
=
pToken
->
n
;
break
;
break
;
}
}
case
TSDB_DATA_TYPE_VARBINARY
:
{
// Too long values will raise the invalid sql error message
if
(
pToken
->
n
+
VARSTR_HEADER_SIZE
>
pSchema
->
bytes
)
{
return
generateSyntaxErrMsg
(
&
pCxt
->
msg
,
TSDB_CODE_PAR_VALUE_TOO_LONG
,
pSchema
->
name
);
}
pVal
->
value
.
pData
=
taosMemoryMalloc
(
pToken
->
n
);
if
(
NULL
==
pVal
->
value
.
pData
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
}
memcpy
(
pVal
->
value
.
pData
,
pToken
->
z
,
pToken
->
n
);
pVal
->
value
.
nData
=
pToken
->
n
break
;
}
case
TSDB_DATA_TYPE_NCHAR
:
{
case
TSDB_DATA_TYPE_NCHAR
:
{
// if the converted output len is over than pColumnModel->bytes, return error: 'Argument list too long'
// if the converted output len is over than pColumnModel->bytes, return error: 'Argument list too long'
int32_t
len
=
0
;
int32_t
len
=
0
;
...
...
source/libs/parser/src/parInsertStmt.c
浏览文件 @
7441801e
...
@@ -128,7 +128,7 @@ int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, const ch
...
@@ -128,7 +128,7 @@ int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, const ch
}
else
{
}
else
{
STagVal
val
=
{.
cid
=
pTagSchema
->
colId
,
.
type
=
pTagSchema
->
type
};
STagVal
val
=
{.
cid
=
pTagSchema
->
colId
,
.
type
=
pTagSchema
->
type
};
// strcpy(val.colName, pTagSchema->name);
// strcpy(val.colName, pTagSchema->name);
if
(
pTagSchema
->
type
==
TSDB_DATA_TYPE_BINARY
||
if
(
pTagSchema
->
type
==
TSDB_DATA_TYPE_BINARY
||
pTagSchema
->
type
==
TSDB_DATA_TYPE_VARBINARY
||
pTagSchema
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
pTagSchema
->
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
val
.
pData
=
(
uint8_t
*
)
bind
[
c
].
buffer
;
val
.
pData
=
(
uint8_t
*
)
bind
[
c
].
buffer
;
val
.
nData
=
colLen
;
val
.
nData
=
colLen
;
...
...
source/libs/parser/src/parTokenizer.c
浏览文件 @
7441801e
...
@@ -285,6 +285,7 @@ static SKeyword keywordTable[] = {
...
@@ -285,6 +285,7 @@ static SKeyword keywordTable[] = {
{
"_WEND"
,
TK_WEND
},
{
"_WEND"
,
TK_WEND
},
{
"_WSTART"
,
TK_WSTART
},
{
"_WSTART"
,
TK_WSTART
},
{
"ALIVE"
,
TK_ALIVE
},
{
"ALIVE"
,
TK_ALIVE
},
{
"VARBINARY"
,
TK_VARBINARY
},
};
};
// clang-format on
// clang-format on
...
...
source/libs/parser/src/parTranslater.c
浏览文件 @
7441801e
...
@@ -1302,7 +1302,7 @@ static EDealRes translateValueImpl(STranslateContext* pCxt, SValueNode* pVal, SD
...
@@ -1302,7 +1302,7 @@ static EDealRes translateValueImpl(STranslateContext* pCxt, SValueNode* pVal, SD
}
}
static
int32_t
calcTypeBytes
(
SDataType
dt
)
{
static
int32_t
calcTypeBytes
(
SDataType
dt
)
{
if
(
TSDB_DATA_TYPE_BINARY
==
dt
.
type
||
TSDB_DATA_TYPE_GEOMETRY
==
dt
.
type
)
{
if
(
TSDB_DATA_TYPE_BINARY
==
dt
.
type
||
TSDB_DATA_TYPE_
VARBINARY
==
dt
.
type
||
TSDB_DATA_TYPE_
GEOMETRY
==
dt
.
type
)
{
return
dt
.
bytes
+
VARSTR_HEADER_SIZE
;
return
dt
.
bytes
+
VARSTR_HEADER_SIZE
;
}
else
if
(
TSDB_DATA_TYPE_NCHAR
==
dt
.
type
)
{
}
else
if
(
TSDB_DATA_TYPE_NCHAR
==
dt
.
type
)
{
return
dt
.
bytes
*
TSDB_NCHAR_SIZE
+
VARSTR_HEADER_SIZE
;
return
dt
.
bytes
*
TSDB_NCHAR_SIZE
+
VARSTR_HEADER_SIZE
;
...
...
source/libs/qcom/src/queryUtil.c
浏览文件 @
7441801e
...
@@ -44,7 +44,7 @@ static bool doValidateSchema(SSchema* pSchema, int32_t numOfCols, int32_t maxLen
...
@@ -44,7 +44,7 @@ static bool doValidateSchema(SSchema* pSchema, int32_t numOfCols, int32_t maxLen
}
}
// 2. valid length for each type
// 2. valid length for each type
if
(
pSchema
[
i
].
type
==
TSDB_DATA_TYPE_BINARY
)
{
if
(
pSchema
[
i
].
type
==
TSDB_DATA_TYPE_BINARY
||
pSchema
[
i
].
type
==
TSDB_DATA_TYPE_VARBINARY
)
{
if
(
pSchema
[
i
].
bytes
>
TSDB_MAX_BINARY_LEN
)
{
if
(
pSchema
[
i
].
bytes
>
TSDB_MAX_BINARY_LEN
)
{
return
false
;
return
false
;
}
}
...
@@ -300,6 +300,8 @@ int32_t dataConverToStr(char* str, int type, void* buf, int32_t bufSize, int32_t
...
@@ -300,6 +300,8 @@ int32_t dataConverToStr(char* str, int type, void* buf, int32_t bufSize, int32_t
n
=
sprintf
(
str
,
"%e"
,
GET_DOUBLE_VAL
(
buf
));
n
=
sprintf
(
str
,
"%e"
,
GET_DOUBLE_VAL
(
buf
));
break
;
break
;
case
TSDB_DATA_TYPE_VARBINARY
:
sd
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
if
(
bufSize
<
0
)
{
if
(
bufSize
<
0
)
{
...
...
source/libs/scalar/inc/filterInt.h
浏览文件 @
7441801e
...
@@ -272,7 +272,7 @@ struct SFilterInfo {
...
@@ -272,7 +272,7 @@ struct SFilterInfo {
};
};
#define FILTER_NO_MERGE_DATA_TYPE(t) \
#define FILTER_NO_MERGE_DATA_TYPE(t) \
((t) == TSDB_DATA_TYPE_BINARY || (t) == TSDB_DATA_TYPE_NCHAR || (t) == TSDB_DATA_TYPE_JSON || \
((t) == TSDB_DATA_TYPE_BINARY || (t) == TSDB_DATA_TYPE_
VARBINARY || (t) == TSDB_DATA_TYPE_
NCHAR || (t) == TSDB_DATA_TYPE_JSON || \
(t) == TSDB_DATA_TYPE_GEOMETRY)
(t) == TSDB_DATA_TYPE_GEOMETRY)
#define FILTER_NO_MERGE_OPTR(o) ((o) == OP_TYPE_IS_NULL || (o) == OP_TYPE_IS_NOT_NULL || (o) == FILTER_DUMMY_EMPTY_OPTR)
#define FILTER_NO_MERGE_OPTR(o) ((o) == OP_TYPE_IS_NULL || (o) == OP_TYPE_IS_NOT_NULL || (o) == FILTER_DUMMY_EMPTY_OPTR)
...
...
source/libs/scalar/src/filter.c
浏览文件 @
7441801e
...
@@ -180,7 +180,8 @@ __compar_fn_t gUint64UsignCompare[] = {compareUint64Uint8, compareUint64Uint16,
...
@@ -180,7 +180,8 @@ __compar_fn_t gUint64UsignCompare[] = {compareUint64Uint8, compareUint64Uint16,
int8_t
filterGetCompFuncIdx
(
int32_t
type
,
int32_t
optr
)
{
int8_t
filterGetCompFuncIdx
(
int32_t
type
,
int32_t
optr
)
{
int8_t
comparFn
=
0
;
int8_t
comparFn
=
0
;
if
(
optr
==
OP_TYPE_IN
&&
(
type
!=
TSDB_DATA_TYPE_BINARY
&&
type
!=
TSDB_DATA_TYPE_NCHAR
&&
type
!=
TSDB_DATA_TYPE_GEOMETRY
))
{
if
(
optr
==
OP_TYPE_IN
&&
(
type
!=
TSDB_DATA_TYPE_BINARY
&&
type
!=
TSDB_DATA_TYPE_VARBINARY
&&
type
!=
TSDB_DATA_TYPE_NCHAR
&&
type
!=
TSDB_DATA_TYPE_GEOMETRY
))
{
switch
(
type
)
{
switch
(
type
)
{
case
TSDB_DATA_TYPE_BOOL
:
case
TSDB_DATA_TYPE_BOOL
:
case
TSDB_DATA_TYPE_TINYINT
:
case
TSDB_DATA_TYPE_TINYINT
:
...
@@ -257,6 +258,7 @@ int8_t filterGetCompFuncIdx(int32_t type, int32_t optr) {
...
@@ -257,6 +258,7 @@ int8_t filterGetCompFuncIdx(int32_t type, int32_t optr) {
case
TSDB_DATA_TYPE_DOUBLE
:
case
TSDB_DATA_TYPE_DOUBLE
:
comparFn
=
5
;
comparFn
=
5
;
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
{
case
TSDB_DATA_TYPE_BINARY
:
{
if
(
optr
==
OP_TYPE_MATCH
)
{
if
(
optr
==
OP_TYPE_MATCH
)
{
comparFn
=
19
;
comparFn
=
19
;
...
@@ -466,7 +468,7 @@ static FORCE_INLINE SFilterRangeNode *filterNewRange(SFilterRangeCtx *ctx, SFilt
...
@@ -466,7 +468,7 @@ static FORCE_INLINE SFilterRangeNode *filterNewRange(SFilterRangeCtx *ctx, SFilt
void
*
filterInitRangeCtx
(
int32_t
type
,
int32_t
options
)
{
void
*
filterInitRangeCtx
(
int32_t
type
,
int32_t
options
)
{
if
(
type
>
TSDB_DATA_TYPE_UBIGINT
||
type
<
TSDB_DATA_TYPE_BOOL
||
if
(
type
>
TSDB_DATA_TYPE_UBIGINT
||
type
<
TSDB_DATA_TYPE_BOOL
||
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_VARBINARY
||
type
==
TSDB_DATA_TYPE_NCHAR
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
type
==
TSDB_DATA_TYPE_NCHAR
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
qError
(
"not supported range type:%d"
,
type
);
qError
(
"not supported range type:%d"
,
type
);
return
NULL
;
return
NULL
;
...
@@ -1584,6 +1586,7 @@ int32_t fltConverToStr(char *str, int type, void *buf, int32_t bufSize, int32_t
...
@@ -1584,6 +1586,7 @@ int32_t fltConverToStr(char *str, int type, void *buf, int32_t bufSize, int32_t
n
=
sprintf
(
str
,
"%e"
,
GET_DOUBLE_VAL
(
buf
));
n
=
sprintf
(
str
,
"%e"
,
GET_DOUBLE_VAL
(
buf
));
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
...
...
source/libs/scalar/src/sclvector.c
浏览文件 @
7441801e
...
@@ -190,55 +190,6 @@ _getBigintValue_fn_t getVectorBigintValueFn(int32_t srcType) {
...
@@ -190,55 +190,6 @@ _getBigintValue_fn_t getVectorBigintValueFn(int32_t srcType) {
return
p
;
return
p
;
}
}
typedef
void
*
(
*
_getValueAddr_fn_t
)(
void
*
src
,
int32_t
index
);
void
*
getVectorValueAddr_TINYINT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
int8_t
*
)
src
+
index
);
}
void
*
getVectorValueAddr_UTINYINT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
uint8_t
*
)
src
+
index
);
}
void
*
getVectorValueAddr_SMALLINT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
int16_t
*
)
src
+
index
);
}
void
*
getVectorValueAddr_USMALLINT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
uint16_t
*
)
src
+
index
);
}
void
*
getVectorValueAddr_INT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
int32_t
*
)
src
+
index
);
}
void
*
getVectorValueAddr_UINT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
uint32_t
*
)
src
+
index
);
}
void
*
getVectorValueAddr_BIGINT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
int64_t
*
)
src
+
index
);
}
void
*
getVectorValueAddr_UBIGINT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
uint64_t
*
)
src
+
index
);
}
void
*
getVectorValueAddr_FLOAT
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
float
*
)
src
+
index
);
}
void
*
getVectorValueAddr_DOUBLE
(
void
*
src
,
int32_t
index
)
{
return
(
void
*
)((
double
*
)
src
+
index
);
}
void
*
getVectorValueAddr_default
(
void
*
src
,
int32_t
index
)
{
return
src
;
}
void
*
getVectorValueAddr_VAR
(
void
*
src
,
int32_t
index
)
{
return
colDataGetData
((
SColumnInfoData
*
)
src
,
index
);
}
_getValueAddr_fn_t
getVectorValueAddrFn
(
int32_t
srcType
)
{
_getValueAddr_fn_t
p
=
NULL
;
if
(
srcType
==
TSDB_DATA_TYPE_TINYINT
)
{
p
=
getVectorValueAddr_TINYINT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_UTINYINT
)
{
p
=
getVectorValueAddr_UTINYINT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_SMALLINT
)
{
p
=
getVectorValueAddr_SMALLINT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_USMALLINT
)
{
p
=
getVectorValueAddr_USMALLINT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_INT
)
{
p
=
getVectorValueAddr_INT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_UINT
)
{
p
=
getVectorValueAddr_UINT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_BIGINT
)
{
p
=
getVectorValueAddr_BIGINT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_UBIGINT
)
{
p
=
getVectorValueAddr_UBIGINT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_FLOAT
)
{
p
=
getVectorValueAddr_FLOAT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_DOUBLE
)
{
p
=
getVectorValueAddr_DOUBLE
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_BINARY
)
{
p
=
getVectorValueAddr_VAR
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_NCHAR
)
{
p
=
getVectorValueAddr_VAR
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_GEOMETRY
)
{
p
=
getVectorValueAddr_VAR
;
}
else
{
p
=
getVectorValueAddr_default
;
}
return
p
;
}
static
FORCE_INLINE
void
varToTimestamp
(
char
*
buf
,
SScalarParam
*
pOut
,
int32_t
rowIndex
,
int32_t
*
overflow
)
{
static
FORCE_INLINE
void
varToTimestamp
(
char
*
buf
,
SScalarParam
*
pOut
,
int32_t
rowIndex
,
int32_t
*
overflow
)
{
terrno
=
TSDB_CODE_SUCCESS
;
terrno
=
TSDB_CODE_SUCCESS
;
...
@@ -597,7 +548,8 @@ bool convertJsonValue(__compar_fn_t *fp, int32_t optr, int8_t typeLeft, int8_t t
...
@@ -597,7 +548,8 @@ bool convertJsonValue(__compar_fn_t *fp, int32_t optr, int8_t typeLeft, int8_t t
}
}
if
(
optr
==
OP_TYPE_LIKE
||
optr
==
OP_TYPE_NOT_LIKE
||
optr
==
OP_TYPE_MATCH
||
optr
==
OP_TYPE_NMATCH
)
{
if
(
optr
==
OP_TYPE_LIKE
||
optr
==
OP_TYPE_NOT_LIKE
||
optr
==
OP_TYPE_MATCH
||
optr
==
OP_TYPE_NMATCH
)
{
if
(
typeLeft
!=
TSDB_DATA_TYPE_NCHAR
&&
typeLeft
!=
TSDB_DATA_TYPE_BINARY
&&
typeLeft
!=
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
typeLeft
!=
TSDB_DATA_TYPE_NCHAR
&&
typeLeft
!=
TSDB_DATA_TYPE_BINARY
&&
typeLeft
!=
TSDB_DATA_TYPE_GEOMETRY
&&
typeLeft
!=
TSDB_DATA_TYPE_VARBINARY
)
{
return
false
;
return
false
;
}
}
}
}
...
@@ -636,13 +588,16 @@ bool convertJsonValue(__compar_fn_t *fp, int32_t optr, int8_t typeLeft, int8_t t
...
@@ -636,13 +588,16 @@ bool convertJsonValue(__compar_fn_t *fp, int32_t optr, int8_t typeLeft, int8_t t
if
(
typeRight
==
TSDB_DATA_TYPE_NCHAR
||
if
(
typeRight
==
TSDB_DATA_TYPE_NCHAR
||
typeRight
==
TSDB_DATA_TYPE_VARCHAR
||
typeRight
==
TSDB_DATA_TYPE_VARCHAR
||
typeRight
==
TSDB_DATA_TYPE_VARBINARY
||
typeRight
==
TSDB_DATA_TYPE_GEOMETRY
)
{
typeRight
==
TSDB_DATA_TYPE_GEOMETRY
)
{
return
false
;
return
false
;
}
else
if
(
typeRight
!=
type
)
{
}
else
if
(
typeRight
!=
type
)
{
convertNumberToNumber
(
*
pRightData
,
pRightOut
,
typeRight
,
type
);
convertNumberToNumber
(
*
pRightData
,
pRightOut
,
typeRight
,
type
);
*
pRightData
=
pRightOut
;
*
pRightData
=
pRightOut
;
}
}
}
else
if
(
type
==
TSDB_DATA_TYPE_BINARY
||
typeLeft
==
TSDB_DATA_TYPE_GEOMETRY
)
{
}
else
if
(
type
==
TSDB_DATA_TYPE_BINARY
||
type
==
TSDB_DATA_TYPE_VARBINARY
||
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
typeLeft
==
TSDB_DATA_TYPE_NCHAR
)
{
if
(
typeLeft
==
TSDB_DATA_TYPE_NCHAR
)
{
*
pLeftData
=
ncharTobinary
(
*
pLeftData
);
*
pLeftData
=
ncharTobinary
(
*
pLeftData
);
*
freeLeft
=
true
;
*
freeLeft
=
true
;
...
@@ -932,6 +887,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam *pIn, SScalarParam *pOut,
...
@@ -932,6 +887,7 @@ int32_t vectorConvertSingleColImpl(const SScalarParam *pIn, SScalarParam *pOut,
break
;
break
;
}
}
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
return
vectorConvertToVarData
(
&
cCtx
);
return
vectorConvertToVarData
(
&
cCtx
);
...
...
source/util/src/tcompare.c
浏览文件 @
7441801e
...
@@ -1301,7 +1301,8 @@ int32_t comparewcsPatternNMatch(const void *pLeft, const void *pRight) {
...
@@ -1301,7 +1301,8 @@ int32_t comparewcsPatternNMatch(const void *pLeft, const void *pRight) {
__compar_fn_t
getComparFunc
(
int32_t
type
,
int32_t
optr
)
{
__compar_fn_t
getComparFunc
(
int32_t
type
,
int32_t
optr
)
{
__compar_fn_t
comparFn
=
NULL
;
__compar_fn_t
comparFn
=
NULL
;
if
(
optr
==
OP_TYPE_IN
&&
(
type
!=
TSDB_DATA_TYPE_BINARY
&&
type
!=
TSDB_DATA_TYPE_NCHAR
&&
type
!=
TSDB_DATA_TYPE_GEOMETRY
))
{
if
(
optr
==
OP_TYPE_IN
&&
(
type
!=
TSDB_DATA_TYPE_BINARY
&&
type
!=
TSDB_DATA_TYPE_VARBINARY
&&
type
!=
TSDB_DATA_TYPE_NCHAR
&&
type
!=
TSDB_DATA_TYPE_GEOMETRY
))
{
switch
(
type
)
{
switch
(
type
)
{
case
TSDB_DATA_TYPE_BOOL
:
case
TSDB_DATA_TYPE_BOOL
:
case
TSDB_DATA_TYPE_TINYINT
:
case
TSDB_DATA_TYPE_TINYINT
:
...
@@ -1324,7 +1325,8 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
...
@@ -1324,7 +1325,8 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
}
}
}
}
if
(
optr
==
OP_TYPE_NOT_IN
&&
(
type
!=
TSDB_DATA_TYPE_BINARY
&&
type
!=
TSDB_DATA_TYPE_NCHAR
&&
type
!=
TSDB_DATA_TYPE_GEOMETRY
))
{
if
(
optr
==
OP_TYPE_NOT_IN
&&
(
type
!=
TSDB_DATA_TYPE_BINARY
&&
type
!=
TSDB_DATA_TYPE_VARBINARY
&&
type
!=
TSDB_DATA_TYPE_NCHAR
&&
type
!=
TSDB_DATA_TYPE_GEOMETRY
))
{
switch
(
type
)
{
switch
(
type
)
{
case
TSDB_DATA_TYPE_BOOL
:
case
TSDB_DATA_TYPE_BOOL
:
case
TSDB_DATA_TYPE_TINYINT
:
case
TSDB_DATA_TYPE_TINYINT
:
...
@@ -1369,6 +1371,7 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
...
@@ -1369,6 +1371,7 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
comparFn
=
compareDoubleVal
;
comparFn
=
compareDoubleVal
;
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
if
(
optr
==
OP_TYPE_MATCH
)
{
if
(
optr
==
OP_TYPE_MATCH
)
{
comparFn
=
comparestrRegexMatch
;
comparFn
=
comparestrRegexMatch
;
...
@@ -1454,6 +1457,7 @@ __compar_fn_t getKeyComparFunc(int32_t keyType, int32_t order) {
...
@@ -1454,6 +1457,7 @@ __compar_fn_t getKeyComparFunc(int32_t keyType, int32_t order) {
case
TSDB_DATA_TYPE_UBIGINT
:
case
TSDB_DATA_TYPE_UBIGINT
:
return
(
order
==
TSDB_ORDER_ASC
)
?
compareUint64Val
:
compareUint64ValDesc
;
return
(
order
==
TSDB_ORDER_ASC
)
?
compareUint64Val
:
compareUint64ValDesc
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
return
(
order
==
TSDB_ORDER_ASC
)
?
compareLenPrefixedStr
:
compareLenPrefixedStrDesc
;
return
(
order
==
TSDB_ORDER_ASC
)
?
compareLenPrefixedStr
:
compareLenPrefixedStrDesc
;
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
...
...
source/util/src/thashutil.c
浏览文件 @
7441801e
...
@@ -193,6 +193,7 @@ _hash_fn_t taosGetDefaultHashFunction(int32_t type) {
...
@@ -193,6 +193,7 @@ _hash_fn_t taosGetDefaultHashFunction(int32_t type) {
fn
=
taosIntHash_64
;
fn
=
taosIntHash_64
;
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
fn
=
MurmurHash3_32
;
fn
=
MurmurHash3_32
;
...
...
source/util/src/tskiplist.c
浏览文件 @
7441801e
...
@@ -376,6 +376,7 @@ void tSkipListPrint(SSkipList *pSkipList, int16_t nlevel) {
...
@@ -376,6 +376,7 @@ void tSkipListPrint(SSkipList *pSkipList, int16_t nlevel) {
fprintf
(
stdout
,
"%d: %"
PRId64
"
\n
"
,
id
++
,
*
(
int64_t
*
)
key
);
fprintf
(
stdout
,
"%d: %"
PRId64
"
\n
"
,
id
++
,
*
(
int64_t
*
)
key
);
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
fprintf
(
stdout
,
"%d: %s
\n
"
,
id
++
,
key
);
fprintf
(
stdout
,
"%d: %s
\n
"
,
id
++
,
key
);
break
;
break
;
...
...
tests/script/api/batchprepare.c
浏览文件 @
7441801e
...
@@ -1222,6 +1222,7 @@ int32_t bpAppendValueString(char *buf, int type, void *value, int32_t valueLen,
...
@@ -1222,6 +1222,7 @@ int32_t bpAppendValueString(char *buf, int type, void *value, int32_t valueLen,
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
buf
[
*
len
]
=
'\''
;
buf
[
*
len
]
=
'\''
;
...
@@ -1369,7 +1370,7 @@ void bpCheckColTagFields(TAOS_STMT *stmt, int32_t fieldNum, TAOS_FIELD_E* pField
...
@@ -1369,7 +1370,7 @@ void bpCheckColTagFields(TAOS_STMT *stmt, int32_t fieldNum, TAOS_FIELD_E* pField
exit
(
1
);
exit
(
1
);
}
}
if
(
pFields
[
i
].
type
==
TSDB_DATA_TYPE_BINARY
||
pFields
[
i
].
type
==
TSDB_DATA_TYPE_GEOMETRY
)
{
if
(
pFields
[
i
].
type
==
TSDB_DATA_TYPE_BINARY
||
pFields
[
i
].
type
==
TSDB_DATA_TYPE_
VARBINARY
||
pFields
[
i
].
type
==
TSDB_DATA_TYPE_
GEOMETRY
)
{
if
(
pFields
[
i
].
bytes
!=
(
pBind
[
i
].
buffer_length
+
2
))
{
if
(
pFields
[
i
].
bytes
!=
(
pBind
[
i
].
buffer_length
+
2
))
{
printf
(
"!!!%s %dth field len %d mis-match expect len %d
\n
"
,
BP_BIND_TYPE_STR
(
type
),
i
,
pFields
[
i
].
bytes
,
(
pBind
[
i
].
buffer_length
+
2
));
printf
(
"!!!%s %dth field len %d mis-match expect len %d
\n
"
,
BP_BIND_TYPE_STR
(
type
),
i
,
pFields
[
i
].
bytes
,
(
pBind
[
i
].
buffer_length
+
2
));
exit
(
1
);
exit
(
1
);
...
@@ -2256,7 +2257,7 @@ int insertNonExistsTb(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -2256,7 +2257,7 @@ int insertNonExistsTb(TAOS_STMT *stmt, TAOS *taos) {
void
bpAddWrongVarBuffLen
(
TAOS_MULTI_BIND
*
pBind
)
{
void
bpAddWrongVarBuffLen
(
TAOS_MULTI_BIND
*
pBind
)
{
for
(
int32_t
i
=
0
;
i
<
gCurCase
->
bindColNum
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
gCurCase
->
bindColNum
;
++
i
)
{
if
(
pBind
[
i
].
buffer_type
==
TSDB_DATA_TYPE_BINARY
||
pBind
[
i
].
buffer_type
==
TSDB_DATA_TYPE_NCHAR
)
{
if
(
pBind
[
i
].
buffer_type
==
TSDB_DATA_TYPE_BINARY
||
pBind
[
i
].
buffer_type
==
TSDB_DATA_TYPE_
VARBINARY
||
pBind
[
i
].
buffer_type
==
TSDB_DATA_TYPE_
NCHAR
)
{
*
pBind
[
i
].
length
+=
100
;
*
pBind
[
i
].
length
+=
100
;
}
}
}
}
...
...
tests/script/api/passwdTest.c
浏览文件 @
7441801e
...
@@ -145,6 +145,7 @@ int printRow(char *str, TAOS_ROW row, TAOS_FIELD *fields, int numFields) {
...
@@ -145,6 +145,7 @@ int printRow(char *str, TAOS_ROW row, TAOS_FIELD *fields, int numFields) {
len
+=
sprintf
(
str
+
len
,
"%lf"
,
dv
);
len
+=
sprintf
(
str
+
len
,
"%lf"
,
dv
);
}
break
;
}
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
int32_t
charLen
=
varDataLen
((
char
*
)
row
[
i
]
-
VARSTR_HEADER_SIZE
);
int32_t
charLen
=
varDataLen
((
char
*
)
row
[
i
]
-
VARSTR_HEADER_SIZE
);
...
...
tests/script/api/stmt_function.c
浏览文件 @
7441801e
...
@@ -400,6 +400,7 @@ void taos_stmt_use_result_query(void *taos, char *col, int type) {
...
@@ -400,6 +400,7 @@ void taos_stmt_use_result_query(void *taos, char *col, int type) {
params
->
length
=
&
params
->
buffer_length
;
params
->
length
=
&
params
->
buffer_length
;
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
params
->
buffer_length
=
sizeof
(
v
.
c6
);
params
->
buffer_length
=
sizeof
(
v
.
c6
);
params
->
buffer
=
&
v
.
c6
;
params
->
buffer
=
&
v
.
c6
;
...
...
tools/shell/src/shellEngine.c
浏览文件 @
7441801e
...
@@ -386,6 +386,7 @@ void shellDumpFieldToFile(TdFilePtr pFile, const char *val, TAOS_FIELD *field, i
...
@@ -386,6 +386,7 @@ void shellDumpFieldToFile(TdFilePtr pFile, const char *val, TAOS_FIELD *field, i
}
}
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_JSON
:
{
{
...
@@ -637,6 +638,7 @@ void shellPrintField(const char *val, TAOS_FIELD *field, int32_t width, int32_t
...
@@ -637,6 +638,7 @@ void shellPrintField(const char *val, TAOS_FIELD *field, int32_t width, int32_t
}
}
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_JSON
:
shellPrintNChar
(
val
,
length
,
width
);
shellPrintNChar
(
val
,
length
,
width
);
...
@@ -772,6 +774,7 @@ int32_t shellCalcColWidth(TAOS_FIELD *field, int32_t precision) {
...
@@ -772,6 +774,7 @@ int32_t shellCalcColWidth(TAOS_FIELD *field, int32_t precision) {
return
TMAX
(
SHELL_DOUBLE_WIDTH
,
width
);
return
TMAX
(
SHELL_DOUBLE_WIDTH
,
width
);
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
if
(
field
->
bytes
>
shell
.
args
.
displayWidth
)
{
if
(
field
->
bytes
>
shell
.
args
.
displayWidth
)
{
return
TMAX
(
shell
.
args
.
displayWidth
,
width
);
return
TMAX
(
shell
.
args
.
displayWidth
,
width
);
...
...
utils/test/c/tmqSim.c
浏览文件 @
7441801e
...
@@ -541,6 +541,7 @@ static void shellDumpFieldToFile(TdFilePtr pFile, const char* val, TAOS_FIELD* f
...
@@ -541,6 +541,7 @@ static void shellDumpFieldToFile(TdFilePtr pFile, const char* val, TAOS_FIELD* f
}
}
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_JSON
:
case
TSDB_DATA_TYPE_GEOMETRY
:
{
case
TSDB_DATA_TYPE_GEOMETRY
:
{
...
...
utils/tsim/src/simExe.c
浏览文件 @
7441801e
...
@@ -751,6 +751,7 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) {
...
@@ -751,6 +751,7 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) {
sprintf
(
value
,
"%.9lf"
,
GET_DOUBLE_VAL
(
row
[
i
]));
sprintf
(
value
,
"%.9lf"
,
GET_DOUBLE_VAL
(
row
[
i
]));
break
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_VARBINARY
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
case
TSDB_DATA_TYPE_GEOMETRY
:
case
TSDB_DATA_TYPE_GEOMETRY
:
if
(
length
[
i
]
<
0
||
length
[
i
]
>
1
<<
20
)
{
if
(
length
[
i
]
<
0
||
length
[
i
]
>
1
<<
20
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录