You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue tracks Arrow Flight SQL-related problems in Apache Doris. If you encounter a problem, please open a new issue or leave a comment here.
Goal
Use this issue as the single index for user-visible bugs, protocol gaps, reliability work, and ecosystem improvements related to Doris Arrow Flight SQL and the ADBC or Flight SQL clients that use it.
ADBC is the client API and driver layer. Doris implements the Arrow Flight SQL server path that those clients call. This tracker covers both sides when a client report identifies a Doris interoperability or server behavior problem.
LargeUtf8 offset handling can crash remote Doris reads: the only proposed fix, PR [bug](arrow) fix arrow type change cause read data coredump #62681, was closed without merge on 2026-07-22, and no issue tracks the crash itself. Reproduce on a supported build and file a report, or land a replacement fix.
Reported from an end-to-end Python ADBC sweep against 4.1.3-rc02 (commit 31263df4dc), with MySQL/JDBC used as the control path. Each item lists a workaround, so they are usable as documented limitations until they are fixed.
Prepared-statement parameter binding:apache/arrow-java#1009 was closed upstream as a duplicate, with the gap attributed to the Doris server side. Create or link a Doris issue that defines the required Flight SQL parameter schema and execution behavior.
Initial database/schema in a Flight SQL JDBC URL:apache/arrow-java#829 remains open. Determine client-versus-server ownership and document the supported connection option.
ADBC ingestion: users requested adbc_ingest/DataFrame writes in [Feature] Doris support Arrow Flight SQL protocol #25514, but no dedicated Doris work item tracks scope, protocol methods, atomicity, or type coverage. Create one if ingestion remains on the roadmap.
Spark array work cleanup:apache/doris-spark-connector#345 remains open although the narrower opt-in implementation #362 merged. Mark the older PR superseded or document the remaining element-type work.
This issue tracks Arrow Flight SQL-related problems in Apache Doris. If you encounter a problem, please open a new issue or leave a comment here.
Goal
Use this issue as the single index for user-visible bugs, protocol gaps, reliability work, and ecosystem improvements related to Doris Arrow Flight SQL and the ADBC or Flight SQL clients that use it.
ADBC is the client API and driver layer. Doris implements the Arrow Flight SQL server path that those clients call. This tracker covers both sides when a client report identifies a Doris interoperability or server behavior problem.
Foundational context: #25514 and #19812.
Status convention
Open or needs follow-up
Reliability, lifecycle, and correctness
GetFlightInfoandDoGet:[Bug] Arrow Flight SQL + Iceberg: SplitSource released before DoGet (fetchSplitBatch crash) #62259 is closed and the root-cause fix [fix](arrow-flight) Keep coordinator alive across GetFlightInfo/DoGet for external table scan #64799 merged on master on 2026-07-18, so only release-branch coverage is missing: there is no branch-4.1 or branch-4.0 backport of [fix](arrow-flight) Keep coordinator alive across GetFlightInfo/DoGet for external table scan #64799. [fix](arrow-flight) Harden split source error path to avoid BE crash on external table scan #64797 and its 4.1 backport branch-4.1: [fix](arrow-flight) Harden split source error path to avoid BE crash on external table scan #64797 #64890 harden the error path so the BE does not crash; they explicitly do not keep theSplitSourcealive. Check this item once [fix](arrow-flight) Keep coordinator alive across GetFlightInfo/DoGet for external table scan #64799 reaches the supported branches.public_hostand an ILB proxy:[Bug] BE segfault in Arrow Flight SQL DoGet when using public_host (ILB proxy) #62217. Separate the endpoint-routing problem from the Arrow/gRPC status-conversion crash path and verify both.RST_STREAMfailures on 4.0.1:[Bug] Arrow Flight SQL Jdbc driver fails with RST_STREAM on Doris 4.0.1 #59304 was closed as stale without a linked fix. Reproduce against current supported versions or link the resolving change.SHOW PROCESSLISTafter an ADBC connection closes:[Bug] Arrow flight SQL process hanging after closing connection #36331 was closed as stale. [fix](connection)Fixes session-related data is not cleared when the connection is disconnected due to timeout. #55008/branch-3.1:[fix](connection)Fixes session-related data is not cleared when the connection is disconnected due to timeout. #55008 #55396 improve timeout cleanup and [fix](connection) Prevent timeout checker from stopping after an exception #65040 keeps the timeout checker alive (4.1 backport branch-4.1: [fix](connection) Prevent timeout checker from stopping after an exception #65040 #65063 merged, 4.0 backport branch-4.0: [fix](connection) Prevent timeout checker from stopping after an exception #65040 #65062 still open), but explicit client-close behavior still needs a current-version verification.Arrow type fidelity and client-visible behavior
Reported from an end-to-end Python ADBC sweep against 4.1.3-rc02 (commit
31263df4dc), with MySQL/JDBC used as the control path. Each item lists a workaround, so they are usable as documented limitations until they are fixed.HLLandQUANTILE_STATEreads fail withINTERNAL:[Bug] Arrow Flight SQL: reading raw HLL / QUANTILE_STATE columns fails with INTERNAL (IllegalStateException) #67364.StmtExecutor.sendFields()fails aPreconditions.checkStateinstead of returning a clean unsupported-type error. Same family as the rawBITMAPcase skipped in [test](regression) skip Arrow-incompatible complex outputs #65182.DATEvalues are off by one day:[Bug] Arrow Flight SQL: year-zero DATE values are encoded one day late #67366.0000-01-01arrives as0000-01-02over Arrow while JDBC is correct; looks like a proleptic-Gregorian versus Julian mismatch in thedate32day computation.VARIANTread on a pre-existing connection loses empty objects:[Bug] Arrow Flight SQL: first VARIANT read on a pre-existing connection returns an empty string instead of {} #67367. A connection opened before the table was created returns""instead of{}on the first read only; the second read on the same connection is correct.fetch arrow flight schema failed, no FlightSqlEndpointsLocations; the same query succeeds withenable_short_circuit_query=false, so the short-circuit path appears not to register a Flight endpoint at all.CALLerrors but executes its DML side effect four times:[Bug] Arrow Flight SQL: PL/SQL CALL returns INTERNAL and executes its DML side effect four times #67369. ReturnsgetMysqlChannel not in mysql connectionand still inserts four rows for a single call. Data-correctness impact; clients must not auto-retry on this error.TIMESTAMPTZuses the non-portable Arrow timezoneZ:[Bug] Arrow Flight SQL: UTC TIMESTAMPTZ is tagged with the non-portable Arrow timezone "Z" #67370. PyArrow resolves the timezone string throughzoneinfoand raisesZoneInfoNotFoundError; the epoch values themselves are correct.BINARYis declared as Arrowstringwith a non-UTF-8 payload:[Bug] Arrow Flight SQL: Iceberg BINARY column is declared as Arrow string but carries invalid UTF-8 #67371. Withenable.mapping.varbinary=falsethe declared type and the payload encoding disagree, so PyArrow fails the whole batch onUnicodeDecodeError.MAPwith aNULLkey cannot be returned as an ArrowMAP:[Bug] Arrow Flight SQL: MAP with a NULL key cannot be returned as an Arrow MAP #67372.DoGetfails withCan not write null value of map key to arrow;map_entries()round-trips the same value, which suggestslist<struct<key, value>>as one possible representation. Complements the skip added in [test](regression) skip Arrow-incompatible complex outputs #65182.Authentication, endpoint advertisement, and session semantics
user@0.0.0.0. The fix [fix](auth)Fix arrow flight client ip auth #63506 and both backports branch-4.0: [fix](auth)Fix arrow flight client ip auth #63506 #63591/branch-4.1: [fix](auth)Fix arrow flight client ip auth #63506 #63592 are merged, but all three reports are still open. Verify the merged fix against the reported read-only user case, then close or deduplicate them.public_hostand the Flight proxy port.127.0.0.1:8050to a remote JDBC client:[Bug] Connection refused: no further information: /127.0.0.1:8050 JDK1.8 connect error #59490 was closed as stale. Check whether it is the same endpoint-advertisement gap as [Bug] When arrow-flight is used and the FE private name name is not resolvable, the client cannot access the FE nodes #62538.Protocol coverage and architecture
adbc_ingest/DataFrame writes in [Feature] Doris support Arrow Flight SQL protocol #25514, but no dedicated Doris work item tracks scope, protocol methods, atomicity, or type coverage. Create one if ingestion remains on the roadmap.enable_arrow_flightswitch so unused deployments do not allocate the pool.Tests and ecosystem
doris.read.fieldsis ignored in Arrow read mode.Completed or merged during the review window
Core feature and query path
&no longer produce malformed tickets: fix flight sql when contains & #58830 with 4.0 backport branch-4.0: fix flight sql when contains & #58830 #58884.CommandGetTablesschema and the TIMESTAMPTZ Arrow reader corrected: [fix](arrow) correct the Flight SQL GetTables schema and the TIMESTAMPTZ arrow reader #66344 with 4.1 backport branch-4.1: [fix](arrow) correct the Flight SQL GetTables schema and the TIMESTAMPTZ arrow reader #66344 #66355. The FEGetTablesmapping had drifted from what BE actually writes.adbccatalog type so rows arrive as Arrow record batches without per-value JNI conversion and a scan is split across backends. Master only; no backport.Authentication, diagnostics, and crash hardening
fe.login cleartext: [fix](arrow-flight) Stop writing bearer tokens to fe.log #66572 with 4.1 backport branch-4.1: [fix](arrow-flight) Stop writing bearer tokens to fe.log #67146. A token is a complete credential forarrow_flight_token_alive_time_second(86400s by default), so any deployment shipping FE logs off-box wants this; there is no 4.0 backport yet.VectorSchemaRoots increatePreparedStatementand adds a repeat-prepare regression test asserting the Flight SQL channel allocator returns to zero. The earlier attempt [fix](arrowflight) some resource unrelease bug #52245 was closed without merge. Backports have since merged: 4.1 branch-4.1: [fix](arrow-flight-sql) Close temporary VectorSchemaRoot in createPreparedStatement to fix FE direct memory leak #65311 #65751 and 4.0 branch-4.0: [fix](arrow-flight-sql) Close temporary VectorSchemaRoot in createPreparedStatement to fix FE direct memory leak #65311 #66431.Regression framework and ecosystem
source.use-flight-sqldefault for current/4.x docs: apache/doris-website#3725.Closed without merge or superseded attempts
Keep these for history so the same investigation is not repeated:
Maintenance rules