#[allow(non_camel_case_types)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, strum::IntoStaticStr, strum::EnumString)]
pub enum AnyPostgresError {
ConnectionClosed,
ExpectedRequest,
ExpectedStatement,
InvalidBackendKeyData,
InvalidBinaryData,
InvalidByteSequence,
InvalidByteSequenceForEncoding,
InvalidCharacter,
InvalidMessage,
InvalidMessageLength,
InvalidQueryBinding,
InvalidServerKey,
InvalidServerSignature,
InvalidTimeFormat,
JSError,
JSTerminated,
MultidimensionalArrayNotSupportedYet,
NullsInArrayNotSupportedYet,
OutOfMemory,
Overflow,
PBKDFD2,
SASL_SIGNATURE_MISMATCH,
SASL_SIGNATURE_INVALID_BASE64,
ShortRead,
TLSNotAvailable,
TLSUpgradeFailed,
TooManyParameters,
UnexpectedMessage,
UNKNOWN_AUTHENTICATION_METHOD,
UNSUPPORTED_AUTHENTICATION_METHOD,
UnsupportedByteaFormat,
UnsupportedIntegerSize,
UnsupportedArrayFormat,
UnsupportedNumericFormat,
UnknownFormatCode,
}
bun_core::impl_tag_error!(AnyPostgresError);
bun_core::named_error_set!(AnyPostgresError);
impl From<bun_core::Error> for AnyPostgresError {
fn from(e: bun_core::Error) -> Self {
e.name().parse().unwrap_or(AnyPostgresError::JSError)
}
}
pub struct PostgresErrorOptions<'a> {
pub code: &'a [u8],
pub errno: Option<&'a [u8]>,
pub detail: Option<&'a [u8]>,
pub hint: Option<&'a [u8]>,
pub severity: Option<&'a [u8]>,
pub position: Option<&'a [u8]>,
pub internal_position: Option<&'a [u8]>,
pub internal_query: Option<&'a [u8]>,
pub r#where: Option<&'a [u8]>,
pub schema: Option<&'a [u8]>,
pub table: Option<&'a [u8]>,
pub column: Option<&'a [u8]>,
pub data_type: Option<&'a [u8]>,
pub constraint: Option<&'a [u8]>,
pub file: Option<&'a [u8]>,
pub line: Option<&'a [u8]>,
pub routine: Option<&'a [u8]>,
}
impl Default for PostgresErrorOptions<'_> {
fn default() -> Self {
Self {
code: b"",
errno: None,
detail: None,
hint: None,
severity: None,
position: None,
internal_position: None,
internal_query: None,
r#where: None,
schema: None,
table: None,
column: None,
data_type: None,
constraint: None,
file: None,
line: None,
routine: None,
}
}
}