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
C++ exception with description "Assertion failed in file "/Users/guodong/Developer/kuzu/src/storage/compression/compression.cpp" on line 408: canUpdateInPlace(value, header)" thrown in the test body.
It's a regression from #2654. The issue is that canUpdateInPlace is skipping nulls, but the null values are still being written as 0, which isn't a value that can be written in-place to an integer bitpacked chunk with a positive offset.
It's being triggered here in StringColumn::write where it's writing a null string as part of the gaps in the CSR data I think, though I'm not sure why the index column in this case started with an offset of 56.
However this shouldn't have any logical effect. It just results in unusual data being stored in null values (specifically, -offset, underflowed and truncated to the bit width used), and since we never attempt to re-compress chunks to make them smaller if the values change, it shouldn't even effect the compression (on the other hand some compression algorithms like delta compression would benefit from knowing where the nulls are so that they can use the value which would be the smallest in that context).
I suppose even passing the null data so that the debug checks can skip validating null values could be helpful though to avoid the error messages.
The attached test file triggers assertion
insert_rel_str_1000_1000_1.txt
The text was updated successfully, but these errors were encountered: