Skip to content

Arrow decimal type getting read as integer #2582

@droher

Description

@droher

Bug Report

Steps to Reproduce:

Run this code in jupyterlab (duckdb version was 0.10.1 but should work on any recent version)

import perspective
import duckdb
import pyarrow as pa
import io

table = duckdb.sql("SELECT 3.14::DECIMAL AS decimal_col, 3.14::FLOAT AS float_col").arrow()
buffer = io.BytesIO()

with pa.ipc.new_file(buffer, table.schema) as writer:
    writer.write_table(table)

bytes_object = buffer.getvalue()

perspective_table = perspective.Table(bytes_object)
perspective.PerspectiveWidget(perspective_table)

Expected Result:

Values should be the same
image

Actual Result:

Decimal value is deserialized as the internal Arrow representation of a decimal type (an integer)
image

Environment:

perspective-python 2.10.0 running on Python 3.11, jupyterlab 3.6.5, MacOS 14.4.1.

Additional Context:

I first noticed this issue in the JS package but it was easier for me to create a replicable example in Python.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugConcrete, reproducible bugs

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions