![]() |
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 Join s of this DataSource . | |
const auto & | joins () const |
Returns a reference to the Join s 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 DataSource
s 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 Join
s 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 Join
s 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.