Skip to content

[C++][Python] Crashes and incorrect results when converting large integers to dates #27842

@asfimport

Description

@asfimport

Running this code snippet will cause a crash. This happens for a range of numbers around this one as well:

 

import pyarrow
date = pyarrow.array([-1448879500], pyarrow.date32())
print(date)

I don't know where this crash is coming from, so it might be in the C++ code rather than the Python bindings.

For other extreme numbers you get the wrong result. It looks like something is overflowing. Here is the input and result for a few different examples:

  • -2000000000 -> 31179-12-27

  • -1000000000 -> 16574-12-29

  • 2000000000 -> -27240-01-06

  • 1000000000 -> -12635-01-03

    I would prefer if these gave errors rather than silently overflowing.

     

Environment: OS: Windows 10 Pro (Version 20H2)
CPU: AMD Ryzen 5 1600 Six-Core Processor 3.20 GHz
Python: 3.8.8 AMD64
pyarrow is latest version installed with pip
Reporter: Tim Evans
Assignee: Antoine Pitrou / @pitrou

Related issues:

PRs and other links:

Note: This issue was originally created as ARROW-12011. Please see the migration documentation for further details.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions