Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

croys/RA_cpp

Open more actions menu

Repository files navigation

RA_cpp

ci codecov CodeQL

About RA_cpp

Relational Algebra implementation in C++20 as an exercise.

The overall design follows the relational algebra Tutorial D as described in Date[1]

The design is centered around providing dynamically typed core, with statically typed views onto this storage.

The basic types of Tutorial D are extended with parametric types - maybe/optional, either, vectors, maps, objects and ADTS (algebraic data types). Serialization will be provided via `protobuf`` or similar.

The goal is to provide an implementation that can be used by other languages, such as Python, but can be used in idiomatic C++ without dynamic types becoming intrusive.

Roadmap

  • Core types
    • basic types - done
    • parameterized types (std::optional, either, vector, map, functions)
    • ADTs
  • Core values
    • basic types - done
    • values of parameterized types
    • may want to support Shared to wrap values in shared_ptr<> or similar.
    • may use types to express storage/lifecycle choices (e.g. PooledString, GlobalStorage, ThreadStorage, etc..)
    • dynamicaly typed function application
  • Column storage
    • pmr support by default
    • basic types - done
    • objects
    • ADTs
  • Main operations
    • construction - done
    • dee, dum, product, filter, project, join
    • copy
  • Utility
    • table view
    • serialization

[1] "An Introduction to Database Systems", eighth edition by C.J. Date. Addison-Wesley.

More Details

About

Simple Relational Algebra implementation in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.