text: //---------------------------------------------------------------------------
  //	Greenplum Database
  //	Copyright (C) 2018 Pivotal, Inc.
  //
  //	@filename:
  //		CLogicalJoin.cpp
  //
  //	@doc:
  //		Implementation of logical join class
  //---------------------------------------------------------------------------
  
  #include "gpos/base.h"
  
  #include "gpopt/base/CColRefSet.h"
  #include "gpopt/base/COptCtxt.h"
  
  #include "gpopt/operators/CExpression.h"
  #include "gpopt/operators/CExpressionHandle.h"
  #include "gpopt/operators/CLogicalJoin.h"
  #include "gpopt/operators/CPredicateUtils.h"
  #include "naucrates/statistics/CJoinStatsProcessor.h"
  
  using namespace gpopt;
  
  
  //---------------------------------------------------------------------------
  //	@function:
  //		CLogicalJoin::CLogicalJoin
  //
  //	@doc:
  //		Ctor
  //
  //---------------------------------------------------------------------------
  CLogicalJoin::CLogicalJoin
  	(
  	CMemoryPool *mp
  	)
  	:
  	CLogical(mp)
  {
  	GPOS_ASSERT(NULL != mp);
  }
  
  
  //---------------------------------------------------------------------------
  //	@function:
  //		CLogicalJoin::Matches
  //
  //	@doc:
  //		Match function on operator level
  //
  //---------------------------------------------------------------------------
  BOOL
  CLogicalJoin::Matches
  	(
  	COperator *pop
  	)
  	const
  {
  	return (pop->Eopid() == Eopid());
  }
  
  //---------------------------------------------------------------------------
  //	@function:
  //		CLogicalJoin::PstatsDerive
  //
  //	@doc:
  //		Derive statistics
  //
  //---------------------------------------------------------------------------
  IStatistics *
  CLogicalJoin::PstatsDerive
  	(
  	CMemoryPool *mp,
  	CExpressionHandle &exprhdl,
  	IStatisticsArray *stats_ctxt
  	)
  	const
  {
  	return CJoinStatsProcessor::DeriveJoinStats(mp, exprhdl, stats_ctxt);
  }
  
  // EOF
  
  