Proto commits in spiraldb/vortex

These 28 commits are when the Protocol Buffers files have changed:

Commit:94444d3
Author:Robert Kruszewski
Committer:GitHub

Use protobuf to serialize scalars (#3141)

The documentation is generated from this commit.

Commit:ce6727e
Author:Robert Kruszewski
Committer:Robert Kruszewski

fixes

The documentation is generated from this commit.

Commit:cb2004d
Author:Robert Kruszewski
Committer:Robert Kruszewski

Use protobuf to serialize scalars

Commit:457c842
Author:Joe Isaacs
Committer:GitHub

Add decimal with storage size i8..i64 to vortex (#3161)

Commit:27596aa
Author:Joe Isaacs

add decimal i8..i64

Commit:74dca0b
Author:Robert Kruszewski
Committer:Robert Kruszewski

Use protobuf to serialize scalars

Commit:69f99c4
Author:Andrew Duffy
Committer:GitHub

feat: Decimal types (#3058) Co-authored-by: Robert Kruszewski <github@robertk.io>

Commit:579a91c
Author:Andrew Duffy

use uint32 for decimal precision in proto

Commit:ceb9366
Author:Andrew Duffy
Committer:Andrew Duffy

closer

Commit:ad7923e
Author:Andrew Duffy
Committer:Andrew Duffy

feat: Decimal types

Commit:857c841
Author:Andrew Duffy

closer

Commit:a677a9e
Author:Andrew Duffy

feat: Decimal types

Commit:67984cc
Author:Joe Isaacs
Committer:GitHub

Add all vortex expressions to proto serde (#2907) Add serde + proto expression for like and between.

Commit:9fbfda9
Author:Andrew Duffy
Committer:GitHub

feat(java): Expression serialization protobufs (#2744)

Commit:c222a4a
Author:Joe Isaacs
Committer:GitHub

Use proto c++ (#2734) Add marshalling from C++ into Expr proto --------- Co-authored-by: Alexander Droste <alexander.droste@protonmail.com>

Commit:05eb71d
Author:Joe Isaacs
Committer:GitHub

Vortex expr protobuf (#2725) Added a first impl sketch for voretx-expr protobufs. I think in the future we will replace the `Kind kind = 3;` with a more extendable system, maybe proto any or json?

Commit:b69d89b
Author:Nicholas Gates
Committer:GitHub

Improve expression performance (#2273) * Only simplify once in the scanner * Manually implement return_dtype instead of expensive Canonical::Empty (FLUP: we should add `return_nullability()` expr too) * Remove `Field::Index` weirdness. * More consistent APIs for Struct{Scalar,Array,DType}

Commit:126c773
Author:Andrew Duffy
Committer:GitHub

chore: remove unused Decimal dtype in proto/fbs (#2156)

Commit:2d439a2
Author:Andrew Duffy
Committer:GitHub

feat: specify the storage_dtype in ExtDType (#1007) Adds `storage_dtype` to `ExtDType`. This PR adds `storage_dtype` to `ExtDType`. This is desirable for a few reasons * Makes it possible to canonicalize an empty chunked ExtensionArray * Makes it possible to determine the storage DType for a ConstantArray without examining its value * Makes it possible for Vortex to reason about externally authored extension types. This is still not fully complete, as an ideal experience would allow extension authors to override IntoCanonical, IntoArrow, Display, etc. To avoid duplicating the nullability, we remove top-level `nullability` from the `DType::Extension` variant, instead nullability is accessed through the inner ExtDType. --------- Co-authored-by: Will Manning <will@willmanning.io>

Commit:47e8c56
Author:Robert Kruszewski
Committer:GitHub

Push filter schema manipulation into layout reader and reuse ipc message writer in file writer (#651) This is done in preparation for pruning as we need to be able to mutate the filters and read columns based on filters

Commit:79d4df2
Author:Andrew Duffy
Committer:GitHub

Lots of things to try and get publishing working (#557)

Commit:192c0eb
Author:Nicholas Gates
Committer:GitHub

Clean up fields / field paths (#353)

Commit:3f8282b
Author:Nicholas Gates
Committer:GitHub

Expression proto serde (#351)

Commit:0e83666
Author:Marko Bakovic
Committer:GitHub

Implement StructValue proto serde without google.protobuf.Value (#343) Move away from google.protobuf.Value. It makes things unnecessary complicated - number is always f64, look at the previous logic for handling struct.... It seems like the Value models JSON value which is not what we need. I considered using google.protobuf wrappers, e.g. BytesValue, Int32Value, instead of primitives but those are also for usage with JSON or with proto2 (before optional was introduced to enable optional primitive fields), so decided to use proto primitives. Adds to proto and try from proto.

Commit:f48d70b
Author:Marko Bakovic
Committer:GitHub

define ScalarValue in VortexScalar protobuf (#323) more aligned with the flatbuffers definition

Commit:01499bd
Author:Nicholas Gates
Committer:GitHub

Proto Refactor (#325)

Commit:6fb0e8a
Author:Nicholas Gates
Committer:GitHub

Add ScalarView (#301) Fixes #290 Makes scalar generic over heap allocated data or serialised scalar data. Serialized scalars will no longer include DType information to avoid duplication meaning they require a DType to deserialise.

Commit:f9dd4f4
Author:Nicholas Gates
Committer:GitHub

DType Serialization (#298) * Clean up DType serde * Create build-vortex package to unify flatbuffer/protobuffer code generation. * Add protobuf DType definitions. FLUP questions: * Should we remove nullable from DType and define a separate `FieldType { dtype: DType, nullable: bool }`? Recursive types such as Struct and List would then use FieldType. It does introduce an interesting quirk of a nullable null... But maybe that's less annoying that duplicating nullability everywhere? * If we don't want a separate FieldType, we could still pull `nullable` up in both flatbuffer and protobuf definitions. Start of #277