提交 dbdb9338 编写于 作者: weixin_48148422's avatar weixin_48148422

new error code implementation

上级 2ea6ac95
...@@ -20,124 +20,148 @@ ...@@ -20,124 +20,148 @@
extern "C" { extern "C" {
#endif #endif
#define TSDB_CODE_SUCCESS 0 #ifdef TAOS_ERROR_C
#define TSDB_CODE_ACTION_IN_PROGRESS 1 #define TAOS_DEFINE_ERROR(name, mod, code, msg) {.val = (0x80000000 | ((mod)<<16) | (code)), .str=(msg)},
#else
#define TAOS_DEFINE_ERROR(name, mod, code, msg) const int32_t name = (0x80000000 | ((mod)<<16) | (code));
#endif
#define TAOS_SYSTEM_ERROR(code) (0x80ff0000 | (code))
#define TAOS_SUCCEEDED(err) ((err) >= 0)
#define TAOS_FAILED(err) ((err) < 0)
const char* tstrerror(int32_t err);
#define TSDB_CODE_LAST_SESSION_NOT_FINISHED 5 int32_t* taosGetErrno();
#define TSDB_CODE_INVALID_SESSION_ID 6 #define terrno (*taosGetErrno())
#define TSDB_CODE_INVALID_TRAN_ID 7
#define TSDB_CODE_INVALID_MSG_TYPE 8 #define TSDB_CODE_SUCCESS 0
#define TSDB_CODE_ALREADY_PROCESSED 9
#define TSDB_CODE_AUTH_FAILURE 10 #ifdef TAOS_ERROR_C
#define TSDB_CODE_WRONG_MSG_SIZE 11 static STaosError errors[] = {
#define TSDB_CODE_UNEXPECTED_RESPONSE 12 {.val = 0, .str = "success"},
#define TSDB_CODE_INVALID_RESPONSE_TYPE 13 #endif
#define TSDB_CODE_NO_RESOURCE 14
#define TSDB_CODE_INVALID_TIME_STAMP 15 TAOS_DEFINE_ERROR(TSDB_CODE_ACTION_IN_PROGRESS, 0, 1, "action in progress")
#define TSDB_CODE_MISMATCHED_METER_ID 16 TAOS_DEFINE_ERROR(TSDB_CODE_LAST_SESSION_NOT_FINISHED, 0, 5, "last session not finished")
#define TSDB_CODE_ACTION_TRANS_NOT_FINISHED 17 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_SESSION_ID, 0, 6, "invalid session id")
#define TSDB_CODE_ACTION_NOT_ONLINE 18 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_TRAN_ID, 0, 7, "invalid transaction id")
#define TSDB_CODE_ACTION_SEND_FAILD 19 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_MSG_TYPE, 0, 8, "invalid message type")
#define TSDB_CODE_NOT_ACTIVE_SESSION 20 TAOS_DEFINE_ERROR(TSDB_CODE_ALREADY_PROCESSED, 0, 9, "already processed")
#define TSDB_CODE_INVALID_VNODE_ID 21 TAOS_DEFINE_ERROR(TSDB_CODE_AUTH_FAILURE, 0, 10, "auth failure")
#define TSDB_CODE_APP_ERROR 22 TAOS_DEFINE_ERROR(TSDB_CODE_WRONG_MSG_SIZE, 0, 11, "wrong message size")
#define TSDB_CODE_INVALID_IE 23 TAOS_DEFINE_ERROR(TSDB_CODE_UNEXPECTED_RESPONSE, 0, 12, "unexpected response")
#define TSDB_CODE_INVALID_VALUE 24 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_RESPONSE_TYPE, 0, 13, "invalid response type")
#define TSDB_CODE_REDIRECT 25 TAOS_DEFINE_ERROR(TSDB_CODE_NO_RESOURCE, 0, 14, "no resource")
#define TSDB_CODE_ALREADY_THERE 26 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_TIME_STAMP, 0, 15, "invalid timestamp")
#define TSDB_CODE_INVALID_METER_ID 27 TAOS_DEFINE_ERROR(TSDB_CODE_MISMATCHED_METER_ID, 0, 16, "mismatched meter id")
#define TSDB_CODE_INVALID_SQL 28 TAOS_DEFINE_ERROR(TSDB_CODE_ACTION_TRANS_NOT_FINISHED, 0, 17, "action transaction not finished")
#define TSDB_CODE_NETWORK_UNAVAIL 29 TAOS_DEFINE_ERROR(TSDB_CODE_ACTION_NOT_ONLINE, 0, 18, "action not online")
#define TSDB_CODE_INVALID_MSG_LEN 30 TAOS_DEFINE_ERROR(TSDB_CODE_ACTION_SEND_FAILD, 0, 19, "action send failed")
#define TSDB_CODE_INVALID_DB 31 TAOS_DEFINE_ERROR(TSDB_CODE_NOT_ACTIVE_SESSION, 0, 20, "not active session")
#define TSDB_CODE_INVALID_TABLE 32 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_VNODE_ID, 0, 21, "invalid vnode id")
#define TSDB_CODE_DB_ALREADY_EXIST 33 TAOS_DEFINE_ERROR(TSDB_CODE_APP_ERROR, 0, 22, "app error")
#define TSDB_CODE_TABLE_ALREADY_EXIST 34 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_IE, 0, 23, "invalid ie")
#define TSDB_CODE_INVALID_USER 35 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_VALUE, 0, 24, "invalid value")
#define TSDB_CODE_INVALID_ACCT 36 TAOS_DEFINE_ERROR(TSDB_CODE_REDIRECT, 0, 25, "redirect")
#define TSDB_CODE_INVALID_PASS 37 TAOS_DEFINE_ERROR(TSDB_CODE_ALREADY_THERE, 0, 26, "already there")
#define TSDB_CODE_DB_NOT_SELECTED 38 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_METER_ID, 0, 27, "invalid meter id")
#define TSDB_CODE_MEMORY_CORRUPTED 39 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_SQL, 0, 28, "invalid sql")
#define TSDB_CODE_USER_ALREADY_EXIST 40 TAOS_DEFINE_ERROR(TSDB_CODE_NETWORK_UNAVAIL, 0, 29, "network unavailable")
#define TSDB_CODE_NO_RIGHTS 41 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_MSG_LEN, 0, 30, "invalid message length")
#define TSDB_CODE_DISCONNECTED 42 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_DB, 0, 31, "invalid database")
#define TSDB_CODE_NO_MASTER 43 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_TABLE, 0, 32, "invalid table")
#define TSDB_CODE_NOT_CONFIGURED 44 TAOS_DEFINE_ERROR(TSDB_CODE_DB_ALREADY_EXIST, 0, 33, "database aleady exist")
#define TSDB_CODE_INVALID_OPTION 45 TAOS_DEFINE_ERROR(TSDB_CODE_TABLE_ALREADY_EXIST, 0, 34, "table already exist")
#define TSDB_CODE_NODE_OFFLINE 46 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_USER, 0, 35, "invalid user")
#define TSDB_CODE_SYNC_REQUIRED 47 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_ACCT, 0, 36, "invalid account")
#define TSDB_CODE_NO_ENOUGH_DNODES 48 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_PASS, 0, 37, "invalid password")
#define TSDB_CODE_UNSYNCED 49 TAOS_DEFINE_ERROR(TSDB_CODE_DB_NOT_SELECTED, 0, 38, "do not selected")
#define TSDB_CODE_TOO_SLOW 50 TAOS_DEFINE_ERROR(TSDB_CODE_MEMORY_CORRUPTED, 0, 39, "memory corrupted")
#define TSDB_CODE_OTHERS 51 TAOS_DEFINE_ERROR(TSDB_CODE_USER_ALREADY_EXIST, 0, 40, "user already exist")
#define TSDB_CODE_NO_REMOVE_MASTER 52 TAOS_DEFINE_ERROR(TSDB_CODE_NO_RIGHTS, 0, 41, "no rights")
#define TSDB_CODE_WRONG_SCHEMA 53 TAOS_DEFINE_ERROR(TSDB_CODE_DISCONNECTED, 0, 42, "disconnected")
#define TSDB_CODE_NOT_ACTIVE_VNODE 54 TAOS_DEFINE_ERROR(TSDB_CODE_NO_MASTER, 0, 43, "no master")
#define TSDB_CODE_TOO_MANY_USERS 55 TAOS_DEFINE_ERROR(TSDB_CODE_NOT_CONFIGURED, 0, 44, "not configured")
#define TSDB_CODE_TOO_MANY_DATABSES 56 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_OPTION, 0, 45, "invalid option")
#define TSDB_CODE_TOO_MANY_TABLES 57 TAOS_DEFINE_ERROR(TSDB_CODE_NODE_OFFLINE, 0, 46, "node offline")
#define TSDB_CODE_TOO_MANY_DNODES 58 TAOS_DEFINE_ERROR(TSDB_CODE_SYNC_REQUIRED, 0, 47, "sync required")
#define TSDB_CODE_TOO_MANY_ACCTS 59 TAOS_DEFINE_ERROR(TSDB_CODE_NO_ENOUGH_DNODES, 0, 48, "no enough dnodes")
#define TSDB_CODE_ACCT_ALREADY_EXIST 60 TAOS_DEFINE_ERROR(TSDB_CODE_UNSYNCED, 0, 49, "unsyned")
#define TSDB_CODE_DNODE_ALREADY_EXIST 61 TAOS_DEFINE_ERROR(TSDB_CODE_TOO_SLOW, 0, 50, "too slow")
#define TSDB_CODE_SDB_ERROR 62 TAOS_DEFINE_ERROR(TSDB_CODE_OTHERS, 0, 51, "others")
#define TSDB_CODE_METRICMETA_EXPIRED 63 // local cached metric-meta expired causes error in metric query TAOS_DEFINE_ERROR(TSDB_CODE_NO_REMOVE_MASTER, 0, 52, "no remove master")
#define TSDB_CODE_NOT_READY 64 // peer is not ready to process data TAOS_DEFINE_ERROR(TSDB_CODE_WRONG_SCHEMA, 0, 53, "wrong schema")
#define TSDB_CODE_MAX_SESSIONS 65 // too many sessions TAOS_DEFINE_ERROR(TSDB_CODE_NOT_ACTIVE_VNODE, 0, 54, "not active vnode")
#define TSDB_CODE_MAX_CONNECTIONS 66 // too many connections TAOS_DEFINE_ERROR(TSDB_CODE_TOO_MANY_USERS, 0, 55, "too many users")
#define TSDB_CODE_SESSION_ALREADY_EXIST 67 TAOS_DEFINE_ERROR(TSDB_CODE_TOO_MANY_DATABASES, 0, 56, "too many databases")
#define TSDB_CODE_NO_QSUMMARY 68 TAOS_DEFINE_ERROR(TSDB_CODE_TOO_MANY_TABLES, 0, 57, "too many tables")
#define TSDB_CODE_SERV_OUT_OF_MEMORY 69 TAOS_DEFINE_ERROR(TSDB_CODE_TOO_MANY_DNODES, 0, 58, "too many dnodes")
#define TSDB_CODE_INVALID_QHANDLE 70 TAOS_DEFINE_ERROR(TSDB_CODE_TOO_MANY_ACCTS, 0, 59, "too many accounts")
#define TSDB_CODE_RELATED_TABLES_EXIST 71 TAOS_DEFINE_ERROR(TSDB_CODE_ACCT_ALREADY_EXIST, 0, 60, "accounts already exist")
#define TSDB_CODE_MONITOR_DB_FORBEIDDEN 72 TAOS_DEFINE_ERROR(TSDB_CODE_DNODE_ALREADY_EXIST, 0, 61, "dnode already exist")
#define TSDB_CODE_NO_DISK_PERMISSIONS 73 TAOS_DEFINE_ERROR(TSDB_CODE_SDB_ERROR, 0, 62, "sdb error")
#define TSDB_CODE_VG_INIT_FAILED 74 TAOS_DEFINE_ERROR(TSDB_CODE_METRICMETA_EXPIRED, 0, 63, "metricmeta expired") // local cached metric-meta expired causes error in metric query
#define TSDB_CODE_DATA_ALREADY_IMPORTED 75 TAOS_DEFINE_ERROR(TSDB_CODE_NOT_READY, 0, 64, "not ready") // peer is not ready to process data
#define TSDB_CODE_OPS_NOT_SUPPORT 76 TAOS_DEFINE_ERROR(TSDB_CODE_MAX_SESSIONS, 0, 65, "max sessions") // too many sessions
#define TSDB_CODE_INVALID_QUERY_ID 77 TAOS_DEFINE_ERROR(TSDB_CODE_MAX_CONNECTIONS, 0, 66, "max connections") // too many connections
#define TSDB_CODE_INVALID_STREAM_ID 78 TAOS_DEFINE_ERROR(TSDB_CODE_SESSION_ALREADY_EXIST, 0, 67, "session already exist")
#define TSDB_CODE_INVALID_CONNECTION 79 TAOS_DEFINE_ERROR(TSDB_CODE_NO_QSUMMARY, 0, 68, "no qsummery")
#define TSDB_CODE_ACTION_NOT_BALANCED 80 TAOS_DEFINE_ERROR(TSDB_CODE_SERV_OUT_OF_MEMORY, 0, 69, "server out of memory")
#define TSDB_CODE_CLI_OUT_OF_MEMORY 81 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_QHANDLE, 0, 70, "invalid handle")
#define TSDB_CODE_DATA_OVERFLOW 82 TAOS_DEFINE_ERROR(TSDB_CODE_RELATED_TABLES_EXIST, 0, 71, "related tables exist")
#define TSDB_CODE_QUERY_CANCELLED 83 TAOS_DEFINE_ERROR(TSDB_CODE_MONITOR_DB_FORBIDDEN, 0, 72, "monitor db forbidden")
#define TSDB_CODE_GRANT_TIMESERIES_LIMITED 84 TAOS_DEFINE_ERROR(TSDB_CODE_NO_DISK_PERMISSIONS, 0, 73, "no disk permissions")
#define TSDB_CODE_GRANT_EXPIRED 85 TAOS_DEFINE_ERROR(TSDB_CODE_VG_INIT_FAILED, 0, 74, "vg init failed")
#define TSDB_CODE_CLI_NO_DISKSPACE 86 TAOS_DEFINE_ERROR(TSDB_CODE_DATA_ALREADY_IMPORTED, 0, 75, "data already imported")
#define TSDB_CODE_FILE_CORRUPTED 87 TAOS_DEFINE_ERROR(TSDB_CODE_OPS_NOT_SUPPORT, 0, 76, "ops not support")
#define TSDB_CODE_INVALID_CLIENT_VERSION 88 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_QUERY_ID, 0, 77, "invalid query id")
#define TSDB_CODE_INVALID_ACCT_PARAMETER 89 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_STREAM_ID, 0, 78, "invalid stream id")
#define TSDB_CODE_NOT_ENOUGH_TIME_SERIES 90 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_CONNECTION, 0, 79, "invalid connection")
#define TSDB_CODE_NO_WRITE_ACCESS 91 TAOS_DEFINE_ERROR(TSDB_CODE_ACTION_NOT_BALANCED, 0, 80, "action not balanced")
#define TSDB_CODE_NO_READ_ACCESS 92 TAOS_DEFINE_ERROR(TSDB_CODE_CLI_OUT_OF_MEMORY, 0, 81, "client out of memory")
#define TSDB_CODE_GRANT_DB_LIMITED 93 TAOS_DEFINE_ERROR(TSDB_CODE_DATA_OVERFLOW, 0, 82, "data overflow")
#define TSDB_CODE_GRANT_USER_LIMITED 94 TAOS_DEFINE_ERROR(TSDB_CODE_QUERY_CANCELLED, 0, 83, "query cancelled")
#define TSDB_CODE_GRANT_CONN_LIMITED 95 TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_TIMESERIES_LIMITED, 0, 84, "grant timeseries limited")
#define TSDB_CODE_GRANT_STREAM_LIMITED 96 TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_EXPIRED, 0, 85, "grant expired")
#define TSDB_CODE_GRANT_SPEED_LIMITED 97 TAOS_DEFINE_ERROR(TSDB_CODE_CLI_NO_DISKSPACE, 0, 86, "client no disk space")
#define TSDB_CODE_GRANT_STORAGE_LIMITED 98 TAOS_DEFINE_ERROR(TSDB_CODE_FILE_CORRUPTED, 0, 87, "file corrupted")
#define TSDB_CODE_GRANT_QUERYTIME_LIMITED 99 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_CLIENT_VERSION, 0, 88, "invalid client version")
#define TSDB_CODE_GRANT_ACCT_LIMITED 100 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_ACCT_PARAMETER, 0, 89, "invalid account parameter")
#define TSDB_CODE_GRANT_DNODE_LIMITED 101 TAOS_DEFINE_ERROR(TSDB_CODE_NOT_ENOUGH_TIME_SERIES, 0, 90, "not enough time series")
#define TSDB_CODE_GRANT_CPU_LIMITED 102 TAOS_DEFINE_ERROR(TSDB_CODE_NO_WRITE_ACCESS, 0, 91, "no write access")
#define TSDB_CODE_SESSION_NOT_READY 103 // table NOT in ready state TAOS_DEFINE_ERROR(TSDB_CODE_NO_READ_ACCESS, 0, 92, "no read access")
#define TSDB_CODE_BATCH_SIZE_TOO_BIG 104 TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_DB_LIMITED, 0, 93, "grant db limited")
#define TSDB_CODE_TIMESTAMP_OUT_OF_RANGE 105 TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_USER_LIMITED, 0, 94, "grant user limited")
#define TSDB_CODE_INVALID_QUERY_MSG 106 // failed to validate the sql expression msg by vnode TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_CONN_LIMITED, 0, 95, "grant conn limited")
#define TSDB_CODE_SORTED_RES_TOO_MANY 107 // too many result for ordered super table projection query TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_STREAM_LIMITED, 0, 96, "grant stream limited")
#define TSDB_CODE_FILE_BLOCK_TS_DISORDERED 108 // time stamp in file block is disordered TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_SPEED_LIMITED, 0, 97, "grant speed limited")
#define TSDB_CODE_INVALID_COMMIT_LOG 109 // commit log init failed TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_STORAGE_LIMITED, 0, 98, "grant storage limited")
#define TSDB_CODE_SERV_NO_DISKSPACE 110 TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_QUERYTIME_LIMITED, 0, 99, "grant query time limited")
#define TSDB_CODE_NOT_SUPER_TABLE 111 // operation only available for super table TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_ACCT_LIMITED, 0, 100, "grant account limited")
#define TSDB_CODE_DUPLICATE_TAGS 112 // tags value for join not unique TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_DNODE_LIMITED, 0, 101, "grant dnode limited")
#define TSDB_CODE_INVALID_SUBMIT_MSG 113 TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_CPU_LIMITED, 0, 102, "grant cpu limited")
#define TSDB_CODE_NOT_ACTIVE_TABLE 114 TAOS_DEFINE_ERROR(TSDB_CODE_SESSION_NOT_READY, 0, 103, "session not ready") // table NOT in ready state
#define TSDB_CODE_INVALID_TABLE_ID 115 TAOS_DEFINE_ERROR(TSDB_CODE_BATCH_SIZE_TOO_BIG, 0, 104, "batch size too big")
#define TSDB_CODE_INVALID_VNODE_STATUS 116 TAOS_DEFINE_ERROR(TSDB_CODE_TIMESTAMP_OUT_OF_RANGE, 0, 105, "timestamp out of range")
#define TSDB_CODE_FAILED_TO_LOCK_RESOURCES 117 TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_QUERY_MSG, 0, 106, "invalid query message") // failed to validate the sql expression msg by vnode
#define TSDB_CODE_TABLE_ID_MISMATCH 118 TAOS_DEFINE_ERROR(TSDB_CODE_SORTED_RES_TOO_MANY, 0, 107, "sorted res too many") // too many result for ordered super table projection query
#define TSDB_CODE_QUERY_CACHE_ERASED 119 TAOS_DEFINE_ERROR(TSDB_CODE_FILE_BLOCK_TS_DISORDERED, 0, 108, "file block ts disordered") // time stamp in file block is disordered
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_COMMIT_LOG, 0, 109, "invalid commit log") // commit log init failed
TAOS_DEFINE_ERROR(TSDB_CODE_SERV_NO_DISKSPACE, 0, 110, "server no diskspace")
TAOS_DEFINE_ERROR(TSDB_CODE_NOT_SUPER_TABLE, 0, 111, "no super table") // operation only available for super table
TAOS_DEFINE_ERROR(TSDB_CODE_DUPLICATE_TAGS, 0, 112, "duplicate tags") // tags value for join not unique
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_SUBMIT_MSG, 0, 113, "invalid submit message")
TAOS_DEFINE_ERROR(TSDB_CODE_NOT_ACTIVE_TABLE, 0, 114, "not active table")
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_TABLE_ID, 0, 115, "invalid table id")
TAOS_DEFINE_ERROR(TSDB_CODE_INVALID_VNODE_STATUS, 0, 116, "invalid vnode status")
TAOS_DEFINE_ERROR(TSDB_CODE_FAILED_TO_LOCK_RESOURCES, 0, 117, "failed to lock resources")
TAOS_DEFINE_ERROR(TSDB_CODE_TABLE_ID_MISMATCH, 0, 118, "table id mismatch")
TAOS_DEFINE_ERROR(TSDB_CODE_QUERY_CACHE_ERASED, 0, 119, "query cache erased")
#ifdef TAOS_ERROR_C
};
#endif
#define TSDB_CODE_MAX_ERROR_CODE 120 #define TSDB_CODE_MAX_ERROR_CODE 120
......
...@@ -199,7 +199,6 @@ enum { ...@@ -199,7 +199,6 @@ enum {
#define TSDB_COL_JOIN 0x2U #define TSDB_COL_JOIN 0x2U
extern char *taosMsg[]; extern char *taosMsg[];
extern char *tsError[];
#pragma pack(push, 1) #pragma pack(push, 1)
......
...@@ -20,8 +20,6 @@ ...@@ -20,8 +20,6 @@
#include "httpJson.h" #include "httpJson.h"
#include "taosmsg.h" #include "taosmsg.h"
extern char *tsError[];
const char *httpKeepAliveStr[] = {"", "Connection: Keep-Alive\r\n", "Connection: Close\r\n"}; const char *httpKeepAliveStr[] = {"", "Connection: Keep-Alive\r\n", "Connection: Close\r\n"};
const char *httpVersionStr[] = {"HTTP/1.0", "HTTP/1.1", "HTTP/1.2"}; const char *httpVersionStr[] = {"HTTP/1.0", "HTTP/1.1", "HTTP/1.2"};
...@@ -184,7 +182,7 @@ void httpSendErrorResp(HttpContext *pContext, int errNo) { httpSendErrorRespWith ...@@ -184,7 +182,7 @@ void httpSendErrorResp(HttpContext *pContext, int errNo) { httpSendErrorRespWith
void httpSendTaosdErrorResp(HttpContext *pContext, int errCode) { void httpSendTaosdErrorResp(HttpContext *pContext, int errCode) {
int httpCode = 400; int httpCode = 400;
httpSendErrorRespImp(pContext, httpCode, "Bad Request", errCode, tsError[errCode]); httpSendErrorRespImp(pContext, httpCode, "Bad Request", errCode, tstrerror(errCode));
} }
void httpSendTaosdInvalidSqlErrorResp(HttpContext *pContext, char* errMsg) { void httpSendTaosdInvalidSqlErrorResp(HttpContext *pContext, char* errMsg) {
......
...@@ -122,126 +122,3 @@ char *taosMsg[] = {"null", ...@@ -122,126 +122,3 @@ char *taosMsg[] = {"null",
"alter-acct", "alter-acct",
"alter-acct-rsp", "alter-acct-rsp",
"invalid"}; "invalid"};
char *tsError[] = {"success",
"in progress",
"",
"",
"",
"last session not finished", // 5
"invalid session ID",
"invalid tran ID",
"invalid msg type",
"alredy processed",
"authentication failure", // 10
"wrong msg size",
"unexpected response",
"invalid response type",
"no resource",
"server-client date time unsynced", // 15
"mismatched meter ID",
"transcation not finished",
"not online",
"send failed",
"not active session", // 20
"invalid vnode id",
"App error",
"invalid IE",
"invalid value",
"service not available", // 25
"already there",
"invalid meter ID",
"invalid SQL",
"failed to connect to server",
"invalid msg len", // 30
"invalid DB",
"invalid table",
"DB already there",
"table already there",
"invalid user name", // 35
"invalid acct name",
"invalid password",
"DB not selected",
"memory corrupted",
"user name exists", // 40
"not authorized",
"login disconnected, login again",
"mgmt master node not available",
"not configured",
"invalid option", // 45
"node offline",
"sync required",
"more dnodes are needed",
"node in unsynced state",
"too slow", // 50
"others",
"can't remove dnode which is master",
"wrong schema",
"vnode not active(not created yet or dropped already)",
"num of users execeed maxUsers", //55
"num of databases execeed maxDbs",
"num of tables execeed maxTables",
"num of dnodes execeed maxDnodes",
"num of accounts execeed maxAccts",
"accout name exists", // 60
"dnode ip exists",
"sdb error",
"metric meta expired",
"not ready",
"too many sessions on server", // 65
"too many sessions from app",
"session to dest is already there",
"query list not there, please show again",
"server out of memory",
"invalid query handle", // 70
"tables related to metric exist",
"can't drop monitor database or tables",
"no disk permissions",
"vgroup init failed",
"data is already imported", // 75
"not supported operation",
"invalid query id string",
"invalid stream id string",
"invalid connection string",
"dnode not balanced", // 80
"client out of memory",
"data value overflow",
"query cancelled",
"grant timeseries limited",
"grant expired", // 85
"client no disk space",
"DB file corrupted",
"version of client and server not match",
"invalid account parameter",
"no enough available time series", //90
"storage credit is used up",
"query credit is used up",
"grant database limited",
"grant user limited",
"grant connection limited", //95
"grant stream limited",
"grant writing speed limited",
"grant storage limited",
"grant query time limited",
"grant account limited", // 100
"grant dnode limited",
"grant cpu core limited",
"session not ready",
"batch size too big",
"timestamp out of range", //105
"invalid query message",
"too many results from vnodes for sort",
"timestamp disordered in file block",
"invalid commit log",
"no disk space on server", //110
"only super table has metric meta info",
"tags value not unique for join",
"invalid submit message",
"not active table(not created yet or dropped already)",
"invalid table id", // 115
"invalid vnode status",
"failed to lock resources",
"table id/uid mismatch",
"client query cache erased", // 119
};
/*
* Copyright (c) 2020 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <pthread.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#define TAOS_ERROR_C
typedef struct {
int32_t val;
const char* str;
} STaosError;
#include "taoserror.h"
static _Thread_local int32_t tsErrno;
int32_t* taosGetErrno() {
return &tsErrno;
}
static int tsCompareTaosError(const void* a, const void* b) {
const STaosError* x = (const STaosError*)a;
const STaosError* y = (const STaosError*)b;
return x->val - y->val;
}
static pthread_once_t tsErrorInit = PTHREAD_ONCE_INIT;
static void tsSortError() {
qsort(errors, sizeof(errors)/sizeof(errors[0]), sizeof(errors[0]), tsCompareTaosError);
}
const char* tstrerror(int32_t err) {
pthread_once(&tsErrorInit, tsSortError);
// this is a system errno
if ((err & 0x00ff0000) == 0x00ff0000) {
return strerror(err & 0x0000ffff);
}
int s = 0, e = sizeof(errors)/sizeof(errors[0]);
while (s < e) {
int mid = (s + e) / 2;
if (err > errors[mid].val) {
s = mid + 1;
} else if (err < errors[mid].val) {
e = mid;
} else if (err == errors[mid].val) {
return errors[mid].str;
}
break;
}
return "";
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册