Skip to main content

Module contract

Module contract 

Source
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-utilsarrow::wp_type_to_arrow)——那是「面向 sink 的 connector 工具」crate, 把线协议契约放在那里是定位倒置:按自我声明去找权威实现的人会找到 wp-arrowschema.rs/convert.rs 的 9 变体类型化前端),拿到的是另一套口径, 于2026-09-19 报出「wp-arrowwp-connector-utils 不一致」(wp-labs/warp-fusion#102)。

迁移状态:本模块已落地(A-2 第 1 步);第 2 步是让 wp-connector-utils 改为转发到本模块、并把契约的值层DataRecord → 列)一并搬来 —— 那一步 需要先发布本 crate(跨仓发布顺序见规格表 §5)。

§不要把本表与 crate::schema 混为一谈

crate::schema::WpDataType 是 9 变体的类型化前端,它的 ArrayList(inner)BigIntDecimal256(39,0) 是它自己的口径(保留结构化/数值语义),与线协议无关 (规格表 §1 A-0、§4 DIV-2/DIV-3)。契约口径是保守的:结构化字段一律 Utf8(JSON 文本), 任意精度整数一律十进制 Utf8

Functions§

wp_type_to_arrow
wp_model_core::model::DataType → Arrow 列类型(线协议契约口径)。