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?
Did you include all relevant configuration to reproduce the issue?
What happens?
When I run the code below, I get
To Reproduce
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?
Did you include all relevant configuration to reproduce the issue?