alberttwong opened a new issue, #76273:
URL: https://github.com/apache/airflow/issues/76273

   ### Under which category would you file this issue?
   
   Providers
   
   ### Apache Airflow version
   
   3.3.2; current main source also inspected
   
   ### What happened and how to reproduce it?
   
   The generic Arrow-provider AdbcHook.get_records() fails with the Redis ADBC 
driver because it attempts to disable autocommit. Redis ADBC explicitly 
supports autocommit only. Direct native ADBC reads and the external 
RedisAdbcHook work.
   
   Tested versions: Airflow 3.3.2, apache-airflow-providers-apache-arrow 0.1.1, 
common-sql 2.1.1, ADBC manager 1.12.0. Recorded live integration used macOS 
arm64 and Redis Software 8.6.2 with Search and active verified 4x QPF.
   
   Configure an adbc connection with driver=adbc_driver_redis and db_kwargs.uri 
pointing to a disposable Redis endpoint. Resolve the native library using an 
ADBC manifest as shown in the linked regression, to keep platform library 
discovery separate from this failure.
   
   Then:
   
   ```python
   from airflow.providers.apache.arrow.hooks.adbc import AdbcHook, 
fetch_all_handler
   hook = AdbcHook(adbc_conn_id="redis_adbc")
   
   # Works in the recorded integration; initial connection warns that
   # autocommit cannot be disabled.
   assert hook.run("SELECT 42 AS answer", autocommit=True,
                   handler=fetch_all_handler) == [(42,)]
   
   # Fails: NotSupportedError: transactions are not supported (autocommit only)
   hook.get_records("SELECT 42 AS answer")
   ```
   
   The existing integration regression also checks successful CREATE, batched 
INSERT and bound reads with autocommit=True, and explicitly asserts the default 
get_records failure:
   
https://github.com/redis/redis-adbc-driver/blob/main/python/tests/test_airflow.py
   
   Live validation record (October 29, 2026):
   
https://github.com/redis/redis-adbc-driver/blob/main/docs/sdlc/changes/airflow-smoke/validation.md
   
   Source inspection on November 1, 2026 shows the same relevant behavior on 
Airflow main:
   
https://github.com/apache/airflow/blob/main/providers/apache/arrow/src/airflow/providers/apache/arrow/hooks/adbc.py
   
   - get_conn() hardcodes autocommit=False.
   - get_records() calls run() without forwarding an autocommit choice, so 
run's False default is used.
   - set_autocommit() explicitly applies False at the native ADBC layer, where 
an autocommit-only driver rejects it.
   
   A fresh mock-based check in the installed versions above confirmed the first 
two calls on November 1. No fresh live Redis integration or latest-main runtime 
test is claimed by this report.
   
   ### What you think should happen instead?
   
   Provide an explicit, supported way to use autocommit-only ADBC drivers 
through connection creation and read helpers. Preserve current defaults for 
transactional drivers and continue rejecting explicit unsupported transaction 
requests. A configurable initial autocommit setting alone is insufficient if 
get_records subsequently resets it to False. Regression coverage should 
exercise both connection creation and get_records, plus a transactional driver 
control.
   
   ### Operating System
   
   macOS arm64
   
   ### Deployment
   
   None
   
   ### Apache Airflow Provider(s)
   
   apache-arrow
   
   ### Versions of Apache Airflow Providers
   
   apache-airflow-providers-apache-arrow==0.1.1
   apache-airflow-providers-common-sql==2.1.1
   
   ### Official Helm Chart version
   
   Not Applicable
   
   ### Kubernetes Version
   
   _No response_
   
   ### Helm Chart configuration
   
   _No response_
   
   ### Docker Image customizations
   
   _No response_
   
   ### Anything else?
   
   Local integration tracker: 
https://github.com/redis/redis-adbc-driver/issues/272
   
   Existing documentation proposal https://github.com/apache/airflow/pull/75988 
explains the external RedisAdbcHook workaround; it does not fix the generic 
provider behavior. This report concerns that separate runtime compatibility 
gap. SQLExecuteQueryOperator hook selection/provider registration is separate 
work.
   
   Prepared with AI assistance (OpenAI Codex).
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

  • [I] Arrow provider: AdbcHook g... alberttwong (via GitHub) via commits

Reply via email to