#![allow(clippy::result_large_err)]
#![allow(clippy::new_ret_no_self)]
#![allow(clippy::should_implement_trait)]
#![allow(clippy::wrong_self_convention)]
pub mod advanced;
pub mod async_optimize;
pub mod batch;
pub mod builder;
pub mod cache;
pub mod capabilities;
pub mod connection;
pub mod cte;
pub mod data;
#[allow(dead_code, unused_imports)]
pub mod data_cache;
pub mod db_optimize;
pub mod dialect;
pub mod error;
pub mod extension;
pub mod filter;
pub mod inputs;
pub mod intern;
pub mod introspection;
pub mod json;
pub mod lazy;
pub mod logging;
#[macro_use]
pub mod macros;
pub mod mem_optimize;
pub mod memory;
pub mod middleware;
pub mod nested;
pub mod operations;
pub mod pagination;
pub mod partition;
pub mod pool;
pub mod procedure;
pub mod profiling;
pub mod projection;
pub mod query;
pub mod raw;
pub mod relations;
pub mod replication;
pub mod row;
pub mod search;
pub mod security;
pub mod sequence;
pub mod sql;
pub mod static_filter;
pub mod tenant;
pub mod traits;
pub mod transaction;
pub mod trigger;
pub mod typed_filter;
pub mod types;
pub mod upsert;
pub mod window;
pub mod zero_copy;
#[doc(hidden)]
pub use base64;
pub use error::{ErrorCode, ErrorContext, QueryError, QueryResult, Suggestion};
pub use extension::{Extension, ExtensionBuilder, Point, Polygon};
pub use filter::{
AndFilterBuilder, FieldName, Filter, FilterValue, FluentFilterBuilder, LargeValueList,
OrFilterBuilder, ScalarFilter, SmallValueList, ToFilterValue, ValueList,
};
pub use json::{JsonAgg, JsonFilter, JsonIndex, JsonIndexBuilder, JsonOp, JsonPath, PathSegment};
pub use nested::{NestedWrite, NestedWriteBuilder, NestedWriteOp, NestedWriteOperations};
pub use operations::{
AggregateField,
AggregateOperation,
AggregateResult,
CountOperation,
CountSelectMode,
CreateManyOperation,
CreateOperation,
DeleteManyOperation,
DeleteOperation,
FindFirstOperation,
FindManyOperation,
FindUniqueOperation,
GroupByOperation,
GroupByResult,
HavingCondition,
HavingOp,
MaterializedViewAccessor,
RefreshMaterializedViewOperation,
UpdateManyOperation,
UpdateOperation,
UpsertOperation,
ViewAccessor,
ViewCountOperation,
ViewFindFirstOperation,
ViewFindManyOperation,
ViewQueryBuilder,
having,
};
pub use pagination::{Cursor, CursorDirection, Pagination};
pub use partition::{
HashPartitionDef, ListPartitionDef, Partition, PartitionBuilder, PartitionDef, PartitionType,
RangeBound, RangePartitionDef,
};
pub use procedure::{
Parameter, ParameterMode, ProcedureCall, ProcedureCallOperation, ProcedureEngine,
ProcedureResult,
};
pub use projection::ScalarProjection;
pub use query::QueryBuilder;
pub use raw::{RawExecuteOperation, RawQueryOperation, Sql};
pub use relations::{
Include, IncludeSpec, RelationKind, RelationLoader, RelationMeta, RelationSpec, SelectSpec,
};
pub use search::{
FullTextIndex, FullTextIndexBuilder, FuzzyOptions, HighlightOptions, RankingOptions,
SearchLanguage, SearchMode, SearchQuery, SearchQueryBuilder, SearchSql,
};
pub use security::{
ConnectionProfile, ConnectionProfileBuilder, DataMask, Grant, GrantBuilder, GrantObject,
MaskFunction, PolicyCommand, Privilege, RlsPolicy, RlsPolicyBuilder, Role, RoleBuilder,
TenantPolicy, TenantSource,
};
pub use sequence::{OwnedBy, Sequence, SequenceBuilder};
pub use traits::{
Executable, IntoFilter, MaterializedView, Model, ModelRelationLoader, ModelWithPk, QueryEngine,
View, ViewQueryEngine,
};
pub use transaction::{IsolationLevel, Transaction, TransactionConfig};
pub use trigger::{
Trigger, TriggerAction, TriggerBuilder, TriggerCondition, TriggerEvent, TriggerLevel,
TriggerTiming, UpdateOf,
};
pub use types::{
NullsOrder, OrderBy, OrderByBuilder, OrderByField, Select, SortOrder, order_patterns,
};
pub use upsert::{
Assignment, AssignmentValue, ConflictAction, ConflictTarget, UpdateSpec, Upsert, UpsertBuilder,
};
pub use window::{
FrameBound, FrameClause, FrameExclude, FrameType, NamedWindow, NullsPosition, OrderSpec,
WindowFn, WindowFunction, WindowFunctionBuilder, WindowSpec,
};
pub use middleware::{
LoggingMiddleware, MetricsMiddleware, Middleware, MiddlewareBuilder, MiddlewareChain,
MiddlewareStack, QueryContext, QueryMetadata, QueryMetrics, QueryType, RetryMiddleware,
TimingMiddleware,
};
pub use dialect::{Mssql, Mysql, NotSql, Postgres, SqlDialect, Sqlite};
pub use connection::{
ConnectionError, ConnectionOptions, ConnectionString, DatabaseConfig, Driver, EnvExpander,
MultiDatabaseConfig, PoolConfig, PoolOptions, SslConfig, SslMode,
};
pub use cte::{
Cte, CteBuilder, CycleClause, Materialized, SearchClause, SearchMethod, WithClause,
WithQueryBuilder,
};
pub use advanced::{
BulkOperation, DistinctOn, LateralJoin, LateralJoinBuilder, LateralJoinType, LockStrength,
LockWait, ReturnOperation, Returning, ReturningColumn, RowLock, RowLockBuilder, SampleMethod,
SampleSize, TableSample, TableSampleBuilder,
};
pub use data::{
BatchCreate, ConnectData, CreateData, DataBuilder, FieldValue, IntoData, UpdateData,
};
pub use introspection::{
CheckConstraint, ColumnInfo, DatabaseSchema, EnumInfo, ForeignKeyInfo, IndexColumn, IndexInfo,
NormalizedType, ReferentialAction, SequenceInfo, TableInfo, UniqueConstraint, ViewInfo,
generate_prax_schema, normalize_type,
};
pub use tenant::{
DynamicResolver, IsolationStrategy, RowLevelConfig, SchemaConfig, StaticResolver, TenantConfig,
TenantConfigBuilder, TenantContext, TenantId, TenantInfo, TenantMiddleware, TenantResolver,
};
pub use intern::{clear_interned, fields, intern, intern_cow, interned_count};
pub use pool::{FilterBuilder, FilterPool, IntoPooledValue, PooledFilter, PooledValue};
pub use sql::{
AdvancedQueryCapacity, CachedSql, DatabaseType, FastSqlBuilder, LazySql, QueryCapacity,
SqlBuilder, SqlTemplateCache as SqlCache, global_sql_cache, keywords, templates,
};
pub use builder::{
BuilderPool,
ColumnList,
ColumnNameList,
CowColumnList,
CowIdentifier,
ExprList,
FrameBound as BuilderFrameBound,
FrameType as BuilderFrameType,
Identifier,
OptimizedWindowSpec,
OrderByList,
PartitionByList,
ReusableBuilder,
WindowFrame,
};
pub use db_optimize::{
BatchConfig, CachedStatement, IndexHint, IndexHintType, JoinHint, JoinMethod,
MongoPipelineBuilder, PipelineStage, PreparedStatementCache, PreparedStatementStats,
QueryHints, global_statement_cache,
};
pub use zero_copy::{
CteRef, FrameBoundRef, FrameRef, FrameTypeRef, JsonPathRef, PathSegmentRef, WindowSpecRef,
WithClauseRef,
};
pub use cache::{
CacheStats, CachedQuery, ExecutionPlan, ExecutionPlanCache, PlanHint, QueryCache, QueryHash,
QueryKey, SqlTemplate, SqlTemplateCache, get_global_template, global_template_cache,
patterns as cache_patterns, precompute_query_hash, register_global_template,
};
pub use batch::{
Batch, BatchBuilder, BatchOperation, BatchResult, OperationResult, Pipeline, PipelineBuilder,
PipelineQuery, PipelineResult, QueryResult as PipelineQueryResult,
};
pub use row::{FromColumn, FromRow, FromRowRef, RowData, RowError, RowRef, RowRefIter};
pub use lazy::{Lazy, LazyRelation, ManyToOneLoader, OneToManyLoader};
pub use static_filter::{
CompactValue, StaticFilter, and2, and3, and4, and5, contains, ends_with, eq,
fields as static_fields, gt, gte, in_list, is_not_null, is_null, lt, lte, ne, not, not_in_list,
or2, or3, or4, or5, starts_with,
};
pub use typed_filter::{
And, AndN, Contains, DirectSql, EndsWith, Eq, Gt, Gte, InI64, InI64Slice, InStr, InStrSlice,
IsNotNull, IsNull, LazyFilter, Lt, Lte, Maybe, Ne, Not as TypedNot, NotInI64Slice, Or, OrN,
StartsWith, TypedFilter, and_n, eq as typed_eq, gt as typed_gt, gte as typed_gte,
in_i64 as typed_in_i64, in_i64_slice, in_str as typed_in_str, in_str_slice,
is_not_null as typed_is_not_null, is_null as typed_is_null, lazy, lt as typed_lt,
lte as typed_lte, ne as typed_ne, not_in_i64_slice, or_n,
};
pub use memory::{
BufferPool, CompactFilter, GLOBAL_BUFFER_POOL, GLOBAL_STRING_POOL, MemoryStats, PoolStats,
PooledBuffer, StringPool, get_buffer, intern as memory_intern,
};
pub use logging::{
get_log_format, get_log_level, init as init_logging, init_debug, init_with_level,
is_debug_enabled,
};
pub use replication::{
ConnectionRouter, HealthStatus, LagMeasurement, LagMonitor, ReadPreference, ReplicaConfig,
ReplicaHealth, ReplicaRole, ReplicaSetBuilder, ReplicaSetConfig,
};
pub use async_optimize::{
ConcurrencyConfig, ConcurrentExecutor, ExecutionStats, IntrospectionConfig,
IntrospectionResult, PipelineConfig, PipelineError, PipelineResult as AsyncPipelineResult,
QueryPipeline, TaskError, TaskResult,
concurrent::execute_batch as async_execute_batch,
concurrent::execute_chunked as async_execute_chunked,
introspect::{
BatchIntrospector, ColumnMetadata, ConcurrentIntrospector, ForeignKeyMetadata,
IndexMetadata, IntrospectionError, IntrospectionPhase, IntrospectorBuilder, TableMetadata,
},
pipeline::{BulkInsertPipeline, BulkUpdatePipeline, SimulatedExecutor},
};
pub use mem_optimize::{
GlobalInterner, IdentifierCache, InternedStr, ScopedInterner,
arena::{ArenaScope, ArenaStats, QueryArena, ScopedFilter, ScopedQuery, ScopedValue},
interning::{get_interned, intern as global_intern, intern_component, intern_qualified},
lazy::{LazyColumn, LazyForeignKey, LazyIndex, LazySchema, LazySchemaStats, LazyTable},
};
pub use profiling::{
AllocationRecord, AllocationStats, AllocationTracker, HeapProfiler, HeapReport, HeapStats,
LeakDetector, LeakReport, LeakSeverity, MemoryProfiler, MemoryReport, MemorySnapshot,
PotentialLeak, SnapshotDiff, TrackedAllocator, disable_profiling, enable_profiling,
is_profiling_enabled, with_profiling,
};
pub use smallvec;
pub use crate::capabilities::{
SupportsArrayOps, SupportsCaseInsensitiveMode, SupportsCorrelatedSubquery,
SupportsFullTextSearch, SupportsGeneratedColumns, SupportsJsonPath, SupportsNestedWrites,
SupportsRelationFilter, SupportsScalarSubqueryInSelect,
};
pub use crate::inputs::{
AggregateArgs,
AggregateInput,
BigIntFieldUpdate,
BigIntFilter,
BigIntNullableFieldUpdate,
BigIntNullableFilter,
BoolFieldUpdate,
BoolFilter,
BoolNullableFieldUpdate,
BoolNullableFilter,
BytesFieldUpdate,
BytesFilter,
BytesNullableFieldUpdate,
BytesNullableFilter,
CountArgs,
CountSelect,
CreateArgs,
CreateInput,
CreateManyArgs,
CreatePayload,
DateFilter,
DateNullableFilter,
DateTimeFieldUpdate,
DateTimeFilter,
DateTimeNullableFieldUpdate,
DateTimeNullableFilter,
DecimalFieldUpdate,
DecimalFilter,
DecimalNullableFieldUpdate,
DecimalNullableFilter,
DeleteArgs,
DeleteManyArgs,
EnumFieldUpdate,
EnumFilter,
EnumNullableFieldUpdate,
EnumNullableFilter,
FindFirstArgs,
FindManyArgs,
FindUniqueArgs,
FloatFieldUpdate,
FloatFilter,
FloatNullableFieldUpdate,
FloatNullableFilter,
GroupByArgs,
GroupByInput,
IncludeInput,
IntFieldUpdate,
IntFilter,
IntNullableFieldUpdate,
IntNullableFilter,
JsonFieldUpdate,
JsonFilter as InputJsonFilter,
JsonNullableFieldUpdate,
JsonNullableFilter as InputJsonNullableFilter,
ListRelationFilter,
LowerRelationFilter,
OrderByInput,
PaginationInput,
QueryMode,
RelationFilterMeta,
ScalarFilter as InputScalarFilter,
SelectInput,
SingleRelationFilter,
StringFieldUpdate,
StringFilter,
StringNullableFieldUpdate,
StringNullableFilter,
TimeFilter,
TimeNullableFilter,
UpdateArgs,
UpdateInput,
UpdateManyArgs,
UpdatePayload,
UpsertArgs,
UuidFieldUpdate,
UuidFilter,
UuidNullableFieldUpdate,
UuidNullableFilter,
WhereInput,
WhereUniqueInput,
WriteOp,
};
pub mod prelude {
pub use crate::advanced::{LateralJoin, Returning, RowLock, TableSample};
pub use crate::cte::{Cte, CteBuilder, WithClause};
pub use crate::error::{QueryError, QueryResult};
pub use crate::extension::{Extension, Point, Polygon};
pub use crate::filter::{Filter, FilterValue, ScalarFilter};
pub use crate::introspection::{DatabaseSchema, TableInfo, generate_prax_schema};
pub use crate::json::{JsonFilter, JsonOp, JsonPath};
pub use crate::nested::{
NestedWrite, NestedWriteBuilder, NestedWriteOp, NestedWriteOperations,
};
pub use crate::operations::*;
pub use crate::pagination::{Cursor, CursorDirection, Pagination};
pub use crate::partition::{Partition, PartitionBuilder, PartitionType, RangeBound};
pub use crate::procedure::{
Parameter, ParameterMode, ProcedureCall, ProcedureEngine, ProcedureResult,
};
pub use crate::query::QueryBuilder;
pub use crate::raw::{RawExecuteOperation, RawQueryOperation, Sql};
pub use crate::raw_query;
pub use crate::relations::{Include, IncludeSpec, RelationSpec, SelectSpec};
pub use crate::replication::{ConnectionRouter, ReadPreference, ReplicaSetConfig};
pub use crate::search::{FullTextIndex, SearchMode, SearchQuery, SearchQueryBuilder};
pub use crate::security::{Grant, GrantBuilder, RlsPolicy, Role, RoleBuilder};
pub use crate::sequence::{Sequence, SequenceBuilder};
pub use crate::traits::{
Executable, IntoFilter, MaterializedView, Model, QueryEngine, View, ViewQueryEngine,
};
pub use crate::transaction::{IsolationLevel, Transaction, TransactionConfig};
pub use crate::trigger::{
Trigger, TriggerAction, TriggerBuilder, TriggerCondition, TriggerEvent, TriggerLevel,
TriggerTiming,
};
pub use crate::types::{OrderBy, Select, SortOrder};
pub use crate::upsert::{ConflictAction, ConflictTarget, Upsert, UpsertBuilder};
pub use crate::window::{WindowFn, WindowFunction, WindowSpec};
pub use crate::tenant::{IsolationStrategy, TenantConfig, TenantContext, TenantMiddleware};
pub use crate::async_optimize::{
ConcurrencyConfig, ConcurrentExecutor, IntrospectionConfig, PipelineConfig, QueryPipeline,
};
pub use crate::mem_optimize::{GlobalInterner, InternedStr, LazySchema, QueryArena};
pub use crate::profiling::{
LeakDetector, MemoryProfiler, MemorySnapshot, enable_profiling, with_profiling,
};
}