| 1 | /***************************************************************************** |
| 2 | |
| 3 | Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. |
| 4 | Copyright (c) 2015, 2018, MariaDB Corporation. |
| 5 | |
| 6 | This program is free software; you can redistribute it and/or modify it under |
| 7 | the terms of the GNU General Public License as published by the Free Software |
| 8 | Foundation; version 2 of the License. |
| 9 | |
| 10 | This program is distributed in the hope that it will be useful, but WITHOUT |
| 11 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
| 12 | FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. |
| 13 | |
| 14 | You should have received a copy of the GNU General Public License along with |
| 15 | this program; if not, write to the Free Software Foundation, Inc., |
| 16 | 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA |
| 17 | |
| 18 | *****************************************************************************/ |
| 19 | |
| 20 | /**************************************************//** |
| 21 | @file include/db0err.h |
| 22 | Global error codes for the database |
| 23 | |
| 24 | Created 5/24/1996 Heikki Tuuri |
| 25 | *******************************************************/ |
| 26 | |
| 27 | #ifndef db0err_h |
| 28 | #define db0err_h |
| 29 | |
| 30 | /* Do not include univ.i because univ.i includes this. */ |
| 31 | |
| 32 | enum dberr_t { |
| 33 | DB_SUCCESS_LOCKED_REC = 9, /*!< like DB_SUCCESS, but a new |
| 34 | explicit record lock was created */ |
| 35 | DB_SUCCESS = 10, |
| 36 | |
| 37 | /* The following are error codes */ |
| 38 | DB_ERROR, |
| 39 | DB_INTERRUPTED, |
| 40 | DB_OUT_OF_MEMORY, |
| 41 | DB_OUT_OF_FILE_SPACE, |
| 42 | DB_LOCK_WAIT, |
| 43 | DB_DEADLOCK, |
| 44 | DB_ROLLBACK, |
| 45 | DB_DUPLICATE_KEY, |
| 46 | DB_MISSING_HISTORY, /*!< required history data has been |
| 47 | deleted due to lack of space in |
| 48 | rollback segment */ |
| 49 | DB_CLUSTER_NOT_FOUND = 30, |
| 50 | DB_TABLE_NOT_FOUND, |
| 51 | DB_MUST_GET_MORE_FILE_SPACE, /*!< the database has to be stopped |
| 52 | and restarted with more file space */ |
| 53 | DB_TABLE_IS_BEING_USED, |
| 54 | DB_TOO_BIG_RECORD, /*!< a record in an index would not fit |
| 55 | on a compressed page, or it would |
| 56 | become bigger than 1/2 free space in |
| 57 | an uncompressed page frame */ |
| 58 | DB_LOCK_WAIT_TIMEOUT, /*!< lock wait lasted too long */ |
| 59 | DB_NO_REFERENCED_ROW, /*!< referenced key value not found |
| 60 | for a foreign key in an insert or |
| 61 | update of a row */ |
| 62 | DB_ROW_IS_REFERENCED, /*!< cannot delete or update a row |
| 63 | because it contains a key value |
| 64 | which is referenced */ |
| 65 | DB_CANNOT_ADD_CONSTRAINT, /*!< adding a foreign key constraint |
| 66 | to a table failed */ |
| 67 | DB_CORRUPTION, /*!< data structure corruption |
| 68 | noticed */ |
| 69 | DB_CANNOT_DROP_CONSTRAINT, /*!< dropping a foreign key constraint |
| 70 | from a table failed */ |
| 71 | DB_NO_SAVEPOINT, /*!< no savepoint exists with the given |
| 72 | name */ |
| 73 | DB_TABLESPACE_EXISTS, /*!< we cannot create a new single-table |
| 74 | tablespace because a file of the same |
| 75 | name already exists */ |
| 76 | DB_TABLESPACE_DELETED, /*!< tablespace was deleted or is |
| 77 | being dropped right now */ |
| 78 | DB_TABLESPACE_NOT_FOUND, /*<! Attempt to delete a tablespace |
| 79 | instance that was not found in the |
| 80 | tablespace hash table */ |
| 81 | DB_LOCK_TABLE_FULL, /*!< lock structs have exhausted the |
| 82 | buffer pool (for big transactions, |
| 83 | InnoDB stores the lock structs in the |
| 84 | buffer pool) */ |
| 85 | DB_FOREIGN_DUPLICATE_KEY, /*!< foreign key constraints |
| 86 | activated by the operation would |
| 87 | lead to a duplicate key in some |
| 88 | table */ |
| 89 | DB_TOO_MANY_CONCURRENT_TRXS, /*!< when InnoDB runs out of the |
| 90 | preconfigured undo slots, this can |
| 91 | only happen when there are too many |
| 92 | concurrent transactions */ |
| 93 | DB_UNSUPPORTED, /*!< when InnoDB sees any artefact or |
| 94 | a feature that it can't recoginize or |
| 95 | work with e.g., FT indexes created by |
| 96 | a later version of the engine. */ |
| 97 | |
| 98 | DB_INVALID_NULL, /*!< a NOT NULL column was found to |
| 99 | be NULL during table rebuild */ |
| 100 | |
| 101 | DB_STATS_DO_NOT_EXIST, /*!< an operation that requires the |
| 102 | persistent storage, used for recording |
| 103 | table and index statistics, was |
| 104 | requested but this storage does not |
| 105 | exist itself or the stats for a given |
| 106 | table do not exist */ |
| 107 | DB_FOREIGN_EXCEED_MAX_CASCADE, /*!< Foreign key constraint related |
| 108 | cascading delete/update exceeds |
| 109 | maximum allowed depth */ |
| 110 | DB_CHILD_NO_INDEX, /*!< the child (foreign) table does |
| 111 | not have an index that contains the |
| 112 | foreign keys as its prefix columns */ |
| 113 | DB_PARENT_NO_INDEX, /*!< the parent table does not |
| 114 | have an index that contains the |
| 115 | foreign keys as its prefix columns */ |
| 116 | DB_TOO_BIG_INDEX_COL, /*!< index column size exceeds |
| 117 | maximum limit */ |
| 118 | DB_INDEX_CORRUPT, /*!< we have corrupted index */ |
| 119 | DB_UNDO_RECORD_TOO_BIG, /*!< the undo log record is too big */ |
| 120 | DB_READ_ONLY, /*!< Update operation attempted in |
| 121 | a read-only transaction */ |
| 122 | DB_FTS_INVALID_DOCID, /* FTS Doc ID cannot be zero */ |
| 123 | DB_TABLE_IN_FK_CHECK, /* table is being used in foreign |
| 124 | key check */ |
| 125 | DB_ONLINE_LOG_TOO_BIG, /*!< Modification log grew too big |
| 126 | during online index creation */ |
| 127 | |
| 128 | DB_IDENTIFIER_TOO_LONG, /*!< Identifier name too long */ |
| 129 | DB_FTS_EXCEED_RESULT_CACHE_LIMIT, /*!< FTS query memory |
| 130 | exceeds result cache limit */ |
| 131 | DB_TEMP_FILE_WRITE_FAIL, /*!< Temp file write failure */ |
| 132 | DB_CANT_CREATE_GEOMETRY_OBJECT, /*!< Cannot create specified Geometry |
| 133 | data object */ |
| 134 | DB_CANNOT_OPEN_FILE, /*!< Cannot open a file */ |
| 135 | DB_FTS_TOO_MANY_WORDS_IN_PHRASE, |
| 136 | /*< Too many words in a phrase */ |
| 137 | |
| 138 | DB_TABLESPACE_TRUNCATED, /*!< tablespace was truncated */ |
| 139 | |
| 140 | DB_DECRYPTION_FAILED, /* Tablespace encrypted and |
| 141 | decrypt operation failed because |
| 142 | of missing key management plugin, |
| 143 | or missing or incorrect key or |
| 144 | incorret AES method or algorithm. */ |
| 145 | |
| 146 | DB_IO_ERROR = 100, /*!< Generic IO error */ |
| 147 | |
| 148 | DB_IO_PARTIAL_FAILED, /*!< Partial IO request failed */ |
| 149 | |
| 150 | DB_FORCED_ABORT, /*!< Transaction was forced to rollback |
| 151 | by a higher priority transaction */ |
| 152 | |
| 153 | DB_TABLE_CORRUPT, /*!< Table/clustered index is |
| 154 | corrupted */ |
| 155 | |
| 156 | DB_COMPUTE_VALUE_FAILED, /*!< Compute generated value failed */ |
| 157 | |
| 158 | DB_NO_FK_ON_S_BASE_COL, /*!< Cannot add foreign constrain |
| 159 | placed on the base column of |
| 160 | stored column */ |
| 161 | |
| 162 | DB_IO_NO_PUNCH_HOLE, /*!< Punch hole not supported by |
| 163 | file system. */ |
| 164 | |
| 165 | DB_PAGE_CORRUPTED, /* Page read from tablespace is |
| 166 | corrupted. */ |
| 167 | /* The following are partial failure codes */ |
| 168 | DB_FAIL = 1000, |
| 169 | DB_OVERFLOW, |
| 170 | DB_UNDERFLOW, |
| 171 | DB_STRONG_FAIL, |
| 172 | DB_ZIP_OVERFLOW, |
| 173 | DB_RECORD_NOT_FOUND = 1500, |
| 174 | DB_END_OF_INDEX, |
| 175 | DB_NOT_FOUND, /*!< Generic error code for "Not found" |
| 176 | type of errors */ |
| 177 | }; |
| 178 | |
| 179 | #endif |
| 180 | |