Data Type Support
Algeon checks Arrow types before a relational candidate enters native
execution. A candidate with an unsupported type keeps the DataFusion baseline,
and native_required mode rejects it instead. Operator and
function support is on Native SQL Support. The
plan for one query is checked with
algeon_explain_coverage.
The table uses two levels of support.
A candidate that uses a Carry column as an expression value, a key, a sort or
partition value, a literal, or an aggregate or window input keeps the
DataFusion baseline. A global COUNT(column) without DISTINCT, FILTER or
GROUP BY over a List, LargeList or FixedSizeList column is native: it
reads only the top-level validity of the column.
Relational columns
Native lists use Int32 offsets. Every offset, child length and rows * D
must fit the nonnegative Int32 range. A LargeList outside that range is
rejected. The range bounds one relation or intermediate result, such as a
UDTF relation argument, a join build side or a sort input: at most
2,147,483,647 child values per list column, or 1,048,575 rows of a 2048-wide
FixedSizeList. A Parquet scan over a larger file reads it in parts that each
fit. A result above the limit fails with size_overflow, naming the column
and the row count that fits; filter it, or split it into row ranges combined
with UNION ALL. A single Parquet row group above the limit fails planning,
and the message gives the row group size to rewrite the file with. Each non-null FixedSizeList row holds exactly D child
positions. NaN, infinities, signed zero, root and child nulls, and empty valid
lists are payload values that carry paths preserve.
UDTF inputs
Each UDTF family checks its own input types, separately from the relational
path. gpu_describe_function('<udtf>') returns the contract and
gpu_validate_call('<udtf>', '<call_json>') validates a call before it runs.
cuGraph edge columns
- Source and destination columns use a numeric type listed for the UDTF in
the vertex ID matrix,
or both are strings (
Utf8,LargeUtf8,Utf8View) when the UDTF lists logical string support. String endpoints share one codebook even when their physical types differ, and vertex identity outputs are returned asUtf8. - Edge weights, when supplied, are
Float32orFloat64. edge_id_coluses the same numeric domain as the endpoints. String vertex mapping does not supportedge_id_color theinclude_edge_id*options.
cuVS vector elements
- Vectors arrive as wide feature columns or one list column, and every feature column and vector binding in a call has the same element type. The element and metric matrix lists the supported combinations. Integer IVF-PQ does not support cosine.
- Floating elements must be finite. Elements are not cast implicitly; use
CASTin the subquery.Float16has no cuDF representation. - Pairwise
distancematches itsFloat32orFloat64input, ANN distance isFloat32and KMeanscluster_idisInt32.
cuML feature relations
- Features are
Float32orFloat64, as wide columns or one list column under any name: aFixedSizeList, or a uniformListorLargeList. Every UDTF exceptcuml_forest_predictnarrowsFloat64toFloat32on the device, and the values cuML reads must be finite.cuml_forest_predicttakesFloat32only. - Every relation has an
idof typeInt32,Int64,Utf8,LargeUtf8orUtf8View. Repeated IDs are allowed.row_ordinal UInt64identifies each output row, beside anidof the input type. - Classifiers take
Int32labels and the regressor finiteFloat32targets intraining.predictrejects alabelcolumn, and unsupervisedinputtreats every non-idcolumn as a feature, including one namedlabel. - Nullability is not checked in the schema. A null value fails the query with an invalid-input error that names the column.
cuML SQL inputs describes relation bindings and the cuML UDTF index each UDTF's output schema.