JSONB values supports partial decode for comparison,
if the values are found to be unequal, the result will be returned immediately.
In first level header, values compare as the following order:
Scalar Null > Array > Object > Other Scalars(String > Number > Boolean).
The binary JSONB contains three parts, Header, JEntry and RawData.
This structure can be nested. Each group of structures starts with a Header.
The upper-level Value will store the Header length or offset of
the lower-level Value.
Header stores the type of the Value, include Array, Object and Scalar,
Scalar has only one Value, and a corresponding JEntry.
Array and Object are nested type, they have multiple lower-level Values.
So the Header also stores the number of lower-level Values.
JEntry stores the types of Scalar Value, including Null, True, False,
Number, String and Container. They have three different decode methods.