hyrise / hyrise-v1

HYRISE In-Memory Hybrid Storage Engine (archived, now developed in hyrise/hyrise repo)
https://github.com/hyrise/hyrise
MIT License
89 stars 44 forks source link

Bug: When executing the EqualsExpression after an update it returns wrong results #395

Closed torpedro closed 7 years ago

torpedro commented 9 years ago

Added a test for this. This test fails in the current state. I assume for this test to pass the EqualsExpression needs to be fixed.

Bensk1 commented 9 years ago

The error is caused by the way this expression system works. The EqualsExpression checks equality for valueIds where the GenericExpressionValue checks the actual value. The update (line 46 to 50) inserts data into the delta, not the main storage. But the EqualsExpression uses only on the main dictionary to find the valueId and the GenericExpressionValue looks for all plain values in main and delta. The system is not designed to work properly with values in the delta storage. But there is another expression system coming: https://github.com/hyrise/hyrise/pull/320

To fix this, you could just include a merge in the test case: http://nopaste.linux-dev.org/?374857