Skip to content

Internal error when using duckdb.table on pre-release #153

@MarcoGorelli

Description

@MarcoGorelli

What happens?

When I run the code below, I get

Traceback (most recent call last):
  File "/home/marcogorelli/polars-api-compat-dev/f.py", line 14, in <module>
    print(rel.to_arrow_table())
          ~~~~~~~~~~~~~~~~~~^^
_duckdb.InternalException: INTERNAL Error: Failed to cast logical operator to type - logical operator type mismatch

Stack Trace:

/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb9Exception6ToJSONENS_13ExceptionTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x5b) [0x7b3192bc773b]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb9ExceptionC2ENS_13ExceptionTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x14) [0x7b3192bc77f4]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb17InternalExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x11) [0x7b3192bca941]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb15LogicalOperator4CastINS_10LogicalGetEEERT_v+0x3c) [0x7b31931af56c]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb21TopNWindowElimination25CanUseLateMaterializationERKNS_13LogicalWindowERNS_6vectorINS_10unique_ptrINS_10ExpressionESt14default_deleteIS6_ELb1EEELb1ESaIS9_EEERNS4_ImLb1ESaImEEERNS4_ISt17reference_wrapperINS_15LogicalOperatorEELb1ESaISI_EEE+0x380) [0x7b3193199df0]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb21TopNWindowElimination29TryPrepareLateMaterializationERKNS_13LogicalWindowERNS_6vectorINS_10unique_ptrINS_10ExpressionESt14default_deleteIS6_ELb1EEELb1ESaIS9_EEE+0x68) [0x7b319319a7e8]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb21TopNWindowElimination16OptimizeInternalENS_10unique_ptrINS_15LogicalOperatorESt14default_deleteIS2_ELb1EEERNS_21ColumnBindingReplacerE+0x8f7) [0x7b31931a4617]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb21TopNWindowElimination16OptimizeInternalENS_10unique_ptrINS_15LogicalOperatorESt14default_deleteIS2_ELb1EEERNS_21ColumnBindingReplacerE+0x863) [0x7b31931a4583]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb21TopNWindowElimination16OptimizeInternalENS_10unique_ptrINS_15LogicalOperatorESt14default_deleteIS2_ELb1EEERNS_21ColumnBindingReplacerE+0x863) [0x7b31931a4583]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb21TopNWindowElimination8OptimizeENS_10unique_ptrINS_15LogicalOperatorESt14default_deleteIS2_ELb1EEE+0xdb) [0x7b31931a49cb]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(+0x17a4b27) [0x7b31931a4b27]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb9Optimizer12RunOptimizerENS_13OptimizerTypeERKSt8functionIFvvEE+0x60) [0x7b3193176550]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb9Optimizer20RunBuiltInOptimizersEv+0x88a) [0x7b319317769a]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb9Optimizer8OptimizeENS_10unique_ptrINS_15LogicalOperatorESt14default_deleteIS2_ELb1EEE+0x100) [0x7b3193177a90]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb13ClientContext31CreatePreparedStatementInternalERNS_17ClientContextLockERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_10unique_ptrINS_12SQLStatementESt14default_deleteISC_ELb1EEENS_12optional_ptrISt13unordered_mapIS8_NS_18BoundParameterDataENS_33CaseInsensitiveStringHashFunctionENS_29CaseInsensitiveStringEqualityESaISt4pairIS9_SI_EEELb1EEE+0xb75) [0x7b3192f59c35]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb13ClientContext23CreatePreparedStatementERNS_17ClientContextLockERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_10unique_ptrINS_12SQLStatementESt14default_deleteISC_ELb1EEENS_12optional_ptrISt13unordered_mapIS8_NS_18BoundParameterDataENS_33CaseInsensitiveStringHashFunctionENS_29CaseInsensitiveStringEqualityESaISt4pairIS9_SI_EEELb1EEENS_21PreparedStatementModeE+0x347) [0x7b3192f5a0e7]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb13ClientContext24PendingStatementInternalERNS_17ClientContextLockERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_10unique_ptrINS_12SQLStatementESt14default_deleteISC_ELb1EEERKNS_22PendingQueryParametersE+0xa4) [0x7b3192f5b814]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb13ClientContext35PendingStatementOrPreparedStatementERNS_17ClientContextLockERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_10unique_ptrINS_12SQLStatementESt14default_deleteISC_ELb1EEERNS_10shared_ptrINS_21PreparedStatementDataELb1EEERKNS_22PendingQueryParametersE+0xa0) [0x7b3192f62b20]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb13ClientContext43PendingStatementOrPreparedStatementInternalERNS_17ClientContextLockERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_10unique_ptrINS_12SQLStatementESt14default_deleteISC_ELb1EEERNS_10shared_ptrINS_21PreparedStatementDataELb1EEERKNS_22PendingQueryParametersE+0x85) [0x7b3192f62d45]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb13ClientContext20PendingQueryInternalERNS_17ClientContextLockENS_10unique_ptrINS_12SQLStatementESt14default_deleteIS4_ELb1EEERKNS_22PendingQueryParametersEb+0xa9) [0x7b3192f64359]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb13ClientContext20PendingQueryInternalERNS_17ClientContextLockERKNS_10shared_ptrINS_8RelationELb1EEEb+0x184) [0x7b3192f69fe4]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb13ClientContext12PendingQueryERKNS_10shared_ptrINS_8RelationELb1EEEb+0x44) [0x7b3192f6a1d4]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(+0xc6b682) [0x7b319266b682]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb16DuckDBPyRelation15ExecuteInternalEb+0x14) [0x7b319266b724]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb16DuckDBPyRelation14ExecuteOrThrowEb+0x43) [0x7b319266b933]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb16DuckDBPyRelation20ToArrowTableInternalEmb+0x1a8) [0x7b319266c438]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(_ZN6duckdb16DuckDBPyRelation12ToArrowTableEm+0xb) [0x7b319266c4fb]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(+0xd2bd74) [0x7b319272bd74]
/home/marcogorelli/polars-api-compat-dev/.314venv/lib/python3.14/site-packages/_duckdb.cpython-314-x86_64-linux-gnu.so(+0xbc2c80) [0x7b31925c2c80]
python() [0x1a31d7c]
python() [0x1a73c27]
python() [0x1a83961]
python(PyEval_EvalCode+0xa7) [0x1a8366f]
python() [0x1a7cf62]
python() [0x1c24907]
python() [0x1c23d1f]
python() [0x1c23550]
python() [0x1c234f6]
python() [0x1c233f4]
python(Py_RunMain+0x466) [0x1bc1ab6]
python() [0x1bc1643]
python() [0x1bc142d]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7b3195829d90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7b3195829e40]
python(_start+0x29) [0x1bea9a9]

This error signals an assertion failure within DuckDB. This usually occurs due to unexpected conditions or errors in the program's logic.
For more information, see https://duckdb.org/docs/stable/dev/internal_errors

To Reproduce

import duckdb
import pyarrow as pa

t = pa.table({"a": ["a", "f", "a", "d", "b", "c"], "b c": [None, None, 2, 3, 6, 1]})
_rel = duckdb.table('t')
rel = duckdb.sql("""
    SELECT *
    FROM _rel
    QUALIFY (row_number() OVER (ORDER BY "b c" DESC NULLS LAST) <= 4)
"""
)
print(rel.to_arrow_table())

OS:

x86_64

DuckDB Package Version:

1.5.0.dev90

Python Version:

3.14.0 (but, reproduced on 3.12.11 as well)

Full Name:

Marco Edward Gorelli

Affiliation:

Quansight Labs

What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.

I have tested with a nightly build

Did you include all relevant data sets for reproducing the issue?

Yes

Did you include all code required to reproduce the issue?

  • Yes, I have

Did you include all relevant configuration to reproduce the issue?

  • Yes, I have

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions