Skip to main content

Discovery & validation

Three meta functions let humans and agents discover the API and check calls without reading server source.

cugraph_list_algorithms

Inventory of every registered function.

SELECT * FROM cugraph_list_algorithms();

Columns: function_name, algorithm, source_vertex_policy, weight_col_policy, output_schema_kind, signature, allowed_arg_counts_json, summary, metadata_schema_version.

cugraph_describe_algorithm

Machine-readable contract for one function. The optional second argument 'verbose' adds full option, schema, argument, and limitation metadata.

SELECT * FROM cugraph_describe_algorithm('cugraph_bfs');
SELECT * FROM cugraph_describe_algorithm('cugraph_bfs', 'verbose');

The per-function pages in this section are generated from this verbose output.

cugraph_validate_call

Static dry-run of a specific call. Returns the concrete, table-specific output schema and a structured verdict — without scanning edges, building a graph, or launching CUDA.

SELECT * FROM cugraph_validate_call(
'cugraph_pagerank',
'your_edges_table',
'{"src_col":"src","dst_col":"dst","weight_col":"weight"}'
);

Output columns (in order):

ColumnMeaning
validwhether the call is statically valid
error_codestructured code when invalid (for example, table_not_found)
messagehuman-readable explanation
function_namethe function checked
algorithm_enabledwhether the algorithm is enabled on this server
table_resolvedwhether the edge relation resolved
src_col_resolvedwhether src_col exists
dst_col_resolvedwhether dst_col exists
weight_col_resolvedwhether weight_col exists (when given)
src_dtyperesolved source-column dtype
dst_dtyperesolved destination-column dtype
weight_dtyperesolved weight-column dtype
output_schema_jsonthe concrete output schema for this call
normalized_options_jsonoptions after defaulting and normalization
would_execute_gpuwhether execution would dispatch to the GPU
metadata_schema_versionmetadata contract version

What validation does and does not do

Does: confirm the function exists and is enabled; resolve the relation; check that src/dst/weight/predicate columns exist; check vertex dtype compatibility; validate JSON option names, types, and values; enforce conditional requirements (for example, BFS path mode needs a target relation); and compute the concrete output schema.

Does not: scan edge rows, materialize Parquet, build the graph, launch CUDA, or prove the source vertex or target row actually exists.