package com.easyagents.federation.sql.api;

/**
 * SQL 联邦查询稳定错误码。
 */
public enum FederationSqlErrorCode {
    /** 公共参数不合法。 */
    INVALID_ARGUMENT,
    /** Engine 或 SourceManager 已关闭。 */
    ENGINE_CLOSED,
    /** SQL 解析失败。 */
    SQL_PARSE_FAILED,
    /** SQL 校验失败。 */
    SQL_VALIDATION_FAILED,
    /** SQL 超出只读查询基线。 */
    SQL_NOT_READ_ONLY,
    /** SQL 编译或关系转换失败。 */
    SQL_COMPILE_FAILED,
    /** SQL 冷编译等待或编译过程超过统一时限。 */
    SQL_COMPILE_TIMEOUT,
    /** SQL 编辑器补全失败。 */
    SQL_COMPLETION_FAILED,
    /** 单源计划仍含不可执行的本地残余算子。 */
    SQL_NOT_FULLY_PUSHDOWN,
    /** 跨数据源能力未开启。 */
    CROSS_SOURCE_DISABLED,
    /** 跨数据源执行在当前阶段未实现。 */
    CROSS_SOURCE_EXECUTION_UNSUPPORTED,
    /** 查询范围或 Binding 声明不合法。 */
    INVALID_QUERY_SCOPE,
    /** 联邦本地执行暂不支持当前关系算子。 */
    FEDERATION_OPERATOR_UNSUPPORTED,
    /** 联邦中间结果行数、字节数或执行时间超过限制。 */
    FEDERATION_RESOURCE_LIMIT_EXCEEDED,
    /** 节点本地计划绑定的 Runtime 身份已经失效。 */
    PLAN_STALE,
    /** 数据源未登记且无法从共享状态恢复。 */
    SOURCE_NOT_FOUND,
    /** 数据源已被墓碑删除。 */
    SOURCE_REMOVED,
    /** 节点本地数据源版本不满足请求。 */
    SOURCE_REVISION_NOT_READY,
    /** 同 revision 出现不同 Definition 校验和。 */
    SOURCE_DEFINITION_CONFLICT,
    /** 数据源 Runtime 初始化失败。 */
    SOURCE_INITIALIZATION_FAILED,
    /** Adapter 未注册。 */
    ADAPTER_NOT_FOUND,
    /** Adapter 不支持当前数据库。 */
    ADAPTER_UNSUPPORTED,
    /** SQL 动态参数数量不匹配。 */
    PARAMETER_COUNT_MISMATCH,
    /** 查询准入等待超时或被中断。 */
    QUERY_ADMISSION_TIMEOUT,
    /** 节点本地联邦中间结果内存准入超时。 */
    NODE_MEMORY_ADMISSION_TIMEOUT,
    /** JDBC 连接池获取连接达到超时。 */
    CONNECTION_ACQUISITION_TIMEOUT,
    /** JDBC 连接获取因网络、认证或连接池关闭等原因失败。 */
    CONNECTION_ACQUISITION_FAILED,
    /** 查询被主动取消。 */
    QUERY_CANCELLED,
    /** JDBC 查询或结果读取达到驱动超时。 */
    QUERY_TIMEOUT,
    /** JDBC 查询执行失败。 */
    EXECUTION_FAILED,
    /** 物理数据库 Explain 执行失败。 */
    EXPLAIN_FAILED,
    /** JDBC 或 Runtime 资源关闭失败。 */
    RESOURCE_CLOSE_FAILED
}
