Skip to main content

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

ArgumentTypeRequiredDefaultNotes
table_nameUtf8yes
src_colUtf8nosrc
dst_colUtf8nodst
weight_colUtf8|nullyesrequired edge weight column; semantic effect: required edge weights define the spanning-tree objective
options_jsonUtf8no

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.

OptionTypeDefaultConstraintsDescription
construction_policyUtf8"python_cugraph"one of "python_cugraph", "raw_libcugraph"Edge-list construction semantics used before calling libcugraph.
directedBooleanfalseWhether graph construction treats edges as directed.
renumberBooleantrueWhether graph construction may renumber external vertex identifiers internally.

Output schema

ColumnTypeNullableDescription
srcInt64noSource vertex of an edge selected for the minimum spanning tree.
dstInt64noDestination vertex of an edge selected for the minimum spanning tree.
note

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')
Dataset-specific examples

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.