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
|
Resource
|
The Resource whose pipeline is inspected. |
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
31 32 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 | |