Core concepts#
This section is dedicated to the core modules of PostBOUND and how they interact with each other. If you are a new user, it is highly recommended to read through this section to get a better understanding of the framework. At the same time, the 10 Minutes to PostBOUND tutorial provides a more fast-paced introduction.
Contents#
Package structure#
Package |
Description |
|---|---|
root |
The main entry point into PostBOUND as well as fundamental data structures like |
Home of the query abstraction used throughout PostBOUND. See Query Abstraction for details. |
|
Contains our SQL parser |
|
Collects different utilities to modify SQL queries |
|
Provides a simple relational algebra implementation to represent SQL queries. |
|
Contains all parts of PostBOUND that concern database interaction. See Database Abstraction for details. |
|
Implements the database backend for PostgreSQL. |
|
Implements the database backend for DuckDB. |
|
Provides a simple database backend implementation for MySQL. MySQL is currently provided on a best-effort basis and not an official backend. Not all features are implemented. |
|
Provides the |
|
Contains benchmarking utilities to measure the performance of different optimizers and optimization settings. See Benchmarking for details. |
|
Provides utilities to aid with optimizer development like |
|
Provides the basic definitions to check the applicability of optimizer prototypes to different queries and database systems. In addition, some commonly-used validations are implemented here. |
|
Utilities that are not really specific to query optimization find their home here. See the package documentation for more details. |
|
Contains utilities to visualize different concepts in query optimization (join orders, join graphs, query execution plans, …). |