1pub mod analytics;
11pub mod backup;
12pub mod bulk_operations;
13pub mod cache;
14pub mod cache_invalidation;
15pub mod cache_warming;
16pub mod circuit_breaker;
17pub mod connection_diagnostics;
18pub mod connection_leak_detector;
19pub mod cursor_pagination;
20pub mod database_size_monitor;
21pub mod error;
22pub mod event_notifications;
23pub mod generic_repository;
24pub mod health_check;
25pub mod helpers;
26pub mod index_analyzer;
27pub mod lock_monitoring;
28pub mod logging;
29pub mod maintenance;
30pub mod metrics;
31pub mod migration_runner;
32pub mod migration_utils;
33pub mod multi_region;
34pub mod multi_tier_cache;
35pub mod partitioning;
36pub mod platform_stats;
37pub mod pool;
38pub mod pool_autoscaling;
39pub mod pool_circuit_breaker;
40pub mod pool_hooks;
41pub mod pool_monitor;
42pub mod query_builder;
43pub mod query_logger;
44pub mod query_performance_analyzer;
45pub mod query_plan;
46pub mod query_streaming;
47pub mod replica;
48pub mod replica_failover;
49pub mod repositories;
50pub mod retry_policy;
51pub mod schema_validator;
52pub mod security;
54pub mod sharding;
55pub mod statement_cache;
56pub mod table_stats;
57pub mod tracing;
58pub mod transaction;
59pub mod vacuum_scheduler;
60
61pub use analytics::{
62 AnalyticsService, DailyStats, DashboardMetrics, OhlcData, PlatformVolumeHistory, PriceHistory,
63 RefreshConfig, TokenMetricsSummary, UserActivitySummary, VolumeHistory,
64};
65pub use backup::{
66 get_database_stats, verify_database_integrity, BackupConfig, BackupManager, BackupMetadata,
67 DatabaseStats, PitrConfig,
68};
69pub use bulk_operations::{BulkDeleter, BulkInserter, BulkUpdater};
70pub use cache::{keys as cache_keys, CacheConfig, CacheStats, CachedRepository, RedisCache};
71pub use cache_invalidation::{
72 CascadeRule, InvalidationConfig, InvalidationEvent, InvalidationManager, InvalidationType,
73 TagRegistry,
74};
75pub use cache_warming::{CacheDataSource, CacheWarmer, CacheWarmingConfig, WarmingStrategy};
76pub use circuit_breaker::{
77 CircuitBreaker, CircuitBreakerConfig, CircuitBreakerStats, CircuitState,
78};
79pub use connection_diagnostics::{
80 check_connection_health, find_long_running_queries, get_active_connections,
81 get_pool_diagnostics, get_pool_stats, ActiveConnection, ConnectionHealth, ConnectionIssue,
82 IssueType, LongRunningQuery, PoolDiagnostics, PoolStats, Severity,
83};
84pub use connection_leak_detector::{
85 LeakDetector, LeakDetectorConfig, LeakReport, LeakStats, TrackedConnection,
86};
87pub use cursor_pagination::{
88 Connection, Cursor, CursorBuilder, CursorPagination, Direction, Edge, PageInfo,
89};
90pub use database_size_monitor::{
91 CapacityForecast, DatabaseSizeMonitor, DatabaseSnapshot, GrowthStats, SizeAlert, SizeAlertType,
92 SizeMonitorConfig, SizeReport, TableSize,
93};
94pub use error::{DbError, Result};
95pub use event_notifications::{
96 DatabaseEvent, EventHandlerFn, EventListener, ListenerConfig, NotificationStats,
97 NotificationTriggers, PostgresNotificationTriggers,
98};
99pub use generic_repository::{CachedGenericRepository, Page, Pagination, Repository};
100pub use health_check::{
101 perform_health_check, quick_health_check, HealthCategory, HealthCheckConfig, HealthCheckResult,
102 HealthStatus, SystemHealthReport,
103};
104pub use helpers::{
105 calculate_offset, calculate_percentage, column_exists, execute_raw, format_bytes,
106 get_database_time, parse_decimal, parse_uuid, sanitize_column_name, sanitize_table_name,
107 table_exists, PaginationMeta,
108};
109pub use index_analyzer::{
110 AnalysisSummary, ExistingIndex, IndexAnalysis, IndexAnalyzer, IndexSuggestion,
111 IndexSuggestionType, Priority, UnusedIndex,
112};
113pub use lock_monitoring::{
114 detect_deadlocks, get_blocking_queries, get_current_locks, get_lock_wait_stats,
115 kill_blocking_query, BlockingQuery, DeadlockInfo, LockInfo, LockType, LockWaitStats,
116};
117pub use logging::{
118 AnomalyDetector, DbContext, LogLevel, PerformanceTracker, QueryLogEntry, QueryStats,
119};
120pub use maintenance::{
121 analyze_table, auto_vacuum_tables, get_bloated_tables, get_tables_needing_vacuum,
122 reindex_table, vacuum_analyze_table, vacuum_table, MaintenanceOperation, MaintenanceResult,
123 TableBloatInfo, TableVacuumInfo,
124};
125pub use metrics::{
126 cache_hit_rate, gather_metrics, record_cache_error, record_cache_hit, record_cache_miss,
127 record_pool_stats, register_metrics, MetricsTimer,
128};
129pub use migration_runner::{
130 Migration, MigrationConfig, MigrationHistory, MigrationResult, MigrationRunner,
131};
132pub use migration_utils::{
133 get_migration_status, get_schema_version, is_migration_applied, list_applied_migrations,
134 verify_schema_integrity, MigrationInfo, MigrationStatus, SchemaIntegrity,
135};
136pub use multi_region::{MultiRegionPoolManager, Region, RegionalPoolConfig, ReplicationLag};
137pub use multi_tier_cache::{MultiTierCache, MultiTierCacheConfig, MultiTierStats};
138pub use partitioning::{
139 PartitionDefinition, PartitionInterval, PartitionManager, PartitionStats, PartitioningStrategy,
140};
141pub use platform_stats::{
142 get_growth_metrics, get_health_indicators, get_platform_snapshot, get_platform_stats,
143 GrowthMetrics, HealthIndicators, PlatformStats,
144};
145pub use pool::{
146 create_pool, create_pool_with_retry, refresh_pool_connections, validate_pool_connections,
147 warmup_pool, RetryConfig, WarmupStrategy,
148};
149pub use pool_autoscaling::{
150 AutoscalingConfig, AutoscalingStats, PoolAutoscaler, ScalingEvent, ScalingEventType,
151 ScalingStrategy, UtilizationMetrics,
152};
153pub use pool_circuit_breaker::{
154 HealthBasedPoolSelector, PoolCircuitBreaker, PoolCircuitBreakerConfig, PoolCircuitState,
155 PoolCircuitStats,
156};
157pub use pool_hooks::{
158 AlertEventHandler, LoggingEventHandler, MetricsEventHandler, PoolEvent, PoolEventHandler,
159 PoolEventManager, PoolEventType,
160};
161pub use pool_monitor::{
162 AlertLevel, CapacityStats, MonitorConfig, MonitoringReport, PoolAlert, PoolHealth,
163 PoolMetricsSnapshot, PoolMonitor,
164};
165pub use query_builder::{
166 Filter, FilterValue, LogicalOp, Operator, OrderBy, OrderDirection, QueryBuilder,
167};
168pub use query_logger::{
169 time_query, AggregateStats, QueryLogConfig, QueryLogger, QueryTimer, SlowQueryRecord,
170};
171pub use query_performance_analyzer::{
172 AnalyzerConfig, OptimizationSuggestion, PerformanceIssue, PerformanceReport, QueryAnalysis,
173 QueryPerformanceAnalyzer, ReportSummary, SuggestionType,
174};
175pub use query_plan::{
176 explain_analyze_query, explain_query, get_expensive_queries, ExpensiveQuery, QueryPlan,
177 QueryPlanNode,
178};
179pub use query_streaming::{BufferedStreamProcessor, QueryStream, StreamConfig};
180pub use replica::{
181 LoadBalanceStrategy, ReplicaConfig, ReplicaHealthStatus, ReplicaPoolManager, ReplicaStatus,
182 SmartDbClient, SmartDbClientBuilder,
183};
184pub use replica_failover::{
185 ClusterStatus, FailoverConfig, FailoverManager, FailoverStrategy, NodeStatus, ReplicaNode,
186 ReplicaRole,
187};
188pub use repositories::*;
189pub use retry_policy::{
190 detect_idempotency, ErrorClass, Idempotency, RetryPolicy, RetryPolicyConfig, RetryStrategy,
191};
192pub use schema_validator::{
193 detect_orphaned_records, get_all_orphaned_records, get_check_constraints, get_foreign_keys,
194 get_nullable_foreign_key_columns, get_tables_without_primary_keys, validate_schema,
195 CheckConstraintInfo, ForeignKeyInfo, OrphanedRecordInfo, SchemaValidationReport,
196 ValidationIssue, ValidationSeverity,
197};
198pub use security::{
199 AuditAction, AuditContext, AuditLogEntry, AuditLogger, ComplianceManager, ComplianceReport,
200 EncryptedData, EncryptionError, EncryptionProvider, KeyRotationManager, PasswordHashingService,
201};
202pub use sharding::{
203 ConsistentHashRing, ShardCoordinator, ShardInfo, ShardKey, ShardPoolManager, ShardingStrategy,
204};
205pub use sqlx::PgPool;
206pub use statement_cache::{
207 CacheStats as StatementCacheStats, StatementCache, StatementCacheConfig,
208};
209pub use table_stats::{
210 get_all_table_stats, get_database_size, get_high_seq_scan_tables, get_largest_tables,
211 get_table_cache_hit_ratio, get_table_index_stats, get_table_stats, get_unused_indexes,
212 CacheHitInfo, DatabaseSizeInfo, IndexStats, SeqScanInfo, TableStats,
213};
214pub use tracing::{
215 get_tracer, init_tracer, trace_db_operation, DbTraceConfig, DbTracer, QueryMetadata,
216 SpanContext, TraceableOperation,
217};
218pub use transaction::{
219 retry_transaction, retry_transaction_with_isolation, with_savepoint, IsolationLevel,
220 SavepointGuard, TransactionBuilder, TransactionExt, TransactionManager, TransactionRetryConfig,
221};
222pub use vacuum_scheduler::{
223 TableVacuumInfo as VacuumTableInfo, VacuumResult, VacuumScheduler, VacuumSchedulerConfig,
224 VacuumStats, VacuumStrategy,
225};