Error codes 4000 - 4199

FairCom DB error codes 4000 - 4199

This table lists the possible CTDB API (c-tree database API) errors.

Table 1. CTDB API error codes 4000 - 4189

Value Symbolic constant Description
0 CTDBRET_OK Indicates the c-treeDB C API returned OK.
4000 CTDBRET_BASE Indicates a base error number.
4001 CTDBRET_NOMEMORY Indicates there is not enough memory.
4002 CTDBRET_NULHANDLE Indicates the handle is NULL.
4003 CTDBRET_NOTSESSION Indicates there is no session handle.
4004 CTDBRET_INVARG Indicates an invalid argument.
4005 CTDBRET_INDEXRANGE

Indicates the index is out of range.

This error can be returned when you are trying to use an index that doesn't exist. Or trying to use index 0 on a table with no indexes. It can be returned by an unexpected function like BuildTargetKey() that is trying to use the index.

4006 CTDBRET_ARGSMALL Indicates the argument is too small.
4007 CTDBRET_NULARG Indicates the null argument is not valid.
4008 CTDBRET_ARGNUL Indicates the null argument is not valid.
4009 CTDBRET_NOTOPEN Indicates the table is not open.
4010 CTDBRET_NOTDATABASE Indicates the argument is not a database handle.
4011 CTDBRET_ISACTIVE

Indicates the handle is active.

This error is thrown by calling ctdbLogon() with a handle that is already logged in via a previous call to ctdbLogon().

4012 CTDBRET_NOTACTIVE Indicates the handle is not active.
4013 CTDBRET_NOTTABLE Indicates the handle is not a table.
4014 CTDBRET_NOSUCHFIELD Indicates an unknown field name.
4015 CTDBRET_CANTDELETE Indicates the delete operation cannot be performed.
4016 CTDBRET_FIELDEXIST

Indicates the field already exists, either as a duplicate or that there are too few field names compared to the count.

This error is thrown when sqlizing c-treeRTG tables with duplicate field names specified in the .xdd (or .iss).

4017 CTDBRET_NOTFIELD Indicates the argument is not a field handle.
4018 CTDBRET_NOTINDEX Indicates the argument is not an index handle.
4019 CTDBRET_INVTYPE Indicates an invalid field/key type.
4020 CTDBRET_NOTSEGMENT Indicates the argument is not a segment handle.
4021 CTDBRET_DATABASEEXIST Indicates the database already exists.
4022 CTDBRET_TABLEEXIST Indicates the table already exists.
4023 CTDBRET_NOSUCHTABLE Indicates the table does not exist.
4024 CTDBRET_NOTRECORD Indicates the argument is not a record handle.
4025 CTDBRET_INTERNAL Indicates an internal error.
4026 CTDBRET_INVFIND Indicates an invalid find mode.
4027 CTDBRET_NODATA Indicates there is no data in the record.
4028 CTDBRET_INVFORMAT Indicates an invalid date or time format.
4029 CTDBRET_INVDATE Indicates an invalid date.
4030 CTDBRET_INVDAY Indicates an invalid date day.
4031 CTDBRET_INVMONTH Indicates an invalid date month.
4032 CTDBRET_INVYEAR Indicates an invalid date year.
4033 CTDBRET_INVTIME Indicates an invalid packed CTTIME.
4034 CTDBRET_INVHOUR Indicates an invalid hour.
4035 CTDBRET_INVMINUTE Indicates an invalid minute.
4036 CTDBRET_INVSECOND Indicates an invalid second.
4037 CTDBRET_INVAMPM Indicates an invalid morning/evening indicator.
4038 CTDBRET_OVERFLOW Indicates that the operation has caused an Overflow,
4039 CTDBRET_UNDERFLOW Indicates that the operation has caused an Underflow.
4040 CTDBRET_DIVBYZERO Indicates that there was an attempt to divide by zero.
4041 CTDBRET_INVDATETIME Indicates an invalid DateTime.
4042 CTDBRET_CANTCONVERT Indicates that the type conversion cannot be performed.
4043 CTDBRET_TOOBIG Indicates that the argument is too big.
4044 CTDBRET_NOSUCHPATH Indicates the path does not exist.
4045 CTDBRET_NOSUCHINDEX Indicates an unknown index number.
4046 CTDBRET_NOTFOUND Indicates the target was not found.
4047 CTDBRET_INVSEGMODE Indicates an invalid segment mode.
4048 CTDBRET_NOINDEX Indicates the table has no indexes.
4049 CTDBRET_NOSUCHSEGMENT Indicates an invalid segment number.
4050 CTDBRET_INVICON Indicates an Invalid ISAM context handle.
4051 CTDBRET_INDEXEXIST Indicates the index name is already in use.
4052 CTDBRET_MOREDATA Inidicates a partial field data read. Note that the buffer should be at least the field length +1 (for the null terminator).
4053 CTDBRET_NOINDEXNAME Indicates an invalid index name.
4054 CTDBRET_NOTSUPPORTED

Indicates the selected feature is not supported.

Hot Alter Table returns this error if you are trying to alter a table in a way not possible, such as changing an indexed value, or the table was not created with FLEXREC support.

Trying to persist data via MQTT with Automatic System Time will fail with this error if your server wasn't built with Automatic System Time enabled.

4055 CTDBRET_INVLOCKMODE Indicates an invalid lock mode.
4056 CTDBRET_NOLOCK Indicates the record is not locked.
4057 CTDBRET_NOWRITELOCK Indicates the record is not locked for writes.
4058 CTDBRET_NOTDICT Indicates the dictionary handle was not allocated.
4059 CTDBRET_NOTYET Indicated the attempted operation is not yet implemented.
4060 CTDBRET_INVNUMBER Indicated an invalid number.
4061 CTDBRET_INVPREC Indicates an invalid number precision.
4062 CTDBRET_INVSCALE Indicates an invalid number scale.
4063 CTDBRET_INVRECBUF Indicates the record buffer is not large enough.
4064 CTDBRET_CANTDELRECBYT Indicates the RECBYT index cannot be deleted.
4065 CTDBRET_CANTDELROWID Indicates the ROWID index cannot be deleted.
4066 CTDBRET_NOROWID Indicates the table has no ROWID index.
4067 CTDBRET_CANCREATE Indicates a file cannot be created (dupdb).
4068 CTDBRET_CANTCOPY Indicates a file cannot be copied (dupdb).
4069 CTDBRET_NOTSUSPENDED Indicates a lock cannot be restored.
4070 CTDBRET_INVISOLEVEL Indicates an invalid isolation level.
4071 CTDBRET_CNDXFALSE Indicates a conditional expression evaluated to false.
4072 CTDBRET_CNDXSYNTAX Indicates a conditional expression parser error.
4073 CTDBRET_CONDXTYPE Indicates a type discrepancy.
4074 CTDBRET_CNDXFIELD Indicates an unknown field name.
4075 CTDBRET_CNDXINTERNAL Indicates an internal yacc error.
4076 CTDBRET_CNDXMEMORY Indicates the memory allocation has failed.
4077 CTDBRET_CNDXOVERFLOW Indicates a stack overflow.
4078 CTDBRET_CNDXUNDERFLOW Indicates a stack underflow.
4079 CTDBRET_CNDXEXEC Indicates an invalid execution node.
4080 CTDBRET_CNDXDIVISION Indicates there was an attempt to divide by zero.
4081 CTDBRET_CNDXNOSCHEMA Indicates there is no record schema.
4082 CTDBRET_CNDXNORECBUF Indicates there is no record buffer.
4083 CTDBRET_CNDXSDAT Indicates there is not enough data.
4084 CTDBRET_INVSESSIONTYPE Indicates an invalid session type.
4085 CTDBRET_INVALTERACTION Indicates an invalid alter table action.
4086 CTDBRET_DIFFERENT Indicates the records are different.
4087 CTDBRET_INVOPERATOR Indicates an invalid operator.
4088 CTDBRET_READONLY Indicates the table was opened as read-only.
4089 CTDBRET_NOTIMPLEMENTED Indicates CALLBACK was not implemented.
4090 CTDBRET_INVHANDLE Indicates an invalid handle type.
4091 CTDBRET_INVCALLBACK Indicates an invalid callback type.
4092 CTDBRET_CANTMOVE Indicates the segment cannot be moved.
4093 CTDBRET_INDEXDUPNAME Indicates the index name was already used in the database.
4094 CTDBRET_NOSUCHDATABASE Indicates the database does not exist, or was not found.
4095 CTDBRET_NOSEGMENT Indicates the index has no segments.
4096 CTDBRET_BATCHNOTACTIVE Indicates the batch operation not active.
4097 CTDBRET_BATCHISACTIVE Indicates the batch operation is already active.
4098 CTDBRET_INVBATCHMODE Indicates an invalid batch mode.
4099 CTDBRET_NOTRESOURCE Indicates the selected object is not a resource handle.
4100 CTDBRET_INVATTACH Indicates an invalid session attach mode.
4101 CTDBRET_NOTATTACHED Indicates the session is not attached.
4102 CTDBRET_BINARYLENGTH Indicates an invalid binary field length.
4103 CTDBRET_ROUTERERROR Indicates a router table error.
4104 CTDBRET_INVROUTERNAME Indicated an invalid router table name.
4105 CTDBRET_INVROUTERNBR Indicates an invalid number of fields in the router.
4106 CTDBRET_INVROUNTERMAP Indicates an invalid router field mapping.
4107 CTDBRET_DBNOTSQL Indicates the database is not SQL.
4108 CTDBRET_INVBUFFER

Indicates the record buffer contains data that is causing field offset calculations beyond the record.

FairCom DB parses a buffer by counting out the fixed-length fields and looking for nulls to determine the size of variable-length fields. Variable-length binary fields are easy because they have a size at the beginning. Any time they parse our buffer and don't end exactly at the end, this error is returned. This can be caused by a buffer that is too short or too long.

4109 - 4128 CTDBRET_CALLBACK_1 - CTDBRET_CALLBACK_20

All errors in this range are callback errors. They are user error codes reserved for implementation-specific callback functions.

Please refer to documentation that accompanies your specific c-treeDB callback module.

4127, CTDBRET_CALLBACK_19, can also be a c-treeRTG error.

4129 CTDBRET_CANTCHKUID Indicates the dictionary UID cannot be properly checked/updated.
4130 CTDBRET_NOMOREVTRES Indicates there is no more RESOURCE available for Vtable on parent table.
4131 CTDBRET_VTABLEEXIST Indicates the table has VTable defined in the dictionary.
4132 CTDBRET_VTABLETYPE Indicates the VTable type in the dictionary does not match the entry in the resource.
4133 CTDBRET_IDENTITYDEFINED Indicates an Identity field has been already defined.
4134 CTDBRET_NOIDENTITYDEFINED Indicates an Identity field has not been defined.
4135 CTDBRET_FLDISNULL Indicates the field is null.
4136 CTDBRET_RESERVEDNAME Indicates an invalid use of the reserved name.
4137 CTDBRET_NOTSUP_IN_DICT Indicates the selected feature is not supported in the Dictionary.
4138 CTDBRET_INVFILENAME Indicates an invalid file name.
4139 CTDBRET_ISVFIELD Indicates the operation is not supported on the Virtual field.
4140 CTDBRET_HASVFIELD Indicates the operation is not supported on tables with Virtual fields.
4141 CTDBRET_MISSINGVCLEAR Indicates VFields cannot be added without setting the vclear function.
4142 CTDBRET_MISSINGVGET Indicates a getfield operation was attempted on a VField without having a "get" function.
4143 CTDBRET_MISSINGVSET Indicates a setfield operation was attempted on a VField without having a "set" function.
4144 CTDBRET_INVNUMBLEN Indicates CTNUMBER has an invalid length.
4145 CTDBRET_INVMILLISECOND Indicates an invalid millisecond.
4146 CTDBRET_INVLEGACYSEGMENT Indicates the legacy segment offset cannot be computed (an absolute byte offset cannot be calculated for a legacy segment mode).
4147 CTDBRET_MSEC_NOTSUPPORTED Indicates millisecond precision is not supported by FairCom DB data type in use.
4148 CTDBRET_PARTITION_DEFINED Indicates the file partition is already defined.
4149 CTDBRET_NOTFTI Indicates the selected object is not a Full-Text Index handle.
4150 CTDBRET_NOSUCHFTI Indicates an unknown Full-Text Index number or name.
4151 CTDBRET_NOFTI Indicates the table has no Full-Text Index.
4152 CTDBRET_FTI_NOFIELD Indicates a Full-Text Index defined with no associated field.
4153 CTDBRET_CANTATTACH Indicates the table handle linked to db is not supported (cannot attach).
4154 CTDBRET_NOMOREBATCHES Indicates there is no room for more batches in the session.
4155 CTDBRET_ISVTABLE

Indicates that a table is a virtual table. A count of the physical entries to use as an estimate is also returned.

Calling ctdbGetRecordCount() on a Multi-Schema Table (MRT Table) will return this error. Before V11.5, on MRT tables, CTDBRET_NOTYET was returned with no count.

4156 CTDBRET_FTS_SYNTAX Indicates the Full-Text Search found a syntax error in the search query.
4157 CTDBRET_FTS_TOK_INIT Indicates the Full-Text Search could not initialize the query tokenizer.
4158 CTDBRET_FTS_INVALID_STOP_LIST Indicates an invalid stop list entry was specified.
4161 CTDBRET_ROWIDSEG Indicates there was an attempt to create an index with rowid reference on a table with no rowid support.
4162 CTDBRET_NOTFTID Indicates the selected object is not a Full-Text Index Dictionary handle.
4163 CTDBRET_CANNOTSET Indicates a Full-Text Index (FTI) option cannot be set.
4164 CTDBRET_INVMRT_RECSIZ Indicates the Multi-Record Type (MRT) VTABLE record definition does not describe the entire fixed record portion of the parent table.
4165 CTDBRET_NOLOAD Indicates the background load thread is not active for the current file.
4166 CTDBRET_LOADISACTIVE Indicates the background load thread is active for the current file.
4167 CTDBRET_NO_PATHS Indicates the transaction log files path or temporary path is not set for standalone model.
4168 CTDBRET_FIXJSON Indicates the JSON field cannot reside in the fixed record portion.
4169 CTDBRET_FIELDMASKFORBID Indicates the attempted operation is forbidden by field mask.
4170 CTDBRET_ALREADYSET Indicates the filter is already set and cannot be reset.
4171 CTDBRET_PREC_OVERFLOW Indicates the value fits into the "C" type but overflows the defined precision.
4172 CTDBRET_FIELDATTRNOTSET Indicates the field attribute is not set.
4173 CTDBRET_NOTADIGIT foreign data type conversion error, value is not a digit
4174 CTDBRET_BADSIGN foreign data type conversion error, sign indicator cannot be interpreted
4175 CTDBRET_INVINTSIZE foreign data type conversion error, invalid size for integer type
4176 CTDBRET_DIGITOVERFLOW foreign data type conversion error, too many digits
4177 CTDBRET_RECNOTMATCHATTR Record length does not match ATTR information (minreclen/maxreclen)
4178 CTDBRET_INVMRT_RECHDR MRT internal CTDB field not compatible with parent table (delfld, rowidfld, nulfld size different)
4179 CTDBRET_INVRTGXDD XDD is invalid. check error message
4180 CTDBRET_UNI_NOTSUP the libray does not support UNICODE
4181 CTDBRET_NOTBASE64 the base64 buffer cannot be decoded. Probably wrong encoding
4182 CTDBRET_FIELD_OP_DENIED Field operation denied. In conflict with index definition
4183 CTDBRET_NOTJSONFIELD The Field is not a JSON field.
4184 CTDBRET_NOSUCHUSER the owner is not a valid c-tree user
4185 CTDBRET_NOTHEXSTR the hex string buffer cannot be decoded. Probably wrong encoding
4186 CTDBRET_INVALIDJSON The value is not a valid JSON document
4187 CTDBRET_INVFIELDDEF The table contains an invalid field definition. If the message states that the default value is mandatory on new fields, the error is caused by a missing cbdefault attribute
4188 CTDBRET_PKEXIST PrimaryKey Index already exists
4189 CTDBRET_PKINDEXCLASH PrimaryKey Index definition and other index settings clash
4191 CTDBRET_NULVAL Action attempted to set a non-nullable column to null