Пример #1
0
const char * ComTdbOnlj::getNodeName() const
{
  if (isLeftJoin())
    return "EX_ONLJ_LEFT_JOIN";
  else if (isSemiJoin())
    if (isAntiJoin())
      return "EX_ONLJ_ANTI_SEMI_JOIN";
    else
      return "EX_ONLJ_SEMI_JOIN";
  else
    return "EX_ONLJ";
}
Пример #2
0
void ComTdbHashj::displayContents(Space * space,ULng32 flag)
{
  ComTdb::displayContents(space,flag & 0xFFFFFFFE);

  if (flag & 0x00000008)
    {
      char buf[100];
      str_sprintf(buf, "\nFor ComTdbHashj :");
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf,
		  "hjFlags = %b, isSemiJoin = %d, isLeftJoin = %d, isRightJoin = %d",
		  hjFlags_,isSemiJoin(),isLeftJoin(),isRightJoin());
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf,"isAntiSemiJoin = %d, isUniqueHashJoin = %d, "
                       "isNoOverflow = %d, isReuse = %d",
		  isAntiSemiJoin(),isUniqueHashJoin(),isNoOverflow(),isReuse());
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      if ( forceOverflowEvery() ) {
	str_sprintf(buf,"forceOverflowEvery = %d ",  forceOverflowEvery() );
	space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));
      }
      if ( forceClusterSplitAfterMB() || forceHashLoopAfterNumBuffers() ) {
	str_sprintf(buf,"forceClusterSplitAfterMB = %d, forceHashLoopAfterNumBuffers = %d ",
		    forceClusterSplitAfterMB(), forceHashLoopAfterNumBuffers());
	space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));
      }

      str_sprintf(buf,"bufferedWrites = %d, logDiagnostics = %d, hashBufferSize = %d",
		  bufferedWrites(), logDiagnostics(), hashBufferSize_);
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf, "memoryQuotaMB = %d, numClusters = %d", 
		  memoryQuotaMB(), numClusters());
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));
      str_sprintf(buf, "isReturnRightOrdered = %d, isPossibleMultipleCalls = %d ", 
		  isReturnRightOrdered(), isPossibleMultipleCalls());
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf,"All or Nothing = %d, delayLeftRequest = %d ", 
		  isAntiSemiJoin() && ! rightSearchExpr_ , delayLeftRequest());
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf,"leftRowLength = %d, rightRowLength = %d, instRowForLeftJoinLength = %d ",
		  leftRowLength_,rightRowLength_,instRowForLeftJoinLength_);
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf,"extLeftRowLength = %d, extRightRowLength = %d, minMaxRowLength = %d",
                  extLeftRowLength_,extRightRowLength_, minMaxRowLength_);
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf,"outerExpectedRows = %f, innerExpectedRows = %f",
				    outerExpectedRows(),innerExpectedRows());
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf,"memUsagePercent = %d, pressureThreshold = %d",
		  memUsagePercent_,pressureThreshold_);
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

      str_sprintf(buf,"hjMemEstInMbPerCpu = %f, estimateErrorPenalty = %d ",
		  hjMemEstInMbPerCpu_, hjGrowthPercent_);
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));
      
      str_sprintf(buf,"bmoCitizenshipFactor = %f, PhyMemoryContingencyMB = %d ",
		  bmoCitizenshipFactor_, pMemoryContingencyMB_);
      space->allocateAndCopyToAlignedSpace(buf, str_len(buf), sizeof(short));

    }

  if (flag & 0x00000001)
    {
      displayExpression(space,flag);
      displayChildren(space,flag);
    }
}