greenplumn CStatsPredJoin 源码
greenplumn CStatsPredJoin 代码
文件路径:/src/backend/gporca/libnaucrates/include/naucrates/statistics/CStatsPredJoin.h
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2012 EMC Corp.
//
// @filename:
// CStatsPredJoin.h
//
// @doc:
// Join predicate used for join cardinality estimation
//---------------------------------------------------------------------------
#ifndef GPNAUCRATES_CStatsPredJoin_H
#define GPNAUCRATES_CStatsPredJoin_H
#include "gpos/base.h"
#include "gpos/common/CDynamicPtrArray.h"
#include "gpos/common/CRefCount.h"
#include "naucrates/md/IMDType.h"
#include "naucrates/statistics/CStatsPred.h"
namespace gpnaucrates
{
using namespace gpos;
using namespace gpmd;
//---------------------------------------------------------------------------
// @class:
// CStatsPredJoin
//
// @doc:
// Join predicate used for join cardinality estimation
//---------------------------------------------------------------------------
class CStatsPredJoin : public CRefCount
{
private:
// column id
ULONG m_colidOuter;
// comparison type
CStatsPred::EStatsCmpType m_stats_cmp_type;
// column id
ULONG m_colidInner;
public:
CStatsPredJoin &operator=(CStatsPredJoin &) = delete;
CStatsPredJoin(const CStatsPredJoin &) = delete;
// c'tor
CStatsPredJoin(ULONG colid1, CStatsPred::EStatsCmpType stats_cmp_type,
ULONG colid2)
: m_colidOuter(colid1),
m_stats_cmp_type(stats_cmp_type),
m_colidInner(colid2)
{
}
// accessors
BOOL
HasValidColIdOuter() const
{
return gpos::ulong_max != m_colidOuter;
}
ULONG
ColIdOuter() const
{
return m_colidOuter;
}
// comparison type
CStatsPred::EStatsCmpType
GetCmpType() const
{
return m_stats_cmp_type;
}
BOOL
HasValidColIdInner() const
{
return gpos::ulong_max != m_colidInner;
}
ULONG
ColIdInner() const
{
return m_colidInner;
}
// d'tor
~CStatsPredJoin() override = default;
}; // class CStatsPredJoin
// array of filters
using CStatsPredJoinArray = CDynamicPtrArray<CStatsPredJoin, CleanupRelease>;
} // namespace gpnaucrates
#endif // !GPNAUCRATES_CStatsPredJoin_H
// EOF
相关信息
相关文章
greenplumn CFilterStatsProcessor 源码
greenplumn CGroupByStatsProcessor 源码
greenplumn CInnerJoinStatsProcessor 源码
greenplumn CJoinStatsProcessor 源码
greenplumn CLeftAntiSemiJoinStatsProcessor 源码
greenplumn CLeftOuterJoinStatsProcessor 源码
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦