-
Notifications
You must be signed in to change notification settings - Fork 407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Delete operation doesn't do type coercion #1921
Comments
It looks like we are building directly a physical plan here so that's why there is no type coercion. We probably need to refactor this. |
@ion-elgreco are there any updates on this? |
@ion-elgreco when will the predicate problem for delete/update operations be done ? I also met the problem. |
I dont have any plans to work on this. But feel free to pick it up |
Resolved by DataFusion 39 it seems apache/datafusion#10716 |
@peter-xu-zhou Did this error resolve for you? I also face the same issue in table.delete(predicate) |
Environment
Delta-rs version: 0.13.0
Binding: python bindings
Environment:
Bug
What happened:
It seems that when a string predicate is passed into
DeltaTable.delete
, when it gets parsed as a Datafusion Expression, it is not taking into account the schema of the table. For example, if there is a column with typepa.int32()
, and you try to use a predicate likeprice = 100
, it raises an errorValueError: Invalid comparison operation: Int32 <= Int64
, which I assume is coming from100
being parsed as a int64. This is supported by if I pass inprice = CAST(100 as INT)
instead, it works as expected.What you expected to happen:
The parser should be schema-aware when converting the string predicate to a Datafusion Expression.
How to reproduce it:
This is a minimal reproduction:
The text was updated successfully, but these errors were encountered: