}
private Map<String, Map<String, Field>> crossWithSourceKey1(Rule<String> matchedDbRule,
Map<String, Comparative> matchedDbRuleArgs, Rule<String> matchedTbRule,
Map<String, Comparative> matchedTbRuleArgs, String[] commonColumn, Object outerCtx) {
SamplesCtx dbRuleCtx = null; //���ڱ������������������ͬ���������Ͳ�ͬ���У������ö�ٽ�����������ö�ټ�
Set<AdvancedParameter> diifTypeInCommon = diifTypeInCommon(matchedDbRule, matchedTbRule, commonColumn);
if (diifTypeInCommon != null && !diifTypeInCommon.isEmpty()) {
//�����а�����ö�����Ͳ�ͬ���У��������1_month����ʾ1_day
Map<String, Set<Object>> tbTypes = RuleUtils.getSamplingField(matchedTbRuleArgs, diifTypeInCommon);
dbRuleCtx = new SamplesCtx(new Samples(tbTypes), SamplesCtx.merge);
}
Map<String, Samples> dbValues = cast(matchedDbRule.calculate(matchedDbRuleArgs, dbRuleCtx, outerCtx));
Map<String, Map<String, Field>> topology = new HashMap<String, Map<String, Field>>(dbValues.size());
for (Map.Entry<String, Samples> e : dbValues.entrySet()) {
SamplesCtx tbRuleCtx = new SamplesCtx(e.getValue().subSamples(commonColumn), SamplesCtx.replace);
Map<String, Samples> tbValues = cast(matchedTbRule.calculate(matchedTbRuleArgs, tbRuleCtx, outerCtx));
topology.put(e.getKey(), toMapField(tbValues));
}
return topology;
}