Skip to content

Draft: feat: implement new numeric types in IR (msgpuck as a submodule)

Alexey Protsenko requested to merge issue199_msgpuck into main

We migrate from the decimal crate (used decQuad from decNumber to store the numbers) to Tarantool internal types provided by the Rust module. The reason was to make IR numeric values easy serializable to the query parameters (a part of the executor refactoring).

The problem with Tarantool internal types is that the internal decNumber representation is provided by Tarantool ABI. So we always need Tarantool itself to use the types. It is ok for integration tests, but for unit tests with cargo test it is a problem. As a solution we have implemented some C mocking infrastructure to build a static library based on the Tarantool decNumber, MsgPuck and some wrappers over them both to make unit tests work.

Merge request reports