drizzle_postgres/
common.rs

1use drizzle_core::schema::SQLEnumInfo;
2use drizzle_core::traits::SQLViewInfo;
3use drizzle_core::{SQLIndexInfo, SQLSchemaType};
4
5use crate::traits::PostgresTableInfo;
6
7/// The type of database object
8#[derive(Debug, Clone)]
9pub enum PostgresSchemaType {
10    /// A regular table
11    Table(&'static dyn PostgresTableInfo),
12    /// A view
13    View(&'static dyn SQLViewInfo),
14    /// An index
15    Index(&'static dyn SQLIndexInfo),
16    /// A trigger
17    Trigger,
18    /// A database enum type (PostgreSQL)
19    Enum(&'static dyn SQLEnumInfo),
20}
21
22impl SQLSchemaType for PostgresSchemaType {}
23
24//------------------------------------------------------------------------------
25// Number Type
26//------------------------------------------------------------------------------
27
28/// Numeric type that can be either an integer or a floating point value
29#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
30pub enum Number {
31    /// Integer value
32    Integer(i64),
33    /// Floating point value
34    Real(f64),
35}
36
37impl Default for Number {
38    fn default() -> Self {
39        Self::Integer(Default::default())
40    }
41}
42
43impl From<i64> for Number {
44    fn from(value: i64) -> Self {
45        Self::Integer(value)
46    }
47}
48
49impl From<f64> for Number {
50    fn from(value: f64) -> Self {
51        Self::Real(value)
52    }
53}
54
55// Note: Generic From implementation is removed to avoid conflicts.
56// The table macro will generate specific implementations using PostgresEnumVisitor.
57
58// Re-export Join from core
59pub use drizzle_core::{Join, JoinType};