blob: e2eaca8346f5bc30a001d4a37b8ff96d319d94a4 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
using System;
using System.Collections.Generic;
namespace Apache.IoTDB
{
public enum TSStatusCode
{
SUCCESS_STATUS = 200,
// System level
INCOMPATIBLE_VERSION = 201,
CONFIGURATION_ERROR = 202,
START_UP_ERROR = 203,
SHUT_DOWN_ERROR = 204,
// General Error
UNSUPPORTED_OPERATION = 300,
EXECUTE_STATEMENT_ERROR = 301,
MULTIPLE_ERROR = 302,
ILLEGAL_PARAMETER = 303,
OVERLAP_WITH_EXISTING_TASK = 304,
INTERNAL_SERVER_ERROR = 305,
DISPATCH_ERROR = 306,
LICENSE_ERROR = 307,
// Client
REDIRECTION_RECOMMEND = 400,
// Schema Engine
DATABASE_NOT_EXIST = 500,
DATABASE_ALREADY_EXISTS = 501,
SERIES_OVERFLOW = 502,
TIMESERIES_ALREADY_EXIST = 503,
TIMESERIES_IN_BLACK_LIST = 504,
ALIAS_ALREADY_EXIST = 505,
PATH_ALREADY_EXIST = 506,
METADATA_ERROR = 507,
PATH_NOT_EXIST = 508,
ILLEGAL_PATH = 509,
CREATE_TEMPLATE_ERROR = 510,
DUPLICATED_TEMPLATE = 511,
UNDEFINED_TEMPLATE = 512,
TEMPLATE_NOT_SET = 513,
DIFFERENT_TEMPLATE = 514,
TEMPLATE_IS_IN_USE = 515,
TEMPLATE_INCOMPATIBLE = 516,
SEGMENT_NOT_FOUND = 517,
PAGE_OUT_OF_SPACE = 518,
RECORD_DUPLICATED = 519,
SEGMENT_OUT_OF_SPACE = 520,
PBTREE_FILE_NOT_EXISTS = 521,
OVERSIZE_RECORD = 522,
PBTREE_FILE_REDO_LOG_BROKEN = 523,
TEMPLATE_NOT_ACTIVATED = 524,
DATABASE_CONFIG_ERROR = 525,
SCHEMA_QUOTA_EXCEEDED = 526,
MEASUREMENT_ALREADY_EXISTS_IN_TEMPLATE = 527,
// Storage Engine
SYSTEM_READ_ONLY = 600,
STORAGE_ENGINE_ERROR = 601,
STORAGE_ENGINE_NOT_READY = 602,
DATAREGION_PROCESS_ERROR = 603,
TSFILE_PROCESSOR_ERROR = 604,
WRITE_PROCESS_ERROR = 605,
WRITE_PROCESS_REJECT = 606,
OUT_OF_TTL = 607,
COMPACTION_ERROR = 608,
ALIGNED_TIMESERIES_ERROR = 609,
WAL_ERROR = 610,
DISK_SPACE_INSUFFICIENT = 611,
OVERSIZE_TTL = 612,
TTL_CONFIG_ERROR = 613,
// Query Engine
SQL_PARSE_ERROR = 700,
SEMANTIC_ERROR = 701,
GENERATE_TIME_ZONE_ERROR = 702,
SET_TIME_ZONE_ERROR = 703,
QUERY_NOT_ALLOWED = 704,
LOGICAL_OPERATOR_ERROR = 705,
LOGICAL_OPTIMIZE_ERROR = 706,
UNSUPPORTED_FILL_TYPE = 707,
QUERY_PROCESS_ERROR = 708,
MPP_MEMORY_NOT_ENOUGH = 709,
CLOSE_OPERATION_ERROR = 710,
TSBLOCK_SERIALIZE_ERROR = 711,
INTERNAL_REQUEST_TIME_OUT = 712,
INTERNAL_REQUEST_RETRY_ERROR = 713,
NO_SUCH_QUERY = 714,
QUERY_WAS_KILLED = 715,
EXPLAIN_ANALYZE_FETCH_ERROR = 716,
// Authentication
INIT_AUTH_ERROR = 800,
WRONG_LOGIN_PASSWORD = 801,
NOT_LOGIN = 802,
NO_PERMISSION = 803,
USER_NOT_EXIST = 804,
USER_ALREADY_EXIST = 805,
USER_ALREADY_HAS_ROLE = 806,
USER_NOT_HAS_ROLE = 807,
ROLE_NOT_EXIST = 808,
ROLE_ALREADY_EXIST = 809,
NOT_HAS_PRIVILEGE = 811,
CLEAR_PERMISSION_CACHE_ERROR = 812,
UNKNOWN_AUTH_PRIVILEGE = 813,
UNSUPPORTED_AUTH_OPERATION = 814,
AUTH_IO_EXCEPTION = 815,
ILLEGAL_PRIVILEGE = 816,
NOT_HAS_PRIVILEGE_GRANTOPT = 817,
AUTH_OPERATE_EXCEPTION = 818,
// Partition Error
MIGRATE_REGION_ERROR = 900,
CREATE_REGION_ERROR = 901,
DELETE_REGION_ERROR = 902,
PARTITION_CACHE_UPDATE_ERROR = 903,
CONSENSUS_NOT_INITIALIZED = 904,
REGION_LEADER_CHANGE_ERROR = 905,
NO_AVAILABLE_REGION_GROUP = 906,
LACK_PARTITION_ALLOCATION = 907,
// Cluster Manager
ADD_CONFIGNODE_ERROR = 1000,
REMOVE_CONFIGNODE_ERROR = 1001,
REJECT_NODE_START = 1002,
NO_ENOUGH_DATANODE = 1003,
DATANODE_NOT_EXIST = 1004,
DATANODE_STOP_ERROR = 1005,
REMOVE_DATANODE_ERROR = 1006,
CAN_NOT_CONNECT_DATANODE = 1007,
TRANSFER_LEADER_ERROR = 1008,
GET_CLUSTER_ID_ERROR = 1009,
CAN_NOT_CONNECT_CONFIGNODE = 1010,
// Sync, Load TsFile
LOAD_FILE_ERROR = 1100,
LOAD_PIECE_OF_TSFILE_ERROR = 1101,
DESERIALIZE_PIECE_OF_TSFILE_ERROR = 1102,
SYNC_CONNECTION_ERROR = 1103,
SYNC_FILE_REDIRECTION_ERROR = 1104,
SYNC_FILE_ERROR = 1105,
CREATE_PIPE_SINK_ERROR = 1106,
PIPE_ERROR = 1107,
PIPESERVER_ERROR = 1108,
VERIFY_METADATA_ERROR = 1109,
// UDF
UDF_LOAD_CLASS_ERROR = 1200,
UDF_DOWNLOAD_ERROR = 1201,
CREATE_UDF_ON_DATANODE_ERROR = 1202,
DROP_UDF_ON_DATANODE_ERROR = 1203,
// Trigger
CREATE_TRIGGER_ERROR = 1300,
DROP_TRIGGER_ERROR = 1301,
TRIGGER_FIRE_ERROR = 1302,
TRIGGER_LOAD_CLASS_ERROR = 1303,
TRIGGER_DOWNLOAD_ERROR = 1304,
CREATE_TRIGGER_INSTANCE_ERROR = 1305,
ACTIVE_TRIGGER_INSTANCE_ERROR = 1306,
DROP_TRIGGER_INSTANCE_ERROR = 1307,
UPDATE_TRIGGER_LOCATION_ERROR = 1308,
// Continuous Query
NO_SUCH_CQ = 1400,
CQ_ALREADY_ACTIVE = 1401,
CQ_ALREADY_EXIST = 1402,
CQ_UPDATE_LAST_EXEC_TIME_ERROR = 1403,
// code 1500-1599 are used by IoTDB-ML
// Pipe Plugin
CREATE_PIPE_PLUGIN_ERROR = 1600,
DROP_PIPE_PLUGIN_ERROR = 1601,
PIPE_PLUGIN_LOAD_CLASS_ERROR = 1602,
PIPE_PLUGIN_DOWNLOAD_ERROR = 1603,
CREATE_PIPE_PLUGIN_ON_DATANODE_ERROR = 1604,
DROP_PIPE_PLUGIN_ON_DATANODE_ERROR = 1605,
// Quota
SPACE_QUOTA_EXCEEDED = 1700,
NUM_REQUESTS_EXCEEDED = 1701,
REQUEST_SIZE_EXCEEDED = 1702,
NUM_READ_REQUESTS_EXCEEDED = 1703,
NUM_WRITE_REQUESTS_EXCEEDED = 1704,
WRITE_SIZE_EXCEEDED = 1705,
READ_SIZE_EXCEEDED = 1706,
QUOTA_MEM_QUERY_NOT_ENOUGH = 1707,
QUERY_CPU_QUERY_NOT_ENOUGH = 1708,
// Pipe
PIPE_VERSION_ERROR = 1800,
PIPE_TYPE_ERROR = 1801,
PIPE_HANDSHAKE_ERROR = 1802,
PIPE_TRANSFER_FILE_OFFSET_RESET = 1803,
PIPE_TRANSFER_FILE_ERROR = 1804,
PIPE_TRANSFER_EXECUTE_STATEMENT_ERROR = 1805,
PIPE_NOT_EXIST_ERROR = 1806,
PIPE_PUSH_META_ERROR = 1807,
PIPE_RECEIVER_TEMPORARY_UNAVAILABLE_EXCEPTION = 1808,
PIPE_RECEIVER_IDEMPOTENT_CONFLICT_EXCEPTION = 1809,
PIPE_RECEIVER_USER_CONFLICT_EXCEPTION = 1810,
PIPE_CONFIG_RECEIVER_HANDSHAKE_NEEDED = 1811,
// Subscription
SUBSCRIPTION_VERSION_ERROR = 1900,
SUBSCRIPTION_TYPE_ERROR = 1901,
SUBSCRIPTION_HANDSHAKE_ERROR = 1902,
SUBSCRIPTION_HEARTBEAT_ERROR = 1903,
SUBSCRIPTION_POLL_ERROR = 1904,
SUBSCRIPTION_COMMIT_ERROR = 1905,
SUBSCRIPTION_CLOSE_ERROR = 1906,
SUBSCRIPTION_SUBSCRIBE_ERROR = 1907,
SUBSCRIPTION_UNSUBSCRIBE_ERROR = 1908,
SUBSCRIPTION_MISSING_CUSTOMER = 1909,
SHOW_SUBSCRIPTION_ERROR = 1910,
// Topic
CREATE_TOPIC_ERROR = 2000,
DROP_TOPIC_ERROR = 2001,
ALTER_TOPIC_ERROR = 2002,
SHOW_TOPIC_ERROR = 2003,
TOPIC_PUSH_META_ERROR = 2004,
// Consumer
CREATE_CONSUMER_ERROR = 2100,
DROP_CONSUMER_ERROR = 2101,
ALTER_CONSUMER_ERROR = 2102,
CONSUMER_PUSH_META_ERROR = 2103,
// Pipe Consensus
PIPE_CONSENSUS_CONNECTOR_RESTART_ERROR = 2200,
PIPE_CONSENSUS_VERSION_ERROR = 2201,
PIPE_CONSENSUS_DEPRECATED_REQUEST = 2202,
PIPE_CONSENSUS_TRANSFER_FILE_OFFSET_RESET = 2203,
PIPE_CONSENSUS_TRANSFER_FILE_ERROR = 2204,
PIPE_CONSENSUS_TYPE_ERROR = 2205
}
public static class TSStatusExtensions
{
private static readonly Dictionary<int, TSStatusCode> codeMap = new Dictionary<int, TSStatusCode>();
static TSStatusExtensions()
{
foreach (TSStatusCode statusCode in Enum.GetValues(typeof(TSStatusCode)))
{
codeMap[statusCode.GetHashCode()] = statusCode;
}
}
public static TSStatusCode RepresentOf(int statusCode)
{
if (codeMap.TryGetValue(statusCode, out TSStatusCode value))
{
return value;
}
throw new ArgumentOutOfRangeException(nameof(statusCode), "Unknown status code.");
}
public static string ToString(TSStatusCode statusCode)
{
return $"{statusCode}({(int)statusCode})";
}
}
}