Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
All array elements flattened into 1 dimension, encoded in row-major order.
A list of metadata for each dimension in the array. Each dimension has a lower bound (the index at which the dimension begins) and the length of the dimension (the number of elements in that dimension). For a 3x4 matrix, for example, you'd have two entries in the dims array, the first with length 3 and the second with length 4. ATM the lower bound for each dimension is always 1, but Postgres technically lets you choose any lower bound you like for each dimension.
Used in:
Used in:
, ,NB: Proto oneof ids `1..=15` get encoded in 1 byte and so we should reserve them for the datum types we expect to be most popular. Null, False, and True are all likely to be frequent, but the encoded length is exactly the same if they're here or in ProtoDatumOther. In general, anything that can be encoded purely as a proto enum variant (i.e. doesn't have a payload) is better off that way. If we run out of 1-byte encodings of ProtoDatumOther, we can always add ProtoDatumOther2.
Don't use 9-15 without truly understanding the NB above.
These get encoded with 2 bytes for the oneof id. It's a pretty easy and low-debt migration to "bless" one of these into having a 1-byte id (fill in the new field on write, but check if either field is set on read). However, once a 1-byte id is used, it's gone forever, so we're conservative in handing them out. Of these, I'd guess Timestamp and UUID are probably the first ones we'd bless followed by Date and Time.
Used in:
It's generally good practice to make id 0 (the default if the field is unset) in proto enums be an Unknown sentinel. This allows for distinguishing between unset and any of the enum variants. This enum is initially used only in a oneof, which means we can distinguish unset without this sentinel. But stick one in here anyway, in case this enum gets used somewhere else in the future.
Used in:
Used in:
See [dec::to_packed_bcd] and http://speleotrove.com/decimal/dnpack.html for more information on this format. NB: Special values like NaN, PosInf, and NegInf are represented as variants of ProtoDatumOther.
Used in:
A a sequence of Binary Coded Decimal digits, most significant first (at the lowest offset into the byte array) and one per 4 bits (that is, each digit taking a value of 0–9, and two digits per byte), with optional leading zero digits.
The number of digits that follow the decimal point.
Used in:
Used in:
Used in:
, , , , , , , , ,