graflo.hq.auto_join¶
Auto-JOIN generation for edge resources.
When a Resource's pipeline contains an EdgeActor whose derivation declares
match_source / match_target, and the source/target vertex types
have known table connectors, this module can auto-generate JoinClauses and
IS_NOT_NULL filters on the edge resource's table connector so that the
resulting SQL fetches fully resolved rows.
enrich_edge_connector_with_joins(resource, connector, bindings, vertex_config)
¶
Mutate connector in-place, adding JoinClauses + IS_NOT_NULL filters.
The function inspects the Resource's actor pipeline for EdgeActors and,
for each edge that declares match_source and match_target,
looks up the source / target vertex table connectors and primary keys to
construct LEFT JOINs and NOT-NULL guards.
If the connector already has joins, this function is a no-op (the user provided explicit join specs).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource
|
ResourceRuntime | ResourceConfig
|
Declarative :class: |
required |
connector
|
TableConnector
|
The table connector to enrich (mutated in-place). |
required |
bindings
|
Bindings
|
The Bindings collection holding all vertex table connectors. |
required |
vertex_config
|
VertexConfig
|
VertexConfig for looking up primary keys. |
required |
Source code in graflo/hq/auto_join.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | |