Release 1.4.1 broke Ibis

What happens?

Ibis relies on duckdb.functional, which was exposed in duckdb/__init__.py.
It seems this was removed in 1.4.1 and thus makes Ibis unable to work with Duckdb

    _UDF_INPUT_TYPE_MAPPING = {
>       InputType.PYARROW: duckdb.functional.ARROW,
                           ^^^^^^^^^^^^^^^^^
        InputType.PYTHON: duckdb.functional.NATIVE,
    }
E   AttributeError: module 'duckdb' has no attribute 'functional'

.venv/lib64/python3.13/site-packages/ibis/backends/duckdb/__init__.py:52: AttributeError

To Reproduce

$ python -c 'import ibis.backends.duckdb'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import ibis.backends.duckdb
  File "/home/amol/src/orbital/.venv/lib64/python3.13/site-packages/ibis/backends/duckdb/__init__.py", line 52, in <module>
    InputType.PYARROW: duckdb.functional.ARROW,
                       ^^^^^^^^^^^^^^^^^
AttributeError: module 'duckdb' has no attribute 'functional'

OS:

Linux Ubuntu x86_64

DuckDB Package Version:

1.4.1

Python Version:

3.13.7

Full Name:

Alessandro Molina

Affiliation:

POSIT

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

I have tested with a stable release

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