Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
748b9741
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
748b9741
编写于
10月 17, 2021
作者:
wmmhello
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
TD-6129<feature> support null true false for json tag
上级
fb203e45
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
10 addition
and
6 deletion
+10
-6
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+8
-4
src/tsdb/src/tsdbMeta.c
src/tsdb/src/tsdbMeta.c
+2
-2
未找到文件。
src/client/src/tscUtil.c
浏览文件 @
748b9741
...
...
@@ -5256,7 +5256,7 @@ char* parseTagDatatoJson(void *p){
continue
;
}
if
(
j
==
2
){
if
(
*
(
uint8_t
*
)
val
==
TSDB_DATA_JSON_NULL
)
goto
end
;
if
(
*
(
uint8_t
*
)
(
val
+
CHAR_BYTES
)
==
TSDB_DATA_JSON_NULL
)
goto
end
;
continue
;
}
if
(
j
%
2
==
1
)
{
// json key encode by binary
...
...
@@ -5318,6 +5318,7 @@ end:
}
int
parseJsontoTagData
(
char
*
json
,
SKVRowBuilder
*
kvRowBuilder
,
char
*
errMsg
,
int16_t
startColId
){
uint8_t
nullTypeVal
[
CHAR_BYTES
+
CHAR_BYTES
]
=
{
0
};
uint8_t
jsonNULL
=
TSDB_DATA_JSON_NULL
;
int
jsonIndex
=
startColId
+
1
;
char
nullTypeKey
[
VARSTR_HEADER_SIZE
+
CHAR_BYTES
]
=
{
0
};
...
...
@@ -5325,11 +5326,13 @@ int parseJsontoTagData(char* json, SKVRowBuilder* kvRowBuilder, char* errMsg, in
*
(
uint8_t
*
)(
varDataVal
(
nullTypeKey
))
=
jsonNULL
;
tdAddColToKVRow
(
kvRowBuilder
,
jsonIndex
++
,
TSDB_DATA_TYPE_NCHAR
,
nullTypeKey
,
false
);
// add json null type
if
(
strtrim
(
json
)
==
0
||
strcasecmp
(
json
,
"null"
)
==
0
){
tdAddColToKVRow
(
kvRowBuilder
,
jsonIndex
++
,
TSDB_DATA_TYPE_JSON
,
&
jsonNULL
,
false
);
// add json null value
nullTypeVal
[
1
]
=
jsonNULL
;
tdAddColToKVRow
(
kvRowBuilder
,
jsonIndex
++
,
TSDB_DATA_TYPE_JSON
,
&
nullTypeVal
,
true
);
// add json null value
return
TSDB_CODE_SUCCESS
;
}
int8_t
jsonNotNull
=
TSDB_DATA_JSON_NOT_NULL
;
tdAddColToKVRow
(
kvRowBuilder
,
jsonIndex
++
,
TSDB_DATA_TYPE_JSON
,
&
jsonNotNull
,
false
);
// add json type
nullTypeVal
[
1
]
=
jsonNotNull
;
tdAddColToKVRow
(
kvRowBuilder
,
jsonIndex
++
,
TSDB_DATA_TYPE_JSON
,
&
nullTypeVal
,
true
);
// add json type
cJSON
*
root
=
cJSON_Parse
(
json
);
if
(
root
==
NULL
){
...
...
@@ -5415,7 +5418,8 @@ int parseJsontoTagData(char* json, SKVRowBuilder* kvRowBuilder, char* errMsg, in
}
if
(
taosHashGetSize
(
keyHash
)
==
0
){
// set json NULL true
memcpy
(
POINTER_SHIFT
(
kvRowBuilder
->
buf
,
kvRowBuilder
->
pColIdx
[
2
].
offset
),
&
jsonNULL
,
CHAR_BYTES
);
nullTypeVal
[
1
]
=
jsonNULL
;
memcpy
(
POINTER_SHIFT
(
kvRowBuilder
->
buf
,
kvRowBuilder
->
pColIdx
[
2
].
offset
),
&
nullTypeVal
,
CHAR_BYTES
+
CHAR_BYTES
);
}
end:
...
...
src/tsdb/src/tsdbMeta.c
浏览文件 @
748b9741
...
...
@@ -1116,7 +1116,7 @@ static int tsdbAddTableIntoIndex(STsdbMeta *pMeta, STable *pTable, bool refSuper
SColIdx
*
pColIdxNull
=
kvRowColIdxAt
(
pTable
->
tagVal
,
j
+
1
);
void
*
valNull
=
(
kvRowColVal
(
pTable
->
tagVal
,
pColIdxNull
));
if
(
*
(
uint8_t
*
)
valNull
==
TSDB_DATA_JSON_NOT_NULL
)
continue
;
// do not add null type if json is not null
if
(
*
(
uint8_t
*
)
(
valNull
+
CHAR_BYTES
)
==
TSDB_DATA_JSON_NOT_NULL
)
continue
;
// do not add null type if json is not null
}
char
keyMd5
[
TSDB_MAX_JSON_KEY_MD5_LEN
]
=
{
0
};
...
...
@@ -1196,7 +1196,7 @@ static int tsdbRemoveTableFromIndex(STsdbMeta *pMeta, STable *pTable) {
ASSERT
(
jsonNULL
==
TSDB_DATA_JSON_NULL
);
SColIdx
*
pColIdxNull
=
kvRowColIdxAt
(
pTable
->
tagVal
,
j
+
1
);
void
*
valNull
=
(
kvRowColVal
(
pTable
->
tagVal
,
pColIdxNull
));
if
(
*
(
uint8_t
*
)
valNull
==
TSDB_DATA_JSON_NOT_NULL
)
continue
;
if
(
*
(
uint8_t
*
)
(
valNull
+
CHAR_BYTES
)
==
TSDB_DATA_JSON_NOT_NULL
)
continue
;
}
char
keyMd5
[
TSDB_MAX_JSON_KEY_MD5_LEN
]
=
{
0
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录