1pub mod advanced;
150pub mod async_optimize;
151pub mod batch;
152pub mod builder;
153pub mod cache;
154pub mod connection;
155pub mod cte;
156pub mod data;
157pub mod data_cache;
158pub mod db_optimize;
159pub mod error;
160pub mod extension;
161pub mod filter;
162pub mod intern;
163pub mod introspection;
164pub mod json;
165pub mod lazy;
166pub mod logging;
167#[macro_use]
168pub mod macros;
169pub mod mem_optimize;
170pub mod memory;
171pub mod middleware;
172pub mod nested;
173pub mod operations;
174pub mod pagination;
175pub mod partition;
176pub mod pool;
177pub mod procedure;
178pub mod profiling;
179pub mod query;
180pub mod raw;
181pub mod relations;
182pub mod replication;
183pub mod row;
184pub mod search;
185pub mod security;
186pub mod sequence;
187pub mod sql;
188pub mod static_filter;
189pub mod tenant;
190pub mod traits;
191pub mod transaction;
192pub mod trigger;
193pub mod typed_filter;
194pub mod types;
195pub mod upsert;
196pub mod window;
197pub mod zero_copy;
198
199pub use error::{ErrorCode, ErrorContext, QueryError, QueryResult, Suggestion};
200pub use extension::{Extension, ExtensionBuilder, Point, Polygon};
201pub use filter::{
202 AndFilterBuilder, FieldName, Filter, FilterValue, FluentFilterBuilder, LargeValueList,
203 OrFilterBuilder, ScalarFilter, SmallValueList, ValueList,
204};
205pub use json::{JsonAgg, JsonFilter, JsonIndex, JsonIndexBuilder, JsonOp, JsonPath, PathSegment};
206pub use nested::{NestedWrite, NestedWriteBuilder, NestedWriteOperations};
207pub use operations::{
208 CreateOperation,
209 CreateManyOperation,
210 DeleteOperation,
211 DeleteManyOperation,
212 FindManyOperation,
213 FindFirstOperation,
214 FindUniqueOperation,
215 CountOperation,
216 AggregateOperation,
217 AggregateField,
218 AggregateResult,
219 GroupByOperation,
220 GroupByResult,
221 HavingCondition,
222 HavingOp,
223 having,
224 MaterializedViewAccessor,
226 RefreshMaterializedViewOperation,
227 UpdateOperation,
228 UpdateManyOperation,
229 UpsertOperation,
230 ViewAccessor,
231 ViewCountOperation,
232 ViewFindFirstOperation,
233 ViewFindManyOperation,
234 ViewQueryBuilder,
235};
236pub use pagination::{Cursor, CursorDirection, Pagination};
237pub use partition::{
238 HashPartitionDef, ListPartitionDef, Partition, PartitionBuilder, PartitionDef, PartitionType,
239 RangeBound, RangePartitionDef,
240};
241pub use procedure::{
242 Parameter, ParameterMode, ProcedureCall, ProcedureCallOperation, ProcedureEngine,
243 ProcedureResult,
244};
245pub use query::QueryBuilder;
246pub use raw::{RawExecuteOperation, RawQueryOperation, Sql};
247pub use relations::{Include, IncludeSpec, RelationLoader, RelationSpec, SelectSpec};
248pub use search::{
249 FullTextIndex, FullTextIndexBuilder, FuzzyOptions, HighlightOptions, RankingOptions,
250 SearchLanguage, SearchMode, SearchQuery, SearchQueryBuilder, SearchSql,
251};
252pub use security::{
253 ConnectionProfile, ConnectionProfileBuilder, DataMask, Grant, GrantBuilder, GrantObject,
254 MaskFunction, PolicyCommand, Privilege, RlsPolicy, RlsPolicyBuilder, Role, RoleBuilder,
255 TenantPolicy, TenantSource,
256};
257pub use sequence::{OwnedBy, Sequence, SequenceBuilder};
258pub use traits::{
259 Executable, IntoFilter, MaterializedView, Model, QueryEngine, View, ViewQueryEngine,
260};
261pub use transaction::{IsolationLevel, Transaction, TransactionConfig};
262pub use trigger::{
263 Trigger, TriggerAction, TriggerBuilder, TriggerCondition, TriggerEvent, TriggerLevel,
264 TriggerTiming, UpdateOf,
265};
266pub use types::{
267 NullsOrder, OrderBy, OrderByBuilder, OrderByField, Select, SortOrder, order_patterns,
268};
269pub use upsert::{
270 Assignment, AssignmentValue, ConflictAction, ConflictTarget, UpdateSpec, Upsert, UpsertBuilder,
271};
272pub use window::{
273 FrameBound, FrameClause, FrameExclude, FrameType, NamedWindow, NullsPosition, OrderSpec,
274 WindowFn, WindowFunction, WindowFunctionBuilder, WindowSpec,
275};
276
277pub use middleware::{
279 LoggingMiddleware, MetricsMiddleware, Middleware, MiddlewareBuilder, MiddlewareChain,
280 MiddlewareStack, QueryContext, QueryMetadata, QueryMetrics, QueryType, RetryMiddleware,
281 TimingMiddleware,
282};
283
284pub use connection::{
286 ConnectionError, ConnectionOptions, ConnectionString, DatabaseConfig, Driver, EnvExpander,
287 MultiDatabaseConfig, PoolConfig, PoolOptions, SslConfig, SslMode,
288};
289pub use cte::{
290 Cte, CteBuilder, CycleClause, Materialized, SearchClause, SearchMethod, WithClause,
291 WithQueryBuilder,
292};
293
294pub use advanced::{
296 BulkOperation, DistinctOn, LateralJoin, LateralJoinBuilder, LateralJoinType, LockStrength,
297 LockWait, ReturnOperation, Returning, ReturningColumn, RowLock, RowLockBuilder, SampleMethod,
298 SampleSize, TableSample, TableSampleBuilder,
299};
300
301pub use data::{
303 BatchCreate, ConnectData, CreateData, DataBuilder, FieldValue, IntoData, UpdateData,
304};
305
306pub use introspection::{
308 CheckConstraint, ColumnInfo, DatabaseSchema, EnumInfo, ForeignKeyInfo, IndexColumn, IndexInfo,
309 NormalizedType, ReferentialAction, SequenceInfo, TableInfo, UniqueConstraint, ViewInfo,
310 generate_prax_schema, normalize_type,
311};
312
313pub use tenant::{
315 DynamicResolver, IsolationStrategy, RowLevelConfig, SchemaConfig, StaticResolver, TenantConfig,
316 TenantConfigBuilder, TenantContext, TenantId, TenantInfo, TenantMiddleware, TenantResolver,
317};
318
319pub use intern::{clear_interned, fields, intern, intern_cow, interned_count};
321
322pub use pool::{FilterBuilder, FilterPool, IntoPooledValue, PooledFilter, PooledValue};
324
325pub use sql::{
327 AdvancedQueryCapacity, CachedSql, DatabaseType, FastSqlBuilder, LazySql, QueryCapacity,
328 SqlBuilder, SqlTemplateCache as SqlCache, global_sql_cache, keywords, templates,
329};
330
331pub use builder::{
333 BuilderPool,
334 ColumnList,
335 ColumnNameList,
336 CowColumnList,
337 CowIdentifier,
338 ExprList,
339 FrameBound as BuilderFrameBound,
341 FrameType as BuilderFrameType,
342 Identifier,
343 OptimizedWindowSpec,
344 OrderByList,
345 PartitionByList,
346 ReusableBuilder,
347 WindowFrame,
348};
349
350pub use db_optimize::{
352 BatchConfig, CachedStatement, IndexHint, IndexHintType, JoinHint, JoinMethod,
353 MongoPipelineBuilder, PipelineStage, PreparedStatementCache, PreparedStatementStats,
354 QueryHints, global_statement_cache,
355};
356
357pub use zero_copy::{
359 CteRef, FrameBoundRef, FrameRef, FrameTypeRef, JsonPathRef, PathSegmentRef, WindowSpecRef,
360 WithClauseRef,
361};
362
363pub use cache::{
365 CacheStats, CachedQuery, ExecutionPlan, ExecutionPlanCache, PlanHint, QueryCache, QueryHash,
366 QueryKey, SqlTemplate, SqlTemplateCache, get_global_template, global_template_cache,
367 patterns as cache_patterns, precompute_query_hash, register_global_template,
368};
369
370pub use batch::{
372 Batch, BatchBuilder, BatchOperation, BatchResult, OperationResult, Pipeline, PipelineBuilder,
373 PipelineQuery, PipelineResult, QueryResult as PipelineQueryResult,
374};
375
376pub use row::{FromColumn, FromRow, FromRowRef, RowData, RowError, RowRef, RowRefIter};
378
379pub use lazy::{Lazy, LazyRelation, ManyToOneLoader, OneToManyLoader};
381
382pub use static_filter::{
384 CompactValue, StaticFilter, and2, and3, and4, and5, contains, ends_with, eq,
385 fields as static_fields, gt, gte, in_list, is_not_null, is_null, lt, lte, ne, not, not_in_list,
386 or2, or3, or4, or5, starts_with,
387};
388
389pub use typed_filter::{
391 And, AndN, Contains, DirectSql, EndsWith, Eq, Gt, Gte, InI64, InI64Slice, InStr, InStrSlice,
392 IsNotNull, IsNull, LazyFilter, Lt, Lte, Maybe, Ne, Not as TypedNot, NotInI64Slice, Or, OrN,
393 StartsWith, TypedFilter, and_n, eq as typed_eq, gt as typed_gt, gte as typed_gte,
394 in_i64 as typed_in_i64, in_i64_slice, in_str as typed_in_str, in_str_slice,
395 is_not_null as typed_is_not_null, is_null as typed_is_null, lazy, lt as typed_lt,
396 lte as typed_lte, ne as typed_ne, not_in_i64_slice, or_n,
397};
398
399pub use memory::{
401 BufferPool, CompactFilter, GLOBAL_BUFFER_POOL, GLOBAL_STRING_POOL, MemoryStats, PoolStats,
402 PooledBuffer, StringPool, get_buffer, intern as memory_intern,
403};
404
405pub use logging::{
407 get_log_format, get_log_level, init as init_logging, init_debug, init_with_level,
408 is_debug_enabled,
409};
410
411pub use replication::{
413 ConnectionRouter, HealthStatus, LagMeasurement, LagMonitor, ReadPreference, ReplicaConfig,
414 ReplicaHealth, ReplicaRole, ReplicaSetBuilder, ReplicaSetConfig,
415};
416
417pub use async_optimize::{
419 ConcurrencyConfig, ConcurrentExecutor, ExecutionStats, IntrospectionConfig,
420 IntrospectionResult, PipelineConfig, PipelineError, PipelineResult as AsyncPipelineResult,
421 QueryPipeline, TaskError, TaskResult,
422 concurrent::execute_batch as async_execute_batch,
423 concurrent::execute_chunked as async_execute_chunked,
424 introspect::{
425 BatchIntrospector, ColumnMetadata, ConcurrentIntrospector, ForeignKeyMetadata,
426 IndexMetadata, IntrospectionError, IntrospectionPhase, IntrospectorBuilder, TableMetadata,
427 },
428 pipeline::{BulkInsertPipeline, BulkUpdatePipeline, SimulatedExecutor},
429};
430
431pub use mem_optimize::{
433 GlobalInterner, IdentifierCache, InternedStr, ScopedInterner,
434 arena::{ArenaScope, ArenaStats, QueryArena, ScopedFilter, ScopedQuery, ScopedValue},
435 interning::{get_interned, intern as global_intern, intern_component, intern_qualified},
436 lazy::{LazyColumn, LazyForeignKey, LazyIndex, LazySchema, LazySchemaStats, LazyTable},
437};
438
439pub use profiling::{
441 AllocationRecord, AllocationStats, AllocationTracker, HeapProfiler, HeapReport, HeapStats,
442 LeakDetector, LeakReport, LeakSeverity, MemoryProfiler, MemoryReport, MemorySnapshot,
443 PotentialLeak, SnapshotDiff, TrackedAllocator, disable_profiling, enable_profiling,
444 is_profiling_enabled, with_profiling,
445};
446
447pub use smallvec;
449
450pub mod prelude {
452 pub use crate::advanced::{LateralJoin, Returning, RowLock, TableSample};
453 pub use crate::cte::{Cte, CteBuilder, WithClause};
454 pub use crate::error::{QueryError, QueryResult};
455 pub use crate::extension::{Extension, Point, Polygon};
456 pub use crate::filter::{Filter, FilterValue, ScalarFilter};
457 pub use crate::introspection::{DatabaseSchema, TableInfo, generate_prax_schema};
458 pub use crate::json::{JsonFilter, JsonOp, JsonPath};
459 pub use crate::nested::{NestedWrite, NestedWriteBuilder, NestedWriteOperations};
460 pub use crate::operations::*;
461 pub use crate::pagination::{Cursor, CursorDirection, Pagination};
462 pub use crate::partition::{Partition, PartitionBuilder, PartitionType, RangeBound};
463 pub use crate::procedure::{
464 Parameter, ParameterMode, ProcedureCall, ProcedureEngine, ProcedureResult,
465 };
466 pub use crate::query::QueryBuilder;
467 pub use crate::raw::{RawExecuteOperation, RawQueryOperation, Sql};
468 pub use crate::raw_query;
469 pub use crate::relations::{Include, IncludeSpec, RelationSpec, SelectSpec};
470 pub use crate::replication::{ConnectionRouter, ReadPreference, ReplicaSetConfig};
471 pub use crate::search::{FullTextIndex, SearchMode, SearchQuery, SearchQueryBuilder};
472 pub use crate::security::{Grant, GrantBuilder, RlsPolicy, Role, RoleBuilder};
473 pub use crate::sequence::{Sequence, SequenceBuilder};
474 pub use crate::traits::{
475 Executable, IntoFilter, MaterializedView, Model, QueryEngine, View, ViewQueryEngine,
476 };
477 pub use crate::transaction::{IsolationLevel, Transaction, TransactionConfig};
478 pub use crate::trigger::{
479 Trigger, TriggerAction, TriggerBuilder, TriggerCondition, TriggerEvent, TriggerLevel,
480 TriggerTiming,
481 };
482 pub use crate::types::{OrderBy, Select, SortOrder};
483 pub use crate::upsert::{ConflictAction, ConflictTarget, Upsert, UpsertBuilder};
484 pub use crate::window::{WindowFn, WindowFunction, WindowSpec};
485
486 pub use crate::tenant::{IsolationStrategy, TenantConfig, TenantContext, TenantMiddleware};
488
489 pub use crate::async_optimize::{
491 ConcurrencyConfig, ConcurrentExecutor, IntrospectionConfig, PipelineConfig, QueryPipeline,
492 };
493
494 pub use crate::mem_optimize::{GlobalInterner, InternedStr, LazySchema, QueryArena};
496
497 pub use crate::profiling::{
499 LeakDetector, MemoryProfiler, MemorySnapshot, enable_profiling, with_profiling,
500 };
501}