|
ADBC
Arrow 数据库连接
|
类 | |
| struct | AdbcError |
| 操作的详细错误消息。 更多... | |
| struct | AdbcErrorDetail |
| 错误的额外键值元数据。 更多... | |
宏 | |
| #define | ADBC_STATUS_OK 0 |
| 没有错误。 | |
| #define | ADBC_STATUS_UNKNOWN 1 |
| 发生未知错误。 | |
| #define | ADBC_STATUS_NOT_IMPLEMENTED 2 |
| 该操作未实现或不支持。 | |
| #define | ADBC_STATUS_NOT_FOUND 3 |
| 找不到请求的资源。 | |
| #define | ADBC_STATUS_ALREADY_EXISTS 4 |
| 请求的资源已存在。 | |
| #define | ADBC_STATUS_INVALID_ARGUMENT 5 |
| 参数无效,可能是编程错误。 | |
| #define | ADBC_STATUS_INVALID_STATE 6 |
| 不满足操作的前提条件,可能是编程错误。 | |
| #define | ADBC_STATUS_INVALID_DATA 7 |
| 处理了无效数据(不是编程错误)。 | |
| #define | ADBC_STATUS_INTEGRITY 8 |
| 数据库的完整性受到影响。 | |
| #define | ADBC_STATUS_INTERNAL 9 |
| 驱动程序或数据库内部发生错误。 | |
| #define | ADBC_STATUS_IO 10 |
| 发生 I/O 错误。 | |
| #define | ADBC_STATUS_CANCELLED 11 |
| 该操作已取消,不是因为超时。 | |
| #define | ADBC_STATUS_TIMEOUT 12 |
| 该操作因超时而取消。 | |
| #define | ADBC_STATUS_UNAUTHENTICATED 13 |
| 身份验证失败。 | |
| #define | ADBC_STATUS_UNAUTHORIZED 14 |
| 客户端未被授权执行给定的操作。 | |
| #define | ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA INT32_MIN |
| 通知驱动程序/驱动程序管理器,我们正在使用来自 ADBC 1.1.0 的扩展 AdbcError 结构。 | |
| #define | ADBC_ERROR_INIT |
| 一个辅助函数,用于初始化完整的 AdbcError 结构。 | |
| #define | ADBC_ERROR_1_0_0_SIZE (offsetof(struct AdbcError, private_data)) |
| ADBC 1.0.0 中 AdbcError 结构的大小。 | |
| #define | ADBC_ERROR_1_1_0_SIZE (sizeof(struct AdbcError)) |
| ADBC 1.1.0 中 AdbcError 结构的大小。 | |
类型定义 | |
| typedef uint8_t | AdbcStatusCode |
| 可能失败的操作的错误代码。 | |
函数 | |
| int | AdbcErrorGetDetailCount (const struct AdbcError *error) |
| 获取错误中可用的元数据值的数量。 | |
| struct AdbcErrorDetail | AdbcErrorGetDetail (const struct AdbcError *error, int index) |
| 通过索引获取错误中的元数据值。 | |
| const struct AdbcError * | AdbcErrorFromArrayStream (struct ArrowArrayStream *stream, AdbcStatusCode *status) |
| 从驱动程序创建的 ArrowArrayStream 获取 ADBC 错误。 | |
ADBC 使用整数错误代码来表示错误。 为了提供有关错误的更多详细信息,函数还可以通过可选的 out 参数返回 AdbcError,可以对其进行检查。 如果提供,则调用者有责任将 AdbcError 值零初始化。
| struct AdbcError |
操作的详细错误消息。
调用者必须将此结构零初始化(在 ADBC 1.1.0 中已阐明)。
该结构在 ADBC 1.1.0 中进行了扩展。 使用 ADBC 1.0.0 的驱动程序和客户端将没有 private_data 或 private_driver 字段。 驱动程序应该仅当 vendor_code 等于 ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA 时才读取/写入这些字段。 客户端需要初始化此结构,以避免未初始化的值使驱动程序感到困惑的可能性。
公共属性 | |
| char * | message |
| 错误消息。 | |
| int32_t | vendor_code |
| 供应商特定的错误代码(如果适用)。 | |
| char | sqlstate [5] |
| SQLSTATE 错误代码(如果提供),由 SQL:2003 标准定义。 如果未设置,则应将其设置为 "\0\0\0\0\0"。 | |
| void(* | release )(struct AdbcError *error) |
| 释放包含的错误。 | |
| void * | private_data |
| 不透明的实现定义状态。 | |
| struct AdbcDriver * | private_driver |
| 关联的驱动程序(由驱动程序管理器用于帮助跟踪状态)。 | |
| char* AdbcError::message |
错误消息。
| void* AdbcError::private_data |
不透明的实现定义状态。
仅当 vendor_code 为 ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA 时,才能使用此字段。 如果存在,则当错误未初始化/释放时,此字段为 NULLPTR。
| struct AdbcDriver* AdbcError::private_driver |
关联的驱动程序(由驱动程序管理器用于帮助跟踪状态)。
仅当 vendor_code 为 ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA 时,才能使用此字段。
| void(* AdbcError::release) (struct AdbcError *error) |
释放包含的错误。
与其他结构不同,这是一个嵌入式回调,使驱动程序管理器和驱动程序更容易协作。
| char AdbcError::sqlstate[5] |
SQLSTATE 错误代码(如果提供),由 SQL:2003 标准定义。 如果未设置,则应将其设置为 "\0\0\0\0\0"。
| int32_t AdbcError::vendor_code |
供应商特定的错误代码(如果适用)。
| struct AdbcErrorDetail |
| #define ADBC_ERROR_1_0_0_SIZE (offsetof(struct AdbcError, private_data)) |
ADBC 1.0.0 中 AdbcError 结构的大小。
为 ADBC 1.1.0 及更高版本编写的驱动程序,当 vendor_code 不是 ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA 时,绝不应接触 AdbcDriver 结构的这一部分以上。
| #define ADBC_ERROR_1_1_0_SIZE (sizeof(struct AdbcError)) |
ADBC 1.1.0 中 AdbcError 结构的大小。
为 ADBC 1.1.0 及更高版本编写的驱动程序,当 vendor_code 为 ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA 时,绝不应接触 AdbcDriver 结构的这一部分以上。
| #define ADBC_ERROR_INIT |
一个辅助函数,用于初始化完整的 AdbcError 结构。
| #define ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA INT32_MIN |
| #define ADBC_STATUS_ALREADY_EXISTS 4 |
请求的资源已存在。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_CANCELLED 11 |
该操作已取消,不是因为超时。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_INTEGRITY 8 |
数据库的完整性受到影响。
例如,外键检查可能失败,或者唯一性约束可能被违反。
可能仅表示数据库端错误。
| #define ADBC_STATUS_INTERNAL 9 |
驱动程序或数据库内部发生错误。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_INVALID_ARGUMENT 5 |
参数无效,可能是编程错误。
例如,它们可能格式错误或超出范围。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_INVALID_DATA 7 |
处理了无效数据(不是编程错误)。
例如,查询执行期间可能发生了除以零的情况。
可能仅表示数据库端错误。
| #define ADBC_STATUS_INVALID_STATE 6 |
不满足操作的前提条件,可能是编程错误。
例如,该对象可能未初始化,或者可能未完全配置。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_IO 10 |
发生 I/O 错误。
例如,远程服务可能不可用。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_NOT_FOUND 3 |
找不到请求的资源。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_NOT_IMPLEMENTED 2 |
该操作未实现或不支持。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_OK 0 |
没有错误。
| #define ADBC_STATUS_TIMEOUT 12 |
该操作因超时而取消。
可能表示驱动程序端或数据库端错误。
| #define ADBC_STATUS_UNAUTHENTICATED 13 |
身份验证失败。
可能仅表示数据库端错误。
| #define ADBC_STATUS_UNAUTHORIZED 14 |
客户端未被授权执行给定的操作。
可能仅表示数据库端错误。
| #define ADBC_STATUS_UNKNOWN 1 |
发生未知错误。
可能表示驱动程序端或数据库端错误。
| typedef uint8_t AdbcStatusCode |
可能失败的操作的错误代码。
| const struct AdbcError * AdbcErrorFromArrayStream | ( | struct ArrowArrayStream * | stream, |
| AdbcStatusCode * | status ) |
从驱动程序创建的 ArrowArrayStream 获取 ADBC 错误。
这允许检索通常会被 Arrow C Stream 接口抑制的错误详情和其他元数据。
调用者不得释放错误;它由流本身的释放回调函数管理。
| [输入] | stream | 要查询的流。 |
| [输出] | status | ADBC 状态码,如果没有错误,则为 ADBC_STATUS_OK。 如果流不包含 ADBC 错误或指针为 NULL,则不会写入。 |
| struct AdbcErrorDetail AdbcErrorGetDetail | ( | const struct AdbcError * | error, |
| int | index ) |
| int AdbcErrorGetDetailCount | ( | const struct AdbcError * | error | ) |
获取错误中可用的元数据值的数量。