1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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
// Copyright 2025, 2026 Query Farm LLC - https://query.farm
//! Dict-encoded enum string values used across the VGI wire protocol.
//!
//! Each is serialized as `dictionary(int16, utf8)` (see `vgi_rpc::DictString`);
//! these constants are the canonical string payloads from Python
//! `vgi/metadata.py` and `vgi/catalog/catalog_interface.py`.
use DictString;
/// Build a `DictString` from a `&str`.
/// `FunctionType` — which registry a function lives in.
/// `FunctionStability`.
/// `NullHandling`.
///
/// Wire values are the Python `NullHandling` enum member names (`.name`), which
/// the C++ vgi extension's `ParseFunctionNullHandling` matches exactly. They
/// MUST be uppercase — lowercase values are silently ignored by the extension
/// (falling back to DEFAULT), which notably breaks scalar functions that rely
/// on SPECIAL handling to receive NULL arguments.
/// `OrderPreservation`.
/// `PartitionKind`.
/// `OrderDependence`.
///
/// Wire values are the Python `OrderDependence` enum member names (`.name`),
/// which the C++ vgi extension's `ParseAggregateOrderDependent` matches exactly
/// (via `RequireKnownEnum`). They MUST be uppercase — a lowercase value is
/// rejected outright, failing catalog load for every function. See the sibling
/// note on [`null_handling`].
/// `DistinctDependence`.
///
/// Wire values are the Python `DistinctDependence` enum member names (`.name`),
/// matched exactly by the C++ `ParseAggregateDistinctDependent` via
/// `RequireKnownEnum`. They MUST be uppercase — see [`order_dependence`].
/// `TableInOutFunctionInitPhase` — the `init` request `phase` enum.