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