You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RisingLight now uses rust_decimal to represent decimal values. However, computations on this type are relatively slow due to its large precision (96 bits) and variable scale. For small decimals, e.g. DECIMAL(15,2) in TPC-H tables, we could store and compute them as i64. This would bring a huge performance boost (considering SIMD). A potential challenge of this change is that we can no longer tell the exact value from array without its datatype. 🤔
IMHO another challenge is converting arrays from different WIDTH/SCALE to perform arithmetic, comparison, etc... Seems that DuckDB puts some efforts on it, while arrow-rs don't consider it.
RisingLight now uses
rust_decimal
to represent decimal values. However, computations on this type are relatively slow due to its large precision (96 bits) and variable scale. For small decimals, e.g.DECIMAL(15,2)
in TPC-H tables, we could store and compute them asi64
. This would bring a huge performance boost (considering SIMD). A potential challenge of this change is that we can no longer tell the exact value from array without its datatype. 🤔Reference: https://duckdb.org/docs/sql/data_types/numeric#fixed-point-decimals
The text was updated successfully, but these errors were encountered: