MOT错误消息

错误可能由多种场景引起。所有错误都记录在数据库服务器日志文件中。此外,与用户相关的错误作为对查询、事务或存储过程执行或数据库管理操作的响应的一部分返回给用户。

  • 服务器日志中报告的错误包括函数、实体、上下文、错误消息、错误描述和严重性。
  • 向用户报告的错误被翻译成标准PostgreSQL错误码,可能由MOT特定的消息和描述组成。

错误提示、错误描述和错误码见下文。该错误码实际上是内部代码,不记录也不返回给用户。

写入日志文件的错误

所有错误都记录在数据库服务器日志文件中。以下列出了写入数据库服务器日志文件但未返回给用户的错误。该日志位于data文件夹中,命名为postgresql-DATE-TIME.log。

表 1 只写入日志文件的错误

日志消息

内部错误代码

Error code denoting success

MOT_NO_ERROR 0

Out of memory

MOT_ERROR_OOM 1

Invalid configuration

MOT_ERROR_INVALID_CFG 2

Invalid argument passed to function

MOT_ERROR_INVALID_ARG 3

System call failed

MOT_ERROR_SYSTEM_FAILURE 4

Resource limit reached

MOT_ERROR_RESOURCE_LIMIT 5

Internal logic error

MOT_ERROR_INTERNAL 6

Resource unavailable

MOT_ERROR_RESOURCE_UNAVAILABLE 7

Unique violation

MOT_ERROR_UNIQUE_VIOLATION 8

Invalid memory allocation size

MOT_ERROR_INVALID_MEMORY_SIZE 9

Index out of range

MOT_ERROR_INDEX_OUT_OF_RANGE 10

Error code unknown

MOT_ERROR_INVALID_STATE 11

返回给用户的错误

下面列出了写入数据库服务器日志文件并返回给用户的错误。

MOT使用返回码(Return Code,RC)返回Postgres标准错误代码至封装。某些RC会导致向正在与数据库交互的用户生成错误消息。

MOT从内部返回Postgres代码(见下文)到数据库包,数据库封装根据标准的Postgres行为对其做出反应。

MOT错误消息 - 图1 说明:

提示信息中的%s、%u、%lu指代相应的错误信息(如查询、表名或其他信息)。

  • %s:字符串
  • %u:数字
  • %lu:数字

表 2 返回给用户并记录到日志文件的错误

返回给用户的短/长描述

Postgres代码

内部错误码

Success.

Denotes success

ERRCODESUCCESSFUL

COMPLETION

RCOK = 0

Failure

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_ERROR = 1

Unknown error has occurred.

Denotes aborted operation.

ERRCODE_FDW_ERROR

RC_ABORT

Column definition of %s is not supported.

Column type %s is not supported yet.

ERRCODE_INVALID_COLUMN_DEFINITION

RC_UNSUPPORTED_COL_TYPE

Column definition of %s is not supported.

Column type Array of %s is not supported yet.

ERRCODE_INVALID_COLUMN_DEFINITION

RC_UNSUPPORTED_COL_TYPE_ARR

Column size %d exceeds max tuple size %u.

Column definition of %s is not supported.

ERRCODE_FEATURE_NOT_SUPPORTED

RC_EXCEEDS_MAX_ROW_SIZE

Column name %s exceeds max name size %u.

Column definition of %s is not supported.

ERRCODE_INVALID_COLUMN_DEFINITION

RC_COL_NAME_EXCEEDS_MAX_SIZE

Column size %d exceeds max size %u.

Column definition of %s is not supported.

ERRCODE_INVALID_COLUMN_DEFINITION

RC_COL_SIZE_INVLALID

Cannot create table.

Cannot add column %s; as the number of declared columns exceeds the maximum declared columns.

ERRCODE_FEATURE_NOT

SUPPORTED

RCTABLE_EXCEEDS_MAX

DECLAREDCOLS

Cannot create index.

Total column size is greater than maximum index size %u.

ERRCODE_FDW_KEY_SIZE

EXCEEDSMAX_ALLOWED

RC_INDEX_EXCEEDS_MAX_SIZE

Cannot create index.

Total number of indexes for table %s is greater than the maximum number of indexes allowed %u.

ERRCODE_FDW_TOO_MANY

INDEXES

RCTABLE_EXCEEDS_MAX_INDEXES

Cannot execute statement.

Maximum number of DDLs per transaction reached the maximum %u.

ERRCODE_FDW_TOO_MANY

DDLCHANGES_IN

TRANSACTIONNOT

ALLOWED

RCTXN_EXCEEDS_MAX_DDLS

Unique constraint violation

Duplicate key value violates unique constraint \”%s\””.

Key %s already exists.

ERRCODE_UNIQUE

VIOLATION

RCUNIQUE_VIOLATION

Table \”%s\” does not exist.

ERRCODE_UNDEFINED_TABLE

RC_TABLE_NOT_FOUND

Index \”%s\” does not exist.

ERRCODE_UNDEFINED_TABLE

RC_INDEX_NOT_FOUND

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_LOCAL_ROW_FOUND

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_LOCAL_ROW_NOT_FOUND

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_LOCAL_ROW_DELETED

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_INSERT_ON_EXIST

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_INDEX_RETRY_INSERT

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_INDEX_DELETE

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_LOCAL_ROW_NOT_VISIBLE

Memory is temporarily unavailable.

ERRCODE_OUT_OF_LOGICAL_MEMORY

RC_MEMORY_ALLOCATION_ERROR

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_ILLEGAL_ROW_STATE

Null constraint violated.

NULL value cannot be inserted into non-null column %s at table %s.

ERRCODE_FDW_ERROR

RC_NULL_VIOLATION

Critical error.

Critical error: %s.

ERRCODE_FDW_ERROR

RC_PANIC

A checkpoint is in progress – cannot truncate table.

ERRCODE_FDW_OPERATION_NOT_SUPPORTED

RC_NA

Unknown error has occurred.

ERRCODE_FDW_ERROR

RC_MAX_VALUE

<recovery message>

-

ERRCODE_CONFIG_FILE_ERROR

<recovery message>

-

ERRCODE_INVALID_TABLE

DEFINITION

Memory engine – Failed to perform commit prepared.

-

ERRCODEINVALID_TRANSACTION

STATE

Invalid option <option name>

-

ERRCODEFDW_INVALID_OPTION

NAME

Invalid memory allocation request size.

-

ERRCODEINVALID_PARAMETER

VALUE

Memory is temporarily unavailable.

-

ERRCODEOUT_OF_LOGICAL

MEMORY

Could not serialize access due to concurrent update.

-

ERRCODET_R_SERIALIZATION

FAILURE

Alter table operation is not supported for memory table.

Cannot create MOT tables while incremental checkpoint is enabled.

Re-index is not supported for memory tables.

-

ERRCODEFDW_OPERATION_NOT

SUPPORTED

Allocation of table metadata failed.

-

ERRCODEOUT_OF_MEMORY

Database with OID %u does not exist.

-

ERRCODE_UNDEFINED_DATABASE

Value exceeds maximum precision: %d.

-

ERRCODE_NUMERIC_VALUE_OUT

OFRANGE

You have reached a maximum logical capacity %lu of allowed %lu.

-

ERRCODE_OUT_OF_LOGICAL

MEMORY