# Selecto v0.4.5 - Table of Contents

Alpha: composable SQL query builder for Elixir domains with joins, CTEs, OLAP, and hierarchical patterns

## Pages

- [Selecto](readme.md)
- [Complex Join Patterns Guide](complex_join_patterns.md)
- [OLAP Dimension Support and Hierarchical Patterns](olap_and_hierarchical_patterns.md)
- [Advanced Usage Guide](advanced_usage.md)

## Modules

- [Selecto.Advanced.ArrayOperations](Selecto.Advanced.ArrayOperations.md): Array operations support for PostgreSQL array functionality.
- [Selecto.Advanced.ArrayOperations.Spec](Selecto.Advanced.ArrayOperations.Spec.md): Specification for array operations in SELECT, WHERE, and other clauses.

- [Selecto.Advanced.CTE](Selecto.Advanced.CTE.md): Common Table Expression (CTE) support for PostgreSQL WITH clauses.
- [Selecto.Advanced.CTE.Spec](Selecto.Advanced.CTE.Spec.md): Specification for Common Table Expression definitions.

- [Selecto.Advanced.CaseExpression](Selecto.Advanced.CaseExpression.md): CASE expression support for PostgreSQL conditional logic.
- [Selecto.Advanced.CaseExpression.Spec](Selecto.Advanced.CaseExpression.Spec.md): Specification for CASE expression definitions.

- [Selecto.Advanced.JsonOperations](Selecto.Advanced.JsonOperations.md): JSON operations support for PostgreSQL JSON and JSONB functionality.
- [Selecto.Advanced.JsonOperations.Spec](Selecto.Advanced.JsonOperations.Spec.md): Specification for JSON operations in SELECT, WHERE, and other clauses.

- [Selecto.Advanced.LateralJoin](Selecto.Advanced.LateralJoin.md): LATERAL join support for correlated subqueries and advanced join patterns.
- [Selecto.Advanced.LateralJoin.Spec](Selecto.Advanced.LateralJoin.Spec.md): Specification for a LATERAL join operation.

- [Selecto.Advanced.ValuesClause](Selecto.Advanced.ValuesClause.md): VALUES clause support for inline table generation and data transformations.
- [Selecto.Advanced.ValuesClause.Spec](Selecto.Advanced.ValuesClause.Spec.md): Specification for a VALUES clause operation.

- [Selecto.AutoPivot](Selecto.AutoPivot.md): Deprecated compatibility wrapper for `Selecto.AutoRetarget`.

- [Selecto.AutoRetarget](Selecto.AutoRetarget.md): Automatic retarget detection and application for Selecto queries.
- [Selecto.Builder.ArrayOperations](Selecto.Builder.ArrayOperations.md): SQL builder for PostgreSQL array operations.
- [Selecto.Builder.CaseExpression](Selecto.Builder.CaseExpression.md): SQL generation for PostgreSQL CASE expressions.
- [Selecto.Builder.JsonOperations](Selecto.Builder.JsonOperations.md): SQL generation for PostgreSQL JSON operations.
- [Selecto.Builder.LateralJoin](Selecto.Builder.LateralJoin.md): SQL generation for LATERAL joins.
- [Selecto.Builder.Pivot](Selecto.Builder.Pivot.md): Deprecated compatibility wrapper for `Selecto.Builder.Retarget`.

- [Selecto.Builder.Retarget](Selecto.Builder.Retarget.md): SQL generation logic for Retarget functionality.
- [Selecto.Builder.SetOperations](Selecto.Builder.SetOperations.md): SQL generation for set operations (UNION, INTERSECT, EXCEPT).
- [Selecto.Builder.Sql.Helpers](Selecto.Builder.Sql.Helpers.md): Helper functions shared by SQL builder modules.
- [Selecto.Builder.Subselect](Selecto.Builder.Subselect.md): SQL generation logic for Subselect functionality.
- [Selecto.Builder.ValuesClause](Selecto.Builder.ValuesClause.md): SQL generation for VALUES clauses in PostgreSQL queries.
- [Selecto.Builder.Window](Selecto.Builder.Window.md): Builds SQL for window functions.
- [Selecto.Config.Overlay](Selecto.Config.Overlay.md): Merges overlay configurations into base domain configurations.
- [Selecto.Config.OverlayDSL](Selecto.Config.OverlayDSL.md): A DSL (Domain-Specific Language) for defining overlay configurations.
- [Selecto.Configuration](Selecto.Configuration.md): Domain configuration and initialization for Selecto.
- [Selecto.ConnectionPool](Selecto.ConnectionPool.md): Connection pooling and management for Selecto.
- [Selecto.DB.Adapter](Selecto.DB.Adapter.md): Behaviour contract for Selecto database adapters.
- [Selecto.Diagnostics](Selecto.Diagnostics.md): Query diagnostics helpers (EXPLAIN / EXPLAIN ANALYZE).

- [Selecto.DynamicJoin](Selecto.DynamicJoin.md): Handles dynamic join additions at runtime.
- [Selecto.EctoAdapter](Selecto.EctoAdapter.md): Ecto integration for Selecto query builder.
- [Selecto.EnhancedJoins](Selecto.EnhancedJoins.md): Enhanced join types and patterns for Selecto.
- [Selecto.Error](Selecto.Error.md): Standardized error structure for all Selecto operations.
- [Selecto.Executor](Selecto.Executor.md): Query execution engine for Selecto.
- [Selecto.Expr](Selecto.Expr.md): Ergonomic constructors for Selecto filter and selector AST.
- [Selecto.ExprMacros](Selecto.ExprMacros.md): Macro sugar for Selecto expressions.
- [Selecto.Extension](Selecto.Extension.md): Behavior contract for Selecto ecosystem extensions.
- [Selecto.Extensions](Selecto.Extensions.md): Shared extension loading and callback dispatch for the Selecto ecosystem.

- [Selecto.FieldResolver](Selecto.FieldResolver.md): Enhanced field resolution system for Selecto with disambiguation, aliasing, and dynamic resolution.
- [Selecto.FieldResolver.ParameterizedParser](Selecto.FieldResolver.ParameterizedParser.md): Parser for parameterized joins with dot notation support.
- [Selecto.Fields](Selecto.Fields.md): Field access and resolution operations for Selecto.
- [Selecto.Helpers.Date](Selecto.Helpers.Date.md): Date helper functions for Selecto.
- [Selecto.Jsonb](Selecto.Jsonb.md): JSONB column support with dot notation for filtering and selection.
- [Selecto.Livebook](Selecto.Livebook.md): Convenience helpers for interactive notebooks and demos.

- [Selecto.LogSanitizer](Selecto.LogSanitizer.md): Sanitizes SQL queries and parameters for safe logging.
- [Selecto.Output.Formats](Selecto.Output.Formats.md): Format registry and configuration system for Selecto output formats.
- [Selecto.Output.Transformers.CSV](Selecto.Output.Transformers.CSV.md): CSV transformer for Selecto query results.
- [Selecto.Output.Transformers.Json](Selecto.Output.Transformers.Json.md): JSON transformer for Selecto query results.
- [Selecto.Output.Transformers.Maps](Selecto.Output.Transformers.Maps.md): Transforms query results to list of maps format.
- [Selecto.Output.Transformers.Stream](Selecto.Output.Transformers.Stream.md): Transforms query results to streaming format for memory-efficient processing of large datasets.
- [Selecto.Output.Transformers.Structs](Selecto.Output.Transformers.Structs.md): Transforms query results into structured data using Elixir structs.
- [Selecto.Output.TypeCoercion](Selecto.Output.TypeCoercion.md): Database type coercion system for transforming raw database values
to appropriate Elixir types based on PostgreSQL column types.
- [Selecto.Performance.ComplexityAnalyzer](Selecto.Performance.ComplexityAnalyzer.md): Analyzes query complexity to prevent database overload.
- [Selecto.Performance.HookBehaviour](Selecto.Performance.HookBehaviour.md): Behaviour for implementing custom performance monitoring hooks.
- [Selecto.Performance.Hooks](Selecto.Performance.Hooks.md): Performance monitoring hooks for Selecto query execution.
- [Selecto.Performance.MetricsCollector](Selecto.Performance.MetricsCollector.md): Collects and tracks query performance metrics for Selecto.
- [Selecto.Performance.QueryAnalyzer](Selecto.Performance.QueryAnalyzer.md): Query analysis and optimization using adapter-backed EXPLAIN support.
- [Selecto.Performance.QueryCache](Selecto.Performance.QueryCache.md): High-performance query result caching for Selecto.
- [Selecto.Pivot](Selecto.Pivot.md): Deprecated compatibility wrapper for `Selecto.Retarget`.

- [Selecto.Query](Selecto.Query.md): Core query building operations for Selecto.
- [Selecto.Retarget](Selecto.Retarget.md): Retarget functionality for retargeting joined tables as primary query focus.
- [Selecto.SQL.Formatter](Selecto.SQL.Formatter.md): Lightweight SQL formatting and highlighting helpers.
- [Selecto.SQL.Functions](Selecto.SQL.Functions.md): Advanced SQL function support for Selecto.
- [Selecto.Schema.ParameterizedJoin](Selecto.Schema.ParameterizedJoin.md): Processing and configuration for parameterized joins.
- [Selecto.SelectionShape](Selecto.SelectionShape.md): Structured selection helpers for building and materializing nested result shapes.
- [Selecto.SetOperations](Selecto.SetOperations.md): Set operations for combining query results using UNION, INTERSECT, and EXCEPT.
- [Selecto.SetOperations.Spec](Selecto.SetOperations.Spec.md): Specification for a set operation between two or more queries.

- [Selecto.SetOperations.Validation](Selecto.SetOperations.Validation.md): Schema validation for set operations between queries.

- [Selecto.Sigil](Selecto.Sigil.md): Sigils for Selecto expression authoring.
- [Selecto.Subfilter](Selecto.Subfilter.md): Core subfilter data structures and specifications.
- [Selecto.Subfilter.CompoundSpec](Selecto.Subfilter.CompoundSpec.md): Specification for compound subfilter operations (AND/OR).

- [Selecto.Subfilter.FilterSpec](Selecto.Subfilter.FilterSpec.md): Filter specification for subfilter conditions.

- [Selecto.Subfilter.JoinPathResolver](Selecto.Subfilter.JoinPathResolver.md): Resolve relationship paths into join sequences using domain join-path configuration.
- [Selecto.Subfilter.JoinPathResolver.JoinResolution](Selecto.Subfilter.JoinPathResolver.JoinResolution.md): Structure representing a resolved join path with all necessary join information.

- [Selecto.Subfilter.Parser](Selecto.Subfilter.Parser.md): Parse subfilter configurations into structured subfilter specs.
- [Selecto.Subfilter.Registry](Selecto.Subfilter.Registry.md): Registry system for managing multiple subfilters with strategy selection and optimization.
- [Selecto.Subfilter.RelationshipPath](Selecto.Subfilter.RelationshipPath.md): Parsed relationship path information.

- [Selecto.Subfilter.SQL](Selecto.Subfilter.SQL.md): Generate SQL WHERE clauses for subfilters from the Subfilter Registry.
- [Selecto.Subfilter.SQL.AggregationBuilder](Selecto.Subfilter.SQL.AggregationBuilder.md): Builds subqueries with aggregations (COUNT, SUM, AVG, etc.).
- [Selecto.Subfilter.SQL.AnyAllBuilder](Selecto.Subfilter.SQL.AnyAllBuilder.md): Builds ANY and ALL subqueries for subfilters.
- [Selecto.Subfilter.SQL.ExistsBuilder](Selecto.Subfilter.SQL.ExistsBuilder.md): Builds EXISTS subqueries for subfilters.
- [Selecto.Subfilter.SQL.InBuilder](Selecto.Subfilter.SQL.InBuilder.md): Builds IN subqueries for subfilters.
- [Selecto.Subfilter.Spec](Selecto.Subfilter.Spec.md): Specification for a single subfilter operation.

- [Selecto.Subselect](Selecto.Subselect.md): Subselect functionality for array-based data aggregation from related tables.
- [Selecto.Tenant](Selecto.Tenant.md): Multi-tenant helpers for Selecto query state.
- [Selecto.TypeSystem](Selecto.TypeSystem.md): Type inference and coercion system for Selecto SQL expressions.
- [Selecto.ViewPublisher](Selecto.ViewPublisher.md): Validates Selecto-authored published view specs before any DDL generation.
- [Selecto.Window](Selecto.Window.md): Window functions provide powerful analytical capabilities for PostgreSQL queries.
- [Selecto.Window.Frame](Selecto.Window.Frame.md): Window frame specification (ROWS or RANGE).
- [Selecto.Window.Spec](Selecto.Window.Spec.md): Specification for a window function operation.

- Core
  - [Selecto](Selecto.md): Selecto is a query builder for Elixir that uses Postgrex to execute queries.
It is designed to be a flexible and powerful tool for building complex SQL queries
without writing SQL by hand.
  - [Selecto.Types](Selecto.Types.md): Comprehensive type definitions for the Selecto query builder.

- Builders
  - [Selecto.Builder.CteSql](Selecto.Builder.CteSql.md): SQL generation for PostgreSQL Common Table Expressions (CTEs).
  - [Selecto.Builder.Join](Selecto.Builder.Join.md): Join dependency utilities used by the SQL builder pipeline.
  - [Selecto.Builder.Sql](Selecto.Builder.Sql.md): Main SQL compilation entry point for a configured `Selecto` query.

- SQL Builders
  - [Selecto.Builder.Sql.Group](Selecto.Builder.Sql.Group.md): GROUP BY clause builder for Selecto queries.
  - [Selecto.Builder.Sql.Hierarchy](Selecto.Builder.Sql.Hierarchy.md): Hierarchical SQL pattern generation for self-referencing relationships.
  - [Selecto.Builder.Sql.Olap](Selecto.Builder.Sql.Olap.md): OLAP dimension optimization SQL patterns for star and snowflake schemas.
  - [Selecto.Builder.Sql.Order](Selecto.Builder.Sql.Order.md): ORDER BY clause builder for Selecto queries.
  - [Selecto.Builder.Sql.Select](Selecto.Builder.Sql.Select.md): SELECT-expression compiler for Selecto query AST values.
  - [Selecto.Builder.Sql.Tagging](Selecto.Builder.Sql.Tagging.md): Many-to-many tagging SQL pattern generation for join table relationships.
  - [Selecto.Builder.Sql.Where](Selecto.Builder.Sql.Where.md): WHERE-clause compiler for Selecto predicate expressions.

- Schema
  - [Selecto.Schema](Selecto.Schema.md): Namespace module for schema processing helpers.
  - [Selecto.Schema.Column](Selecto.Schema.Column.md): Builds normalized column definitions for domain fields and join fields.
  - [Selecto.Schema.Join](Selecto.Schema.Join.md): # Join Configuration and Patterns

- Utilities
  - [Selecto.DomainValidator](Selecto.DomainValidator.md): Domain validation for Selecto configurations.
  - [Selecto.Helpers](Selecto.Helpers.md): Shared utility helpers used across Selecto internals.

- Exceptions
  - [Selecto.Advanced.ArrayOperations.ValidationError](Selecto.Advanced.ArrayOperations.ValidationError.md): Error raised when array operation specification is invalid.

  - [Selecto.Advanced.CTE.ValidationError](Selecto.Advanced.CTE.ValidationError.md): Error raised when CTE specification is invalid.

  - [Selecto.Advanced.CaseExpression.ValidationError](Selecto.Advanced.CaseExpression.ValidationError.md): Error raised when CASE expression specification is invalid.

  - [Selecto.Advanced.JsonOperations.ValidationError](Selecto.Advanced.JsonOperations.ValidationError.md): Error raised when JSON operation specification is invalid.

  - [Selecto.Advanced.LateralJoin.CorrelationError](Selecto.Advanced.LateralJoin.CorrelationError.md): Error raised when LATERAL join correlations are invalid.

  - [Selecto.Advanced.ValuesClause.ValidationError](Selecto.Advanced.ValuesClause.ValidationError.md): Error raised when VALUES clause data is invalid.

  - [Selecto.DomainValidator.ValidationError](Selecto.DomainValidator.ValidationError.md): Exception raised when domain validation fails.

  - [Selecto.SetOperations.Validation.SchemaError](Selecto.SetOperations.Validation.SchemaError.md)
  - [Selecto.Subfilter.Error](Selecto.Subfilter.Error.md): Subfilter-specific error structure.

## Mix Tasks

- [mix selecto.bench](Mix.Tasks.Selecto.Bench.md): Benchmarks comparable query-build and SQL-compilation paths for Selecto and Ecto.

