![]() |
mutable
A Database System for Research and Fast Prototyping
|
A DataSource in a QueryGraph.
More...
#include <QueryGraph.hpp>
Public Member Functions | |
| virtual | ~DataSource () |
| std::size_t | id () const |
Returns the id of this DataSource. | |
| const ThreadSafePooledOptionalString & | alias () const |
Returns the alias of this DataSource. | |
| virtual ThreadSafePooledOptionalString | name () const =0 |
Returns the name of this DataSource. | |
| const cnf::CNF & | filter () const |
Returns the filter of this DataSource. | |
| void | update_filter (cnf::CNF filter) |
Adds filter to the current filter of this DataSource by logical conjunction. | |
| void | add_join (Join &join) |
Adds join to the set of Joins of this DataSource. | |
| const auto & | joins () const |
Returns a reference to the Joins using this DataSource. | |
| virtual bool | is_correlated () const =0 |
Returns true iff the data source is correlated. | |
| bool | operator== (const DataSource &other) const |
| bool | operator!= (const DataSource &other) const |
Protected Member Functions | |
| DataSource (std::size_t id, ThreadSafePooledOptionalString alias) | |
Private Member Functions | |
| void | remove_join (Join &join) |
Private Attributes | |
| cnf::CNF | filter_ |
| filter condition on this data source | |
| std::vector< std::reference_wrapper< Join > > | joins_ |
| joins with this data source | |
| ThreadSafePooledOptionalString | alias_ |
| alias of this data source, may not have a value if this data source has no alias | |
| std::size_t | id_ |
| unique identifier of this data source within its query graph | |
| bool | decorrelated_ = true |
| indicates whether this source is already decorrelated | |
Friends | |
| struct | QueryGraph |
| struct | GraphBuilder |
| struct | Decorrelation |
A DataSource in a QueryGraph.
Represents something that can be evaluated to a sequence of tuples, optionally filtered by a filter condition. A DataSource can be joined with one or more other DataSources by a Join.
Definition at line 32 of file QueryGraph.hpp.
|
inlineprotected |
Definition at line 47 of file QueryGraph.hpp.
References and().
|
inlinevirtual |
Definition at line 53 of file QueryGraph.hpp.
|
inline |
Adds join to the set of Joins of this DataSource.
Definition at line 67 of file QueryGraph.hpp.
|
inline |
Returns the alias of this DataSource.
May not have a value.
Definition at line 58 of file QueryGraph.hpp.
|
inline |
|
inline |
Returns the id of this DataSource.
Definition at line 56 of file QueryGraph.hpp.
|
pure virtual |
Returns true iff the data source is correlated.
Implemented in m::BaseTable, and m::Query.
|
inline |
Returns a reference to the Joins using this DataSource.
Definition at line 69 of file QueryGraph.hpp.
|
pure virtual |
Returns the name of this DataSource.
Either the same as alias(), if an alias is given, otherwise the name of the referenced Table. Returned value might be empty for anonymous nested queries (e.g. in a WHERE clause).
Implemented in m::BaseTable, and m::Query.
Referenced by emplace_back_unique().
|
inline |
Definition at line 84 of file QueryGraph.hpp.
|
inline |
Definition at line 83 of file QueryGraph.hpp.
References id_.
|
inlineprivate |
Definition at line 75 of file QueryGraph.hpp.
|
inline |
Adds filter to the current filter of this DataSource by logical conjunction.
Definition at line 65 of file QueryGraph.hpp.
References and().
Referenced by m::QueryGraph::add_custom_filter().
|
friend |
Definition at line 36 of file QueryGraph.hpp.
|
friend |
Definition at line 35 of file QueryGraph.hpp.
|
friend |
Definition at line 34 of file QueryGraph.hpp.
|
private |
alias of this data source, may not have a value if this data source has no alias
Definition at line 41 of file QueryGraph.hpp.
|
private |
indicates whether this source is already decorrelated
Definition at line 44 of file QueryGraph.hpp.
|
private |
filter condition on this data source
Definition at line 39 of file QueryGraph.hpp.
|
private |
unique identifier of this data source within its query graph
Definition at line 42 of file QueryGraph.hpp.
Referenced by operator==().
|
private |
joins with this data source
Definition at line 40 of file QueryGraph.hpp.