Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ca120cfb
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ca120cfb
编写于
10月 31, 2020
作者:
F
freemine
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add TSDB CONV CODE
上级
546e7d85
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
43 addition
and
2 deletion
+43
-2
src/connector/odbc/src/todbc.c
src/connector/odbc/src/todbc.c
+16
-0
src/connector/odbc/src/todbc_conv.c
src/connector/odbc/src/todbc_conv.c
+19
-2
src/connector/odbc/src/todbc_conv.h
src/connector/odbc/src/todbc_conv.h
+4
-0
src/inc/taoserror.h
src/inc/taoserror.h
+4
-0
未找到文件。
src/connector/odbc/src/todbc.c
浏览文件 @
ca120cfb
...
...
@@ -193,6 +193,22 @@ do { \
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_TRUNC, ""); \
return SQL_ERROR; \
} break; \
case TSDB_CONV_SRC_TOO_LARGE: { \
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_SRC_TOO_LARGE, ""); \
return SQL_ERROR; \
} break; \
case TSDB_CONV_SRC_BAD_SEQ: { \
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_SRC_BAD_SEQ, ""); \
return SQL_ERROR; \
} break; \
case TSDB_CONV_SRC_INCOMPLETE: { \
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_SRC_INCOMPLETE, ""); \
return SQL_ERROR; \
} break; \
case TSDB_CONV_SRC_GENERAL: { \
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_SRC_GENERAL, ""); \
return SQL_ERROR; \
} break; \
case TSDB_CONV_BAD_CHAR: { \
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_TRUNC, ""); \
return SQL_ERROR; \
...
...
src/connector/odbc/src/todbc_conv.c
浏览文件 @
ca120cfb
...
...
@@ -35,6 +35,10 @@ const char* tsdb_conv_code_str(TSDB_CONV_CODE code) {
case
TSDB_CONV_CHAR_NOT_TS
:
return
"TSDB_CONV_CHAR_NOT_TS"
;
case
TSDB_CONV_NOT_VALID_TS
:
return
"TSDB_CONV_NOT_VALID_TS"
;
case
TSDB_CONV_GENERAL
:
return
"TSDB_CONV_GENERAL"
;
case
TSDB_CONV_SRC_TOO_LARGE
:
return
"TSDB_CONV_SRC_TOO_LARGE"
;
case
TSDB_CONV_SRC_BAD_SEQ
:
return
"TSDB_CONV_SRC_BAD_SEQ"
;
case
TSDB_CONV_SRC_INCOMPLETE
:
return
"TSDB_CONV_SRC_INCOMPLETE"
;
case
TSDB_CONV_SRC_GENERAL
:
return
"TSDB_CONV_SRC_GENERAL"
;
case
TSDB_CONV_BAD_CHAR
:
return
"TSDB_CONV_BAD_CHAR"
;
default:
return
"UNKNOWN"
;
};
...
...
@@ -408,7 +412,7 @@ tsdb_conv_t* tsdb_conv_open(const char *from_enc, const char *to_enc) {
pthread_once
(
&
once
,
once_init
);
tsdb_conv_t
*
cnv
=
(
tsdb_conv_t
*
)
calloc
(
1
,
sizeof
(
*
cnv
));
if
(
!
cnv
)
return
NULL
;
if
(
strcmp
(
from_enc
,
to_enc
)
==
0
)
{
if
(
strcmp
(
from_enc
,
to_enc
)
==
0
&&
0
)
{
cnv
->
cnv
=
(
iconv_t
)
-
1
;
cnv
->
direct
=
1
;
return
cnv
;
...
...
@@ -619,7 +623,20 @@ TSDB_CONV_CODE tsdb_conv(tsdb_conv_t *cnv, stack_buffer_t *buffer, const char *s
size_t
r
=
iconv
(
cnv
->
cnv
,
(
char
**
)
&
src
,
&
slen
,
&
buf
,
&
blen
);
do
{
if
(
r
==
(
size_t
)
-
1
)
{
code
=
TSDB_CONV_BAD_CHAR
;
switch
(
errno
)
{
case
E2BIG
:
{
code
=
TSDB_CONV_SRC_TOO_LARGE
;
}
break
;
case
EILSEQ
:
{
code
=
TSDB_CONV_SRC_BAD_SEQ
;
}
break
;
case
EINVAL
:
{
code
=
TSDB_CONV_SRC_INCOMPLETE
;
}
break
;
default:
{
code
=
TSDB_CONV_SRC_GENERAL
;
}
break
;
}
break
;
}
if
(
slen
)
{
...
...
src/connector/odbc/src/todbc_conv.h
浏览文件 @
ca120cfb
...
...
@@ -33,6 +33,10 @@ typedef enum {
TSDB_CONV_NOT_VALID_TS
,
TSDB_CONV_GENERAL
,
TSDB_CONV_BAD_CHAR
,
TSDB_CONV_SRC_TOO_LARGE
,
TSDB_CONV_SRC_BAD_SEQ
,
TSDB_CONV_SRC_INCOMPLETE
,
TSDB_CONV_SRC_GENERAL
,
}
TSDB_CONV_CODE
;
const
char
*
tsdb_conv_code_str
(
TSDB_CONV_CODE
code
);
...
...
src/inc/taoserror.h
浏览文件 @
ca120cfb
...
...
@@ -380,6 +380,10 @@ TAOS_DEFINE_ERROR(TSDB_CODE_ODBC_CONNECTION_BUSY, 0, 0x210e, "connection
TAOS_DEFINE_ERROR
(
TSDB_CODE_ODBC_BAD_CONNSTR
,
0
,
0x210f
,
"bad connection string"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_ODBC_BAD_ARG
,
0
,
0x2110
,
"bad argument"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_ODBC_CONV_NOT_VALID_TS
,
0
,
0x2111
,
"not a valid timestamp"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_ODBC_CONV_SRC_TOO_LARGE
,
0
,
0x2112
,
"src too large"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_ODBC_CONV_SRC_BAD_SEQ
,
0
,
0x2113
,
"src bad sequence"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_ODBC_CONV_SRC_INCOMPLETE
,
0
,
0x2114
,
"src incomplete"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_ODBC_CONV_SRC_GENERAL
,
0
,
0x2115
,
"src general"
)
#ifdef TAOS_ERROR_C
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录