From the source
Purpose: Hosted QueryPlan wire contracts. Requires: Core types; generation shares enum definitions from the ontology stack. Used by: QueryPlan protocol and schema generation.
Functions 1
Ordinary typed definitions that programs and elaboration hooks can call.
protocolquery-protocol.lisp:159
(define protocol …)
Types 46
Payload contracts and IR shapes, shown as authored.
TypeNameRefquery-protocol.lisp:7
lisp
(type TypeNameRef {:kind "name" :name String})TypeIdRefquery-protocol.lisp:9
lisp
(type TypeIdRef {:kind "id" :id String})TypeRefquery-protocol.lisp:11
lisp
(type TypeRef (Union TypeNameRef TypeIdRef))RelationshipTypeNameRefquery-protocol.lisp:13
lisp
(type RelationshipTypeNameRef {:kind "name" :name String})RelationshipTypeIdRefquery-protocol.lisp:15
lisp
(type RelationshipTypeIdRef {:kind "id" :id String})RelationshipTypeRefquery-protocol.lisp:17
lisp
(type RelationshipTypeRef (Union RelationshipTypeNameRef RelationshipTypeIdRef))QueryVarExprquery-protocol.lisp:19
lisp
(type QueryVarExpr {:kind "var" :var String})QueryFieldExprquery-protocol.lisp:21
lisp
(type QueryFieldExpr {:kind "field" :on QueryValueExpr :name String})QueryLiteralExprquery-protocol.lisp:23
lisp
(type QueryLiteralExpr {:kind "lit" :value Json})QueryAggregateExprquery-protocol.lisp:25
lisp
(type QueryAggregateExpr {:kind "agg" :fn AggFn :of (Option QueryValueExpr)})QueryValueExprquery-protocol.lisp:27
lisp
(type QueryValueExpr
(Union QueryVarExpr QueryFieldExpr QueryLiteralExpr QueryAggregateExpr))QueryAndOrExprquery-protocol.lisp:30
lisp
(type QueryAndOrExpr {:op (Union "and" "or") :args (List QueryExpr)})QueryNotExprquery-protocol.lisp:32
lisp
(type QueryNotExpr {:op "not" :arg QueryExpr})QueryComparisonExprquery-protocol.lisp:34
lisp
(type QueryComparisonExpr
{:op ComparisonOp :a QueryValueExpr :b QueryValueExpr})QueryInExprquery-protocol.lisp:37
lisp
(type QueryInExpr {:op "in" :a QueryValueExpr :set (List QueryValueExpr)})QueryExistsExprquery-protocol.lisp:39
lisp
(type QueryExistsExpr {:op "exists" :q SubqueryPlan})QueryExprquery-protocol.lisp:41
lisp
(type QueryExpr
(Union
QueryAndOrExpr
QueryNotExpr
QueryComparisonExpr
QueryInExpr
QueryExistsExpr))QueryTypeSourcequery-protocol.lisp:49
lisp
(type QueryTypeSource {:kind "type" :type TypeRef :as String})QueryEntitySourcequery-protocol.lisp:51
lisp
(type QueryEntitySource {:kind "entity" :id String :as String})QueryCteSourcequery-protocol.lisp:53
lisp
(type QueryCteSource {:kind "cte" :name String :as String})QueryViewSourcequery-protocol.lisp:55
lisp
(type QueryViewSource
{:kind "view" :name String :args (Map String QueryValueExpr) :as String})QuerySourcequery-protocol.lisp:58
lisp
(type QuerySource
(Union QueryTypeSource QueryEntitySource QueryCteSource QueryViewSource))QueryOneHopquery-protocol.lisp:61
lisp
(type QueryOneHop {:kind "one"})QueryManyHopquery-protocol.lisp:63
lisp
(type QueryManyHop {:kind "many" :min (Option Float) :max Float})QueryClosureHopquery-protocol.lisp:65
lisp
(type QueryClosureHop {:kind "closure" :limit Float})QueryHopquery-protocol.lisp:67
lisp
(type QueryHop (Union QueryOneHop QueryManyHop QueryClosureHop))QueryJoinquery-protocol.lisp:69
lisp
(type QueryJoin
{
:kind "link"
:as (Option String)
:from String
:type RelationshipTypeRef
:to String
:dir (Option LinkDir)
:optional (Option Bool)
:hop (Option QueryHop)
:where (Option QueryExpr)})QueryObjectShapequery-protocol.lisp:81
lisp
(type QueryObjectShape {:kind "object" :fields (Map String QueryShape)})QueryPickShapequery-protocol.lisp:83
lisp
(type QueryPickShape {:kind "pick" :from String :fields (List String)})QueryValueShapequery-protocol.lisp:85
lisp
(type QueryValueShape {:kind "value" :expr QueryValueExpr})QueryListShapequery-protocol.lisp:87
lisp
(type QueryListShape
{:kind "list" :of QueryShape :limit (Option Float) :distinct (Option Bool)})QueryShapequery-protocol.lisp:90
lisp
(type QueryShape
(Union QueryObjectShape QueryPickShape QueryValueShape QueryListShape))QueryOrderquery-protocol.lisp:93
lisp
(type QueryOrder {:expr QueryValueExpr :dir SortDir :nulls (Option NullsOrder)})QueryPagequery-protocol.lisp:95
lisp
(type QueryPage {:first Float :after (Option String)})QueryOptionsquery-protocol.lisp:97
lisp
(type QueryOptions
{
:maxJoins (Option Float)
:maxHops (Option Float)
:maxCost (Option Float)
:timeoutMs (Option Float)})QueryDefsquery-protocol.lisp:104
lisp
(type QueryDefs {:ctes (Option (Map String SubqueryPlan))})SubqueryPlanquery-protocol.lisp:106
lisp
(type SubqueryPlan
{
:v 1
:asOf String
:defs (Option QueryDefs)
:from QuerySource
:joins (Option (List QueryJoin))
:where (Option QueryExpr)
:groupBy (Option (List QueryValueExpr))
:having (Option QueryExpr)
:select QueryShape})QueryPlanquery-protocol.lisp:118
lisp
(type QueryPlan
{
:v 1
:asOf String
:defs (Option QueryDefs)
:from QuerySource
:joins (Option (List QueryJoin))
:where (Option QueryExpr)
:groupBy (Option (List QueryValueExpr))
:having (Option QueryExpr)
:select QueryShape
:orderBy (Option (List QueryOrder))
:page (Option QueryPage)
:options (Option QueryOptions)})PageInfoquery-protocol.lisp:133
lisp
(type PageInfo {:nextCursor (Option String) :hasMore Bool})QueryStatsquery-protocol.lisp:135
lisp
(type QueryStats {:scannedFacts (Option Float) :elapsedMs (Option Float)})QueryResultquery-protocol.lisp:137
lisp
(type QueryResult
{
:asOf String
:rows (List (Map String Json))
:page (Option PageInfo)
:stats (Option QueryStats)})AggFnquery-protocol.lisp:145
Aggregate function: count, countDistinct, sum, avg, min, max
lisp
(type AggFn (Union "count" "countDistinct" "sum" "avg" "min" "max"))ComparisonOpquery-protocol.lisp:148
Comparison operator: eq, neq, lt, lte, gt, gte
lisp
(type ComparisonOp (Union "eq" "neq" "lt" "lte" "gt" "gte"))LinkDirquery-protocol.lisp:151
Link traversal direction: out, in, or both
lisp
(type LinkDir (Union "out" "in" "both"))SortDirquery-protocol.lisp:154
Sort direction: ascending or descending
lisp
(type SortDir (Union "asc" "desc"))NullsOrderquery-protocol.lisp:157
Where to place null values in sort order
lisp
(type NullsOrder (Union "first" "last"))