Arseniy Zhizhelev
Arseniy Zhizhelev
Relation is a class that represents a collection of elements with a schema. All operations over collection should lead to properly typed results.
Reproduce all features from legacy branches and then remove legacy code from the master branch.
Like in doobie, split inner case class field into a few fields.
We should be able to - define columns with collection types; - use Relation to perform some relational operations with collections (joins).
We have a few options of how to store record values: - tuples; - `JsonObject`; - `Map[String, Any]`; - ... In order to generalize storage we might use a type...
We want to have a module that will support a typical event sourcing mechanism. Based on some arbitrary schema, make it optional (`Tuple.Map[Schema, Option]`) and prepend `timestamptz` and `eventKind` columns....
Tuples that we work with might have values wrapped in `F[_]`. For instance, every element is `Option[_]`. We might want to have `GetterF`, `ProjectorF`, ...
Json might not have some field values. Hence we should represent this as `Option`.
Every field is option. If option value id defined, then it is used to update value.