use drizzle_core::schema::SQLEnumInfo;
use drizzle_core::traits::SQLViewInfo;
use drizzle_core::{SQLIndexInfo, SQLSchemaType};
#[derive(Debug, Clone)]
pub enum PostgresSchemaType {
Table(&'static drizzle_core::TableRef),
View(&'static dyn SQLViewInfo),
Index(&'static dyn SQLIndexInfo),
Trigger,
Enum(&'static dyn SQLEnumInfo),
}
impl SQLSchemaType for PostgresSchemaType {}
#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
pub enum Number {
Integer(i64),
Real(f64),
}
impl Default for Number {
fn default() -> Self {
Self::Integer(Default::default())
}
}
impl From<i64> for Number {
fn from(value: i64) -> Self {
Self::Integer(value)
}
}
impl From<f64> for Number {
fn from(value: f64) -> Self {
Self::Real(value)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum PostgresTransactionType {
ReadUncommitted,
#[default]
ReadCommitted,
RepeatableRead,
Serializable,
}
impl core::fmt::Display for PostgresTransactionType {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let level = match self {
Self::ReadUncommitted => "READ UNCOMMITTED",
Self::ReadCommitted => "READ COMMITTED",
Self::RepeatableRead => "REPEATABLE READ",
Self::Serializable => "SERIALIZABLE",
};
write!(f, "{level}")
}
}
pub use drizzle_core::{Join, JoinType};