private ConstructPhysicalJoinAndUpdateCost ( CandidateJoinUnit nodeUnitCandidate, WBooleanExpression joinCondition, double preJoinSelectivity, double postJoinSelectivity, double estimatedSelectivity, GraphMetaData metaData ) : void | ||
nodeUnitCandidate | CandidateJoinUnit | |
joinCondition | WBooleanExpression | |
preJoinSelectivity | double | |
postJoinSelectivity | double | |
estimatedSelectivity | double | |
metaData | GraphMetaData | |
return | void |
/// <summary> /// Transit from current component to the new component in the next state given the Node Unit /// </summary> /// <param name="candidateTree"></param> /// <param name="statisticsCalculator"></param> /// <returns></returns> public MatchComponent GetNextState( CandidateJoinUnit candidateTree, IMatchJoinStatisticsCalculator statisticsCalculator, GraphMetaData metaData) { // Deep copy the component var newComponent = new MatchComponent(this); // Constrcuts join conditions and retrieves join selectivity double joinSelectivity; double sqlEstimatedJoinSelectivity; var joinCondition = newComponent.ConstructJoinCondition(candidateTree, statisticsCalculator, metaData, out joinSelectivity, out sqlEstimatedJoinSelectivity); // Constructs physical join method and join table references newComponent.ConstructPhysicalJoinAndUpdateCost(candidateTree, joinCondition, joinSelectivity, sqlEstimatedJoinSelectivity, metaData); return(newComponent); }
/// <summary> /// Transit from current component to the new component in the next state given the Node Unit /// </summary> /// <param name="candidateTree"></param> /// <param name="statisticsCalculator"></param> /// <param name="metaData"></param> /// <param name="srcNodeStatisticsDict"></param> /// <returns></returns> public MatchComponent GetNextState( CandidateJoinUnit candidateTree, IMatchJoinStatisticsCalculator statisticsCalculator, GraphMetaData metaData, Dictionary<Tuple<string, bool>, Statistics> srcNodeStatisticsDict) { // Deep copy the component var newComponent = new MatchComponent(this); // Constrcuts join conditions and retrieves join selectivity double preJoinSelectivity, postJoinSelectivity, sqlEstimatedJoinSelectivity; var joinCondition = newComponent.ConstructJoinCondition(candidateTree, statisticsCalculator, metaData, srcNodeStatisticsDict, out preJoinSelectivity, out postJoinSelectivity, out sqlEstimatedJoinSelectivity); // Constructs physical join method and join table references newComponent.ConstructPhysicalJoinAndUpdateCost(candidateTree, joinCondition, preJoinSelectivity, postJoinSelectivity, sqlEstimatedJoinSelectivity, metaData); return newComponent; }