Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-4039

Move row-store missing-value support into the cell unpack code.

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 3.6.6, 4.0.0-rc0, WT3.1.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Storage Non-NYC 2018-04-23, Storage Non-NYC 2018-05-07

      michael.cahill comments with reference to the Pull Request in WT-4031:

      I'd be inclined to go the other way and always "unpack" a missing value cell as if it was a zero-length value. If __wt_row_leaf_value_cell returned an unpacked value, rather than a pointer to the raw cell, that would be straightforward (AFAICT, all callers currently call __wt_cell_unpack right after).

      Alternatively, we could keep around the bits corresponding to a zero-length value cell in a static array, and have __wt_row_leaf_value_cell return a pointer to that, but that seems messier to me.

      This change would clean up various callers like __cursor_row_slot_return and __value_return that currently have to check for NULL and hard-code knowledge that NULL means an empty value in multiple parts of the code.

            keith.bostic@mongodb.com Keith Bostic (Inactive)
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            0 Vote for this issue
            2 Start watching this issue