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
When performing a write into a delta table from a different delta table using the WriteBuilder::with_input_execution_plan, the write fails since the builder generates a new blank session/task context to go along with the execution plan.
This in turn leads to the loss of the object store registered for the scan previously, and consequently a failed write (No suitable object store found for delta-rs://...).
What you expected to happen:
A proper task context should be supplied when executing the input plan.
gruuya
changed the title
Writing from a Delta table scan using WriteTable fails due to missing object store
Writing from a Delta table scan using WriteBuilder fails due to missing object store
Feb 28, 2023
# Description
The session state can keep some context pertinent to the [input
plan](https://github.com/delta-io/delta-rs/blob/main/rust/src/operations/write.rs#L153-L157),
so passing it allows for building useful `TaskContext`s for executing
the plan.
This is especially the case when the input plan references another Delta
table, which has previously registered it's object store (that needs to
be accessible during the execution of the physical plan).
# Related Issue(s)
Closes#1186
Curiously, if in the test I use `delta-0.8.0-partitioned` the final
`SELECT` query fails with:
```
External(Execution("Failed to map column projection for field year. Incompatible data types Dictionary(UInt16, Utf8) and Utf8"))
```
I'm not sure yet why this happens, but I think it has nothing to do with
this change.
# Documentation
# Description
The session state can keep some context pertinent to the [input
plan](https://github.com/delta-io/delta-rs/blob/main/rust/src/operations/write.rs#L153-L157),
so passing it allows for building useful `TaskContext`s for executing
the plan.
This is especially the case when the input plan references another Delta
table, which has previously registered it's object store (that needs to
be accessible during the execution of the physical plan).
# Related Issue(s)
Closesdelta-io#1186
Curiously, if in the test I use `delta-0.8.0-partitioned` the final
`SELECT` query fails with:
```
External(Execution("Failed to map column projection for field year. Incompatible data types Dictionary(UInt16, Utf8) and Utf8"))
```
I'm not sure yet why this happens, but I think it has nothing to do with
this change.
# Documentation
Environment
Delta-rs version: 0.7.0 (latest main)
Binding: Rust
Environment:
Bug
What happened:
When performing a write into a delta table from a different delta table using the
WriteBuilder::with_input_execution_plan
, the write fails since the builder generates a new blank session/task context to go along with the execution plan.This in turn leads to the loss of the object store registered for the scan previously, and consequently a failed write (
No suitable object store found for delta-rs://...
).What you expected to happen:
A proper task context should be supplied when executing the input plan.
How to reproduce it:
See the test here for an example: #1187
More details:
The text was updated successfully, but these errors were encountered: