struct Prostore::Schema::Call

Overview

A named query declaration (ADR-0006).

Captures the name and the chain of DSL calls observed in the lambda body (e.g., where, order_by, limit). The Query::Analyzer consumes this to classify field accesses (filtered/sorted) and drive index planning plus the eager-vs-lazy override.

Defined in:

prostore/schema/query.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(name : String, arity : Int32, named_arg_keys : Array(String), positional_symbols : Array(String) = [] of String) #

[View source]

Instance Method Detail

def arity : Int32 #

def clone #

[View source]
def copy_with(name _name = @name, arity _arity = @arity, named_arg_keys _named_arg_keys = @named_arg_keys, positional_symbols _positional_symbols = @positional_symbols) #

[View source]
def name : String #

def named_arg_keys : Array(String) #

def positional_symbols : Array(String) #

Positional SymbolLiteral arguments — e.g., the :score in order_by(:score, desc: true). Captured at macro time so the analyzer can recognize positional sort fields without forcing the named-arg form on users.