-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Lazy vector has smaller loaded size than expected #2237
Comments
Can you reproduce it using |
Hi Yuhta, I raised a PR on this issue and it can solve the failure in our test. I would be nice if you could help take a review. Also tried to reproduce this issue locally with |
When you create |
This is just for illustration of the issue we found. Do you suggest the loaded size should be the same as expected? And we need to find out why they are different and solve the bug to make them consistent. |
Hi @Yuhta, I noticed this PR for fixing the missing rows in lazy vector. Tried it locally, and found our issue could be solved. What we are testing is also conditional expressions as below, so the case can be similar.
Closing this issue. Thanks for your time. |
Yes that is the expected behavior. |
Hi,
We are debugging one issue on lazy vector inside a dictionary vector, which causes invalid access to the loadedVector. It would be great if you could provide us with some advice.
We printed some logs and found below clues.
In FilterProject, rows has the same size as input (assume it is size_a), and is marked as all selected. During the call of
project(*rows, &evalCtx)
, error occurs inisNullAt
function. In this case, the lazy vector is in a dictionary vector, and the size of dictionaryValues_(the lazy vector) is also size_a (isNullAt). But the actual loadedVector in this lazy vector has smaller size than size_a, so when the index becomes larger than the loaded vector size, invalid access occurs (LazyVector.h).In this case, looks like the actual loaded vector in the lazy vector is smaller than the expected size. Should they be the same, or the loaded vector can to be smaller than expected? If so, should the selective vector in
project(*rows, &evalCtx)
be changed accordingly?In below test, I manually simulated above case in which lazy vector has smaller real size than the size in constructor. It fails during
copy->copy
process.Thanks!
The text was updated successfully, but these errors were encountered: