Skip to content

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

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

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