pub mod aggregate;
pub mod canon;
pub mod catalog;
pub mod cluster;
pub mod collation;
pub mod column;
pub mod column_type;
pub mod constraint;
pub mod default_expr;
pub mod default_privileges;
pub mod difference;
pub mod eq;
pub mod extension;
pub mod function;
pub mod grant;
pub mod index;
pub mod partition;
pub mod policy;
pub mod publication;
pub mod reloptions;
pub mod schema;
pub mod sequence;
pub mod statistic;
pub mod subscription;
pub mod table;
pub use function::*;
pub mod procedure;
pub use procedure::*;
pub mod event_trigger;
pub mod trigger;
pub mod user_type;
pub use user_type::*;
pub mod view;
pub use view::*;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum IrError {
#[error("invalid identifier: {0}")]
InvalidIdentifier(String),
#[error("invalid column type: {0}")]
InvalidColumnType(String),
#[error("missing required field: {0}")]
MissingField(&'static str),
#[error("publication {0:?}: empty Selective scope (no tables, no schemas)")]
EmptyPublication(crate::identifier::Identifier),
#[error("publication {0:?} table {1:?}: empty column list (use None to publish all columns)")]
EmptyColumnList(
crate::identifier::Identifier,
crate::identifier::QualifiedName,
),
#[error("publication {0:?}: empty publish bitset (must enable at least one DML kind)")]
EmptyPublishBitset(crate::identifier::Identifier),
#[error("publication {0:?} table {1:?}: duplicate column {2:?} in column list")]
DuplicateColumnInPublication(
crate::identifier::Identifier,
crate::identifier::QualifiedName,
crate::identifier::Identifier,
),
#[error("subscription {0:?}: empty publication list (PG requires at least one)")]
EmptySubscriptionPublications(crate::identifier::Identifier),
#[error("subscription {0:?}: empty connection string")]
EmptyConnection(crate::identifier::Identifier),
#[error(
"statistic {0}: empty kinds bitset (must enable at least one of ndistinct, dependencies, mcv)"
)]
EmptyStatisticKinds(crate::identifier::QualifiedName),
#[error("statistic {0}: empty column list")]
EmptyStatisticColumns(crate::identifier::QualifiedName),
#[error("duplicate event trigger: {0}")]
DuplicateEventTrigger(crate::identifier::Identifier),
#[error("duplicate aggregate overload: {0} (same name and argument types)")]
DuplicateAggregate(crate::identifier::QualifiedName),
#[error("duplicate tablespace: {0}")]
DuplicateTablespace(crate::identifier::Identifier),
#[error("collation {qname}: invalid — {reason}")]
InvalidCollation {
qname: crate::identifier::QualifiedName,
reason: String,
},
}