Skip to content

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

Closed

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

Activity

  1. evertlammerts commented on Nov 13, 2025

    @evertlammerts
    Member

    From a quick glance, this seems to be happening in the core binding code. There's a lot happening in the 1.5.0 dev branch right now, so it's not a big surprise that this doesn't work. I see that the repro does not error out on the 1.4.2 branch. I'll close this for now.

    In general I don't recommend testing with 1.5.0.devX nightlies unless there's a very specific feature that you know is being developed there for the next minor release (which is planned for Feb 2026).

    I see there's an attached Narwhals issue. Let me know if I'm missing important context here and I'll reopen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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