1#![allow(clippy::result_large_err)]
5#![allow(clippy::new_ret_no_self)]
9#![allow(clippy::should_implement_trait)]
13#![allow(clippy::wrong_self_convention)]
14
15pub mod advanced;
164pub mod async_optimize;
165pub mod batch;
166pub mod builder;
167pub mod cache;
168pub mod capabilities;
169pub mod connection;
170pub mod cte;
171pub mod data;
172#[allow(dead_code, unused_imports)]
178pub mod data_cache;
179pub mod db_optimize;
180pub mod dialect;
181pub mod error;
182pub mod extension;
183pub mod filter;
184pub mod inputs;
185pub mod intern;
186pub mod introspection;
187pub mod json;
188pub mod lazy;
189pub mod logging;
190#[macro_use]
191pub mod macros;
192pub mod mem_optimize;
193pub mod memory;
194pub mod middleware;
195pub mod nested;
196pub mod operations;
197pub mod pagination;
198pub mod partition;
199pub mod pool;
200pub mod procedure;
201pub mod profiling;
202pub mod projection;
203pub mod query;
204pub mod raw;
205pub mod relations;
206pub mod replication;
207pub mod row;
208pub mod search;
209pub mod security;
210pub mod sequence;
211pub mod sql;
212pub mod static_filter;
213pub mod tenant;
214pub mod traits;
215pub mod transaction;
216pub mod trigger;
217pub mod typed_filter;
218pub mod types;
219pub mod upsert;
220pub mod window;
221pub mod zero_copy;
222
223#[doc(hidden)]
229pub use base64;
230pub use error::{ErrorCode, ErrorContext, QueryError, QueryResult, Suggestion};
231pub use extension::{Extension, ExtensionBuilder, Point, Polygon};
232pub use filter::{
233 AndFilterBuilder, FieldName, Filter, FilterValue, FluentFilterBuilder, LargeValueList,
234 OrFilterBuilder, ScalarFilter, SmallValueList, ToFilterValue, ValueList,
235};
236pub use json::{JsonAgg, JsonFilter, JsonIndex, JsonIndexBuilder, JsonOp, JsonPath, PathSegment};
237pub use nested::{NestedWrite, NestedWriteBuilder, NestedWriteOp, NestedWriteOperations};
238pub use operations::{
239 AggregateField,
240 AggregateOperation,
241 AggregateResult,
242 CountOperation,
243 CountSelectMode,
244 CreateManyOperation,
245 CreateOperation,
246 DeleteManyOperation,
247 DeleteOperation,
248 FindFirstOperation,
249 FindManyOperation,
250 FindUniqueOperation,
251 GroupByOperation,
252 GroupByResult,
253 HavingCondition,
254 HavingOp,
255 MaterializedViewAccessor,
257 RefreshMaterializedViewOperation,
258 UpdateManyOperation,
259 UpdateOperation,
260 UpsertOperation,
261 ViewAccessor,
262 ViewCountOperation,
263 ViewFindFirstOperation,
264 ViewFindManyOperation,
265 ViewQueryBuilder,
266 having,
267};
268pub use pagination::{Cursor, CursorDirection, Pagination};
269pub use partition::{
270 HashPartitionDef, ListPartitionDef, Partition, PartitionBuilder, PartitionDef, PartitionType,
271 RangeBound, RangePartitionDef,
272};
273pub use procedure::{
274 Parameter, ParameterMode, ProcedureCall, ProcedureCallOperation, ProcedureEngine,
275 ProcedureResult,
276};
277pub use projection::ScalarProjection;
278pub use query::QueryBuilder;
279pub use raw::{RawExecuteOperation, RawQueryOperation, Sql};
280pub use relations::{
281 Include, IncludeSpec, RelationKind, RelationLoader, RelationMeta, RelationSpec, SelectSpec,
282};
283pub use search::{
284 FullTextIndex, FullTextIndexBuilder, FuzzyOptions, HighlightOptions, RankingOptions,
285 SearchLanguage, SearchMode, SearchQuery, SearchQueryBuilder, SearchSql,
286};
287pub use security::{
288 ConnectionProfile, ConnectionProfileBuilder, DataMask, Grant, GrantBuilder, GrantObject,
289 MaskFunction, PolicyCommand, Privilege, RlsPolicy, RlsPolicyBuilder, Role, RoleBuilder,
290 TenantPolicy, TenantSource,
291};
292pub use sequence::{OwnedBy, Sequence, SequenceBuilder};
293pub use traits::{
294 Executable, IntoFilter, MaterializedView, Model, ModelRelationLoader, ModelWithPk, QueryEngine,
295 View, ViewQueryEngine,
296};
297pub use transaction::{IsolationLevel, Transaction, TransactionConfig};
298pub use trigger::{
299 Trigger, TriggerAction, TriggerBuilder, TriggerCondition, TriggerEvent, TriggerLevel,
300 TriggerTiming, UpdateOf,
301};
302pub use types::{
303 NullsOrder, OrderBy, OrderByBuilder, OrderByField, Select, SortOrder, order_patterns,
304};
305pub use upsert::{
306 Assignment, AssignmentValue, ConflictAction, ConflictTarget, UpdateSpec, Upsert, UpsertBuilder,
307};
308pub use window::{
309 FrameBound, FrameClause, FrameExclude, FrameType, NamedWindow, NullsPosition, OrderSpec,
310 WindowFn, WindowFunction, WindowFunctionBuilder, WindowSpec,
311};
312
313pub use middleware::{
315 LoggingMiddleware, MetricsMiddleware, Middleware, MiddlewareBuilder, MiddlewareChain,
316 MiddlewareStack, QueryContext, QueryMetadata, QueryMetrics, QueryType, RetryMiddleware,
317 TimingMiddleware,
318};
319
320pub use dialect::{Mssql, Mysql, NotSql, Postgres, SqlDialect, Sqlite};
322
323pub use connection::{
325 ConnectionError, ConnectionOptions, ConnectionString, DatabaseConfig, Driver, EnvExpander,
326 MultiDatabaseConfig, PoolConfig, PoolOptions, SslConfig, SslMode,
327};
328pub use cte::{
329 Cte, CteBuilder, CycleClause, Materialized, SearchClause, SearchMethod, WithClause,
330 WithQueryBuilder,
331};
332
333pub use advanced::{
335 BulkOperation, DistinctOn, LateralJoin, LateralJoinBuilder, LateralJoinType, LockStrength,
336 LockWait, ReturnOperation, Returning, ReturningColumn, RowLock, RowLockBuilder, SampleMethod,
337 SampleSize, TableSample, TableSampleBuilder,
338};
339
340pub use data::{
342 BatchCreate, ConnectData, CreateData, DataBuilder, FieldValue, IntoData, UpdateData,
343};
344
345pub use introspection::{
347 CheckConstraint, ColumnInfo, DatabaseSchema, EnumInfo, ForeignKeyInfo, IndexColumn, IndexInfo,
348 NormalizedType, ReferentialAction, SequenceInfo, TableInfo, UniqueConstraint, ViewInfo,
349 generate_prax_schema, normalize_type,
350};
351
352pub use tenant::{
354 DynamicResolver, IsolationStrategy, RowLevelConfig, SchemaConfig, StaticResolver, TenantConfig,
355 TenantConfigBuilder, TenantContext, TenantId, TenantInfo, TenantMiddleware, TenantResolver,
356};
357
358pub use intern::{clear_interned, fields, intern, intern_cow, interned_count};
360
361pub use pool::{FilterBuilder, FilterPool, IntoPooledValue, PooledFilter, PooledValue};
363
364pub use sql::{
366 AdvancedQueryCapacity, CachedSql, DatabaseType, FastSqlBuilder, LazySql, QueryCapacity,
367 SqlBuilder, SqlTemplateCache as SqlCache, global_sql_cache, keywords, templates,
368};
369
370pub use builder::{
372 BuilderPool,
373 ColumnList,
374 ColumnNameList,
375 CowColumnList,
376 CowIdentifier,
377 ExprList,
378 FrameBound as BuilderFrameBound,
380 FrameType as BuilderFrameType,
381 Identifier,
382 OptimizedWindowSpec,
383 OrderByList,
384 PartitionByList,
385 ReusableBuilder,
386 WindowFrame,
387};
388
389pub use db_optimize::{
391 BatchConfig, CachedStatement, IndexHint, IndexHintType, JoinHint, JoinMethod,
392 MongoPipelineBuilder, PipelineStage, PreparedStatementCache, PreparedStatementStats,
393 QueryHints, global_statement_cache,
394};
395
396pub use zero_copy::{
398 CteRef, FrameBoundRef, FrameRef, FrameTypeRef, JsonPathRef, PathSegmentRef, WindowSpecRef,
399 WithClauseRef,
400};
401
402pub use cache::{
404 CacheStats, CachedQuery, ExecutionPlan, ExecutionPlanCache, PlanHint, QueryCache, QueryHash,
405 QueryKey, SqlTemplate, SqlTemplateCache, get_global_template, global_template_cache,
406 patterns as cache_patterns, precompute_query_hash, register_global_template,
407};
408
409pub use batch::{
411 Batch, BatchBuilder, BatchOperation, BatchResult, OperationResult, Pipeline, PipelineBuilder,
412 PipelineQuery, PipelineResult, QueryResult as PipelineQueryResult,
413};
414
415pub use row::{FromColumn, FromRow, FromRowRef, RowData, RowError, RowRef, RowRefIter};
417
418pub use lazy::{Lazy, LazyRelation, ManyToOneLoader, OneToManyLoader};
420
421pub use static_filter::{
423 CompactValue, StaticFilter, and2, and3, and4, and5, contains, ends_with, eq,
424 fields as static_fields, gt, gte, in_list, is_not_null, is_null, lt, lte, ne, not, not_in_list,
425 or2, or3, or4, or5, starts_with,
426};
427
428pub use typed_filter::{
430 And, AndN, Contains, DirectSql, EndsWith, Eq, Gt, Gte, InI64, InI64Slice, InStr, InStrSlice,
431 IsNotNull, IsNull, LazyFilter, Lt, Lte, Maybe, Ne, Not as TypedNot, NotInI64Slice, Or, OrN,
432 StartsWith, TypedFilter, and_n, eq as typed_eq, gt as typed_gt, gte as typed_gte,
433 in_i64 as typed_in_i64, in_i64_slice, in_str as typed_in_str, in_str_slice,
434 is_not_null as typed_is_not_null, is_null as typed_is_null, lazy, lt as typed_lt,
435 lte as typed_lte, ne as typed_ne, not_in_i64_slice, or_n,
436};
437
438pub use memory::{
440 BufferPool, CompactFilter, GLOBAL_BUFFER_POOL, GLOBAL_STRING_POOL, MemoryStats, PoolStats,
441 PooledBuffer, StringPool, get_buffer, intern as memory_intern,
442};
443
444pub use logging::{
446 get_log_format, get_log_level, init as init_logging, init_debug, init_with_level,
447 is_debug_enabled,
448};
449
450pub use replication::{
452 ConnectionRouter, HealthStatus, LagMeasurement, LagMonitor, ReadPreference, ReplicaConfig,
453 ReplicaHealth, ReplicaRole, ReplicaSetBuilder, ReplicaSetConfig,
454};
455
456pub use async_optimize::{
458 ConcurrencyConfig, ConcurrentExecutor, ExecutionStats, IntrospectionConfig,
459 IntrospectionResult, PipelineConfig, PipelineError, PipelineResult as AsyncPipelineResult,
460 QueryPipeline, TaskError, TaskResult,
461 concurrent::execute_batch as async_execute_batch,
462 concurrent::execute_chunked as async_execute_chunked,
463 introspect::{
464 BatchIntrospector, ColumnMetadata, ConcurrentIntrospector, ForeignKeyMetadata,
465 IndexMetadata, IntrospectionError, IntrospectionPhase, IntrospectorBuilder, TableMetadata,
466 },
467 pipeline::{BulkInsertPipeline, BulkUpdatePipeline, SimulatedExecutor},
468};
469
470pub use mem_optimize::{
472 GlobalInterner, IdentifierCache, InternedStr, ScopedInterner,
473 arena::{ArenaScope, ArenaStats, QueryArena, ScopedFilter, ScopedQuery, ScopedValue},
474 interning::{get_interned, intern as global_intern, intern_component, intern_qualified},
475 lazy::{LazyColumn, LazyForeignKey, LazyIndex, LazySchema, LazySchemaStats, LazyTable},
476};
477
478pub use profiling::{
480 AllocationRecord, AllocationStats, AllocationTracker, HeapProfiler, HeapReport, HeapStats,
481 LeakDetector, LeakReport, LeakSeverity, MemoryProfiler, MemoryReport, MemorySnapshot,
482 PotentialLeak, SnapshotDiff, TrackedAllocator, disable_profiling, enable_profiling,
483 is_profiling_enabled, with_profiling,
484};
485
486pub use smallvec;
488
489pub use crate::capabilities::{
491 SupportsArrayOps, SupportsCaseInsensitiveMode, SupportsCorrelatedSubquery,
492 SupportsFullTextSearch, SupportsGeneratedColumns, SupportsJsonPath, SupportsNestedWrites,
493 SupportsRelationFilter, SupportsScalarSubqueryInSelect,
494};
495pub use crate::inputs::{
496 AggregateArgs,
498 AggregateInput,
500 BigIntFieldUpdate,
502 BigIntFilter,
506 BigIntNullableFieldUpdate,
507 BigIntNullableFilter,
508 BoolFieldUpdate,
509 BoolFilter,
510 BoolNullableFieldUpdate,
511 BoolNullableFilter,
512 BytesFieldUpdate,
513 BytesFilter,
514 BytesNullableFieldUpdate,
515 BytesNullableFilter,
516 CountArgs,
517 CountSelect,
518 CreateArgs,
519 CreateInput,
520 CreateManyArgs,
521 CreatePayload,
523 DateFilter,
524 DateNullableFilter,
525 DateTimeFieldUpdate,
526 DateTimeFilter,
527 DateTimeNullableFieldUpdate,
528 DateTimeNullableFilter,
529 DecimalFieldUpdate,
530 DecimalFilter,
531 DecimalNullableFieldUpdate,
532 DecimalNullableFilter,
533 DeleteArgs,
534 DeleteManyArgs,
535 EnumFieldUpdate,
536 EnumFilter,
537 EnumNullableFieldUpdate,
538 EnumNullableFilter,
539 FindFirstArgs,
540 FindManyArgs,
541 FindUniqueArgs,
542 FloatFieldUpdate,
543 FloatFilter,
544 FloatNullableFieldUpdate,
545 FloatNullableFilter,
546 GroupByArgs,
547 GroupByInput,
548 IncludeInput,
549 IntFieldUpdate,
550 IntFilter,
551 IntNullableFieldUpdate,
552 IntNullableFilter,
553 JsonFieldUpdate,
554 JsonFilter as InputJsonFilter,
557 JsonNullableFieldUpdate,
558 JsonNullableFilter as InputJsonNullableFilter,
559 ListRelationFilter,
561 LowerRelationFilter,
562 OrderByInput,
563 PaginationInput,
564 QueryMode,
565 RelationFilterMeta,
566 ScalarFilter as InputScalarFilter,
567 SelectInput,
568 SingleRelationFilter,
569 StringFieldUpdate,
570 StringFilter,
571 StringNullableFieldUpdate,
572 StringNullableFilter,
573 TimeFilter,
574 TimeNullableFilter,
575 UpdateArgs,
576 UpdateInput,
577 UpdateManyArgs,
578 UpdatePayload,
579 UpsertArgs,
580 UuidFieldUpdate,
581 UuidFilter,
582 UuidNullableFieldUpdate,
583 UuidNullableFilter,
584 WhereInput,
585 WhereUniqueInput,
586 WriteOp,
587};
588
589pub mod prelude {
591 pub use crate::advanced::{LateralJoin, Returning, RowLock, TableSample};
592 pub use crate::cte::{Cte, CteBuilder, WithClause};
593 pub use crate::error::{QueryError, QueryResult};
594 pub use crate::extension::{Extension, Point, Polygon};
595 pub use crate::filter::{Filter, FilterValue, ScalarFilter};
596 pub use crate::introspection::{DatabaseSchema, TableInfo, generate_prax_schema};
597 pub use crate::json::{JsonFilter, JsonOp, JsonPath};
598 pub use crate::nested::{
599 NestedWrite, NestedWriteBuilder, NestedWriteOp, NestedWriteOperations,
600 };
601 pub use crate::operations::*;
602 pub use crate::pagination::{Cursor, CursorDirection, Pagination};
603 pub use crate::partition::{Partition, PartitionBuilder, PartitionType, RangeBound};
604 pub use crate::procedure::{
605 Parameter, ParameterMode, ProcedureCall, ProcedureEngine, ProcedureResult,
606 };
607 pub use crate::query::QueryBuilder;
608 pub use crate::raw::{RawExecuteOperation, RawQueryOperation, Sql};
609 pub use crate::raw_query;
610 pub use crate::relations::{Include, IncludeSpec, RelationSpec, SelectSpec};
611 pub use crate::replication::{ConnectionRouter, ReadPreference, ReplicaSetConfig};
612 pub use crate::search::{FullTextIndex, SearchMode, SearchQuery, SearchQueryBuilder};
613 pub use crate::security::{Grant, GrantBuilder, RlsPolicy, Role, RoleBuilder};
614 pub use crate::sequence::{Sequence, SequenceBuilder};
615 pub use crate::traits::{
616 Executable, IntoFilter, MaterializedView, Model, QueryEngine, View, ViewQueryEngine,
617 };
618 pub use crate::transaction::{IsolationLevel, Transaction, TransactionConfig};
619 pub use crate::trigger::{
620 Trigger, TriggerAction, TriggerBuilder, TriggerCondition, TriggerEvent, TriggerLevel,
621 TriggerTiming,
622 };
623 pub use crate::types::{OrderBy, Select, SortOrder};
624 pub use crate::upsert::{ConflictAction, ConflictTarget, Upsert, UpsertBuilder};
625 pub use crate::window::{WindowFn, WindowFunction, WindowSpec};
626
627 pub use crate::tenant::{IsolationStrategy, TenantConfig, TenantContext, TenantMiddleware};
629
630 pub use crate::async_optimize::{
632 ConcurrencyConfig, ConcurrentExecutor, IntrospectionConfig, PipelineConfig, QueryPipeline,
633 };
634
635 pub use crate::mem_optimize::{GlobalInterner, InternedStr, LazySchema, QueryArena};
637
638 pub use crate::profiling::{
640 LeakDetector, MemoryProfiler, MemorySnapshot, enable_profiling, with_profiling,
641 };
642}