delete_commit_file.md

November 28, 2023 · View on GitHub

A delete commit file has name <timestamped_name>.del and is located here:

my_array                              # array folder
   |_ ....
   |_ __commits                       # array commits folder
         |_ <timestamped_name>.del    # delete commit file
         |_ ...

There may be multiple such files in the array commits folder. Each delete commit file contains a tile with a serialized delete condition, which is a tree of nodes. Each node can be a value node or expression node. Expression nodes have the following on disk format:

FieldTypeDescription
Node typeuint8_t0 for expression node
Combination opuint8_tAND(0), OR(1), NOT(2)
Num childrenuint64_tNumber of child nodes
Children 1NODEchildren 1
Children NNODEChildren N

Value nodes have the following on disk format:

FieldTypeDescription
Node typeuint8_t1 for value node
Opuint8_tLT(0), LE(1), GT(2), GE(3), EQ(4), NE(5)
Field name sizeuint32_tSize of the field name
Field name valueuint8_t[]Field name value
Value sizeuint64_tValue size
Value contentuint8_t[]Value