greenplumn CLeftOuterJoinStatsProcessor 源码

  • 2022-08-18
  • 浏览 (418)

greenplumn CLeftOuterJoinStatsProcessor 代码

文件路径:/src/backend/gporca/libnaucrates/include/naucrates/statistics/CLeftOuterJoinStatsProcessor.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2018 VMware, Inc. or its affiliates.
//
//	@filename:
//		CLeftOuterJoinStatsProcessor.h
//
//	@doc:
//		Processor for computing statistics for Left Outer Join
//---------------------------------------------------------------------------
#ifndef GPNAUCRATES_CLeftOuterJoinStatsProcessor_H
#define GPNAUCRATES_CLeftOuterJoinStatsProcessor_H

#include "naucrates/statistics/CJoinStatsProcessor.h"

namespace gpnaucrates
{
class CLeftOuterJoinStatsProcessor : public CJoinStatsProcessor
{
private:
	// create a new hash map of histograms from the results of the inner join and the histograms of the outer child
	static UlongToHistogramMap *MakeLOJHistogram(
		CMemoryPool *mp, const CStatistics *outer_stats,
		const CStatistics *inner_side_stats, CStatistics *inner_join_stats,
		CStatsPredJoinArray *join_preds_stats, CDouble num_rows_inner_join,
		CDouble *result_rows_LASJ);
	// helper method to add histograms of the inner side of a LOJ
	static void AddHistogramsLOJInner(CMemoryPool *mp,
									  const CStatistics *inner_join_stats,
									  ULongPtrArray *inner_colids_with_stats,
									  CDouble num_rows_LASJ,
									  CDouble num_rows_inner_join,
									  UlongToHistogramMap *LOJ_histograms);

public:
	static CStatistics *CalcLOJoinStatsStatic(
		CMemoryPool *mp, const IStatistics *outer_stats,
		const IStatistics *inner_side_stats,
		CStatsPredJoinArray *join_preds_stats);
};
}  // namespace gpnaucrates

#endif	// !GPNAUCRATES_CLeftOuterJoinStatsProcessor_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CBucket 源码

greenplumn CFilterStatsProcessor 源码

greenplumn CGroupByStatsProcessor 源码

greenplumn CHistogram 源码

greenplumn CInnerJoinStatsProcessor 源码

greenplumn CJoinStatsProcessor 源码

greenplumn CLeftAntiSemiJoinStatsProcessor 源码

greenplumn CLeftSemiJoinStatsProcessor 源码

greenplumn CLimitStatsProcessor 源码

greenplumn CPoint 源码

0  赞