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
It is because we use a MaterializeBuffer to compact the input chunk and because the upsert stream does not obey the associative property, the compact operation with the retractable stream rules is illegal. e.g. INSERT 1, DELETE 1 can be compacted into No-op. but UPSERT 1, DELETE 1 can not because we can not know if the record that should be deleted is inserted by the upsert operation.
I think we should remove the MaterializeBuffer structure but just leave a HashSet to help to get all the keys in the streamChunk and fetch them into the cache. And then we need to do all real operations in the state cache.
Describe the bug
Materialize executor unexpectedly compact the UPDATE and DELETE operations of same pk from CDC
Error message/log
The chunk trace of the upstream UPDATE and DELETE operations.
To Reproduce
The expected result is the row should be deleted from RW, but it still exist.
Expected behavior
The expected result is the row should be deleted from RW, but it still exist.
How did you deploy RisingWave?
No response
The version of RisingWave
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: