#include <RelAlgDag.h>
Definition at line 1929 of file RelAlgDag.h.
RelSort::RelSort |
( |
const std::vector< SortField > & |
collation, |
|
|
const size_t |
limit, |
|
|
const size_t |
offset, |
|
|
std::shared_ptr< const RelAlgNode > |
input, |
|
|
bool |
limit_delivered |
|
) |
| |
|
inline |
size_t RelSort::collationCount |
( |
| ) |
const |
|
inline |
std::shared_ptr<RelAlgNode> RelSort::deepCopy |
( |
| ) |
const |
|
inlineoverridevirtual |
SortField RelSort::getCollation |
( |
const size_t |
i | ) |
const |
|
inline |
size_t RelSort::getLimit |
( |
| ) |
const |
|
inline |
size_t RelSort::getOffset |
( |
| ) |
const |
|
inline |
bool RelSort::hasEquivCollationOf |
( |
const RelSort & |
that | ) |
const |
|
private |
Definition at line 802 of file RelAlgDag.cpp.
References collation_, and anonymous_namespace{RelAlgDag.cpp}::get_equiv_cols().
Referenced by operator==().
807 for (
size_t i = 0, e =
collation_.size(); i < e; ++i) {
810 if (this_sort_key.getSortDir() != that_sort_key.getSortDir()) {
813 if (this_sort_key.getNullsPosition() != that_sort_key.getNullsPosition()) {
816 auto this_equiv_keys =
get_equiv_cols(
this, this_sort_key.getField());
817 auto that_equiv_keys =
get_equiv_cols(&that, that_sort_key.getField());
818 std::vector<std::pair<const RelAlgNode*, int>> intersect;
819 std::set_intersection(this_equiv_keys.begin(),
820 this_equiv_keys.end(),
821 that_equiv_keys.begin(),
822 that_equiv_keys.end(),
823 std::back_inserter(intersect));
824 if (intersect.empty()) {
std::vector< SortField > collation_
std::set< std::pair< const RelAlgNode *, int > > get_equiv_cols(const RelAlgNode *node, const size_t which_col)
bool RelSort::isEmptyResult |
( |
| ) |
const |
|
inline |
bool RelSort::isLimitDelivered |
( |
| ) |
const |
|
inline |
bool RelSort::operator== |
( |
const RelSort & |
that | ) |
const |
|
inline |
void RelSort::setCollation |
( |
std::vector< SortField > && |
collation | ) |
|
|
inline |
void RelSort::setEmptyResult |
( |
bool |
emptyResult | ) |
|
|
inline |
size_t RelSort::size |
( |
| ) |
const |
|
inlineoverridevirtual |
size_t RelSort::toHash |
( |
| ) |
const |
|
inlineoverridevirtual |
Implements RelAlgNode.
Definition at line 1973 of file RelAlgDag.h.
References cat(), collation_, empty_result_, RelAlgNode::inputs_, limit_, limit_delivered_, offset_, to_string(), and typeName().
1989 ret +=
", input node id={";
1991 auto node_id_in_plan = input->getIdInPlanTree();
1992 auto node_id_str = node_id_in_plan ?
std::to_string(*node_id_in_plan)
1994 ret += node_id_str +
" ";
1998 return cat(ret,
")");
std::string toString(RelRexToStringConfig config=RelRexToStringConfig::defaults()) const override
std::vector< SortField > collation_
std::string typeName(const T *v)
bool RelSort::empty_result_ |
|
private |
bool RelSort::limit_delivered_ |
|
private |
The documentation for this class was generated from the following files:
- /home/jenkins-slave/workspace/core-os-doxygen/QueryEngine/RelAlgDag.h
- /home/jenkins-slave/workspace/core-os-doxygen/QueryEngine/RelAlgDag.cpp