Selecto.Schema.ParameterizedJoin (Selecto v0.4.3)
Processing and configuration for parameterized joins.
This module handles the creation and management of parameterized joins, including parameter validation, SQL generation context, and join condition resolution.
Link to this section Summary
Functions
Build parameter context map for SQL template resolution.
Build parameter signature string for caching and identification.
Update join configuration to include parameterized context.
Process a parameterized join configuration by validating parameters and building context.
Resolve parameterized join condition by replacing parameter placeholders.
Validate provided parameters against parameter definitions from join configuration.
Link to this section Types
parameter_definition()
parameterized_join_config()
@type parameterized_join_config() :: %{ base_config: map(), parameters: [validated_parameter()], parameter_context: map(), join_condition: String.t() | nil, parameter_signature: String.t() }
validated_parameter()
Link to this section Functions
build_parameter_context(validated_params)
@spec build_parameter_context([validated_parameter()]) :: map()
Build parameter context map for SQL template resolution.
build_parameter_signature(parameters)
@spec build_parameter_signature([ Selecto.FieldResolver.ParameterizedParser.parameter() ]) :: String.t()
Build parameter signature string for caching and identification.
enhance_join_with_parameters(base_join, parameterized_config)
@spec enhance_join_with_parameters(map(), parameterized_join_config()) :: map()
Update join configuration to include parameterized context.
process_parameterized_join(join_id, join_config, parameters, parent, from_source, queryable)
@spec process_parameterized_join( join_id :: atom(), join_config :: map(), parameters :: [Selecto.FieldResolver.ParameterizedParser.parameter()], parent :: atom(), from_source :: module(), queryable :: map() ) :: parameterized_join_config()
Process a parameterized join configuration by validating parameters and building context.
resolve_parameterized_condition(join_config, validated_params)
@spec resolve_parameterized_condition(map(), [validated_parameter()]) :: String.t() | nil
Resolve parameterized join condition by replacing parameter placeholders.
validate_parameters(param_definitions, provided_params)
@spec validate_parameters([parameter_definition()], [ Selecto.FieldResolver.ParameterizedParser.parameter() ]) :: [validated_parameter()]
Validate provided parameters against parameter definitions from join configuration.