55 lines
1.7 KiB
Plaintext

/* Errors returned by mysql-js are JavaScript Error objects.
They contain:
message: a string with a description of the problem
stack: the locus of the error
sqlstate: one of the Sqlstate values below
cause: an Error returned by an underlying implementation artifact
*/
var DatabaseError = {
code : null, // MySQL Error Code number (number)
sqlstate : null, // SQLSTATE (string)
message : null, // Error message (string)
cause : null, // The underlying cause of this error
/* ... Other adapter-specific properties which may be present */
};
// Reference: Gulutzan & Pelzer, "SQL 99 Complete Really", chapter 47
var Sqlstates = {
/* Standard-defined classes, SQL-99 */
"02000" : "No Data",
// connection errors
"08000" : "Connection error",
"08001" : "Unable to connect to server",
"08004" : "Connection refused",
// data errors
"22000" : "Data error",
"22001" : "String too long",
"22003" : "Numeric value out of range",
"22007" : "Invalid datetime",
// Constraint violations
// 23000 includes both duplicate primary key and duplicate unique key
"23000" : "Integrity Constraint Violation",
// 0Fxxx "Locator Exception" SQLStates relate to BLOB values
// (which must represented in JavaScript as Node Buffers)
"0F001" : "Invalid BLOB value",
// misc. errors
"25000" : "Invalid Transaction State",
"2C000" : "Invalid character set name",
"42S02" : "Table not found",
"IM001" : "Driver does not support this function",
/* Implementation-defined classes (NDB) */
"NDB00" : "Refer to ndb_error for details",
"WCTOR" : "Object clobbered by Domain Object Constructor"
};