add TSDB CONV CODE
This commit is contained in:
parent
546e7d8584
commit
ca120cfb09
|
@ -193,6 +193,22 @@ do { \
|
||||||
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_TRUNC, ""); \
|
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_TRUNC, ""); \
|
||||||
return SQL_ERROR; \
|
return SQL_ERROR; \
|
||||||
} break; \
|
} 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: { \
|
case TSDB_CONV_BAD_CHAR: { \
|
||||||
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_TRUNC, ""); \
|
SET_ERROR(sql, "22001", TSDB_CODE_ODBC_CONV_TRUNC, ""); \
|
||||||
return SQL_ERROR; \
|
return SQL_ERROR; \
|
||||||
|
|
|
@ -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_CHAR_NOT_TS: return "TSDB_CONV_CHAR_NOT_TS";
|
||||||
case TSDB_CONV_NOT_VALID_TS: return "TSDB_CONV_NOT_VALID_TS";
|
case TSDB_CONV_NOT_VALID_TS: return "TSDB_CONV_NOT_VALID_TS";
|
||||||
case TSDB_CONV_GENERAL: return "TSDB_CONV_GENERAL";
|
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";
|
case TSDB_CONV_BAD_CHAR: return "TSDB_CONV_BAD_CHAR";
|
||||||
default: return "UNKNOWN";
|
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);
|
pthread_once(&once, once_init);
|
||||||
tsdb_conv_t *cnv = (tsdb_conv_t*)calloc(1, sizeof(*cnv));
|
tsdb_conv_t *cnv = (tsdb_conv_t*)calloc(1, sizeof(*cnv));
|
||||||
if (!cnv) return NULL;
|
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->cnv = (iconv_t)-1;
|
||||||
cnv->direct = 1;
|
cnv->direct = 1;
|
||||||
return cnv;
|
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);
|
size_t r = iconv(cnv->cnv, (char**)&src, &slen, &buf, &blen);
|
||||||
do {
|
do {
|
||||||
if (r==(size_t)-1) {
|
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;
|
break;
|
||||||
}
|
}
|
||||||
if (slen) {
|
if (slen) {
|
||||||
|
|
|
@ -33,6 +33,10 @@ typedef enum {
|
||||||
TSDB_CONV_NOT_VALID_TS,
|
TSDB_CONV_NOT_VALID_TS,
|
||||||
TSDB_CONV_GENERAL,
|
TSDB_CONV_GENERAL,
|
||||||
TSDB_CONV_BAD_CHAR,
|
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;
|
} TSDB_CONV_CODE;
|
||||||
|
|
||||||
const char* tsdb_conv_code_str(TSDB_CONV_CODE code);
|
const char* tsdb_conv_code_str(TSDB_CONV_CODE code);
|
||||||
|
|
|
@ -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_CONNSTR, 0, 0x210f, "bad connection string")
|
||||||
TAOS_DEFINE_ERROR(TSDB_CODE_ODBC_BAD_ARG, 0, 0x2110, "bad argument")
|
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_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
|
#ifdef TAOS_ERROR_C
|
||||||
|
|
Loading…
Reference in New Issue