Expand description
线协议契约:wp_model_core::model::DataType → Arrow 列类型。
这是 wparse(sink 侧)↔ wfusion(接收侧)Arrow 列类型契约的实现,
规格表见 wp-reactor/docs/design/arrow-type-mapping.md(§3 是逐行口径表,§4 是已知差异登记)。
§归属(A-2)
本模块是契约实现的目标落点。迁移前它住在 wp-connector-utils
(arrow::wp_type_to_arrow)——那是「面向 sink 的 connector 工具」crate,
把线协议契约放在那里是定位倒置:按自我声明去找权威实现的人会找到
wp-arrow(schema.rs/convert.rs 的 9 变体类型化前端),拿到的是另一套口径,
于2026-09-19 报出「wp-arrow 与 wp-connector-utils 不一致」(wp-labs/warp-fusion#102)。
迁移状态:本模块已落地(A-2 第 1 步);第 2 步是让 wp-connector-utils
改为转发到本模块、并把契约的值层(DataRecord → 列)一并搬来 —— 那一步
需要先发布本 crate(跨仓发布顺序见规格表 §5)。
§不要把本表与 crate::schema 混为一谈
crate::schema::WpDataType 是 9 变体的类型化前端,它的 Array → List(inner)、
BigInt → Decimal256(39,0) 是它自己的口径(保留结构化/数值语义),与线协议无关
(规格表 §1 A-0、§4 DIV-2/DIV-3)。契约口径是保守的:结构化字段一律 Utf8(JSON 文本),
任意精度整数一律十进制 Utf8。
Functions§
- wp_
type_ to_ arrow wp_model_core::model::DataType→ Arrow 列类型(线协议契约口径)。