Minimum Spanning Tree
SQL function: cugraph_minimum_spanning_tree
Compute a minimum spanning tree.
Signature
cugraph_minimum_spanning_tree(table_name, src_col, dst_col, weight_col [, options_json])
Allowed argument counts: 4, 5.
Quickstart
SELECT * FROM cugraph_minimum_spanning_tree('target_edges', 'src', 'dst', 'weight')
Positional arguments
| Argument | Type | Required | Default | Notes |
|---|---|---|---|---|
table_name | Utf8 | yes | ||
src_col | Utf8 | no | src | |
dst_col | Utf8 | no | dst | |
weight_col | Utf8|null | yes | required edge weight column; semantic effect: required edge weights define the spanning-tree objective | |
options_json | Utf8 | no |
JSON options
This algorithm has no algorithm-specific options.
Graph construction options
Shared by all cuGraph functions, shown here with this function's defaults. The construction_policy option controls whether Nexus requests Python cuGraph-compatible edge normalization or bypasses it for raw libcugraph-style construction; see graph construction options for the full policy guide.
| Option | Type | Default | Constraints | Description |
|---|---|---|---|---|
construction_policy | Utf8 | "python_cugraph" | one of "python_cugraph", "raw_libcugraph" | Edge-list construction semantics used before calling libcugraph. |
directed | Boolean | false | Whether graph construction treats edges as directed. | |
renumber | Boolean | true | Whether graph construction may renumber external vertex identifiers internally. |
Output schema
| Column | Type | Nullable | Description |
|---|---|---|---|
src | Int64 | no | Source vertex of an edge selected for the minimum spanning tree. |
dst | Int64 | no | Destination vertex of an edge selected for the minimum spanning tree. |
These are the generic registry schemas. Run cugraph_validate_call for the concrete, table-specific output schema of a particular call.
Examples
Canonical call (generic table/column names):
SELECT * FROM cugraph_minimum_spanning_tree('target_edges', 'src', 'dst', 'weight')
TODO: add runnable examples against a concrete dataset (edge table, real vertex ids, expected output). These are intentionally left for a follow-up.
Limitations & notes
- dry-run validates table resolution, column presence, static dtypes, and options only
- dry-run does not scan edge data, construct a graph, or prove source-vertex existence
- legacy cuGraph implementation requires Int32 source and destination vertex columns
- cuGraph requires directed=false so the graph is constructed as an undirected/symmetric view
Validate before running
Always dry-run a call before executing it. Validation checks the function, table, columns, dtypes, and options without touching the GPU:
SELECT * FROM cugraph_validate_call(
'cugraph_minimum_spanning_tree',
'your_edges_table',
'{"src_col":"src","dst_col":"dst"}'
);
See Discovery & validation for the full cugraph_validate_call contract.