MCPcopy Create free account
hub / github.com/apache/impala / init

Method init

fe/src/main/java/org/apache/impala/planner/JoinNode.java:273–298  ·  view source on GitHub ↗
(Analyzer analyzer)

Source from the content-addressed store, hash-verified

271 abstract public boolean isBlockingJoinNode();
272
273 @Override
274 public void init(Analyzer analyzer) throws ImpalaException {
275 // Do not call super.init() to defer computeStats() until all conjuncts
276 // have been collected.
277 assignConjuncts(analyzer);
278 createDefaultSmap(analyzer);
279 // Mark slots used by 'conjuncts_' as materialized after substitution. Recompute
280 // memory layout for affected tuples. Note: only tuples of the masked tables could
281 // be affected if they are referenced by multi-tuple predicates.
282 for (TupleDescriptor tuple : analyzer.materializeSlots(conjuncts_)) {
283 if (LOG.isTraceEnabled()) {
284 LOG.trace("Recompute mem layout for " + tuple.debugString());
285 }
286 Preconditions.checkNotNull(tuple.getMaskedByTuple());
287 tuple.recomputeMemLayout();
288 }
289 assignedConjuncts_ = analyzer.getAssignedConjuncts();
290 otherJoinConjuncts_ = Expr.substituteList(otherJoinConjuncts_,
291 getCombinedChildSmap(), analyzer, false);
292
293 List<SlotRef> slotRefs = new ArrayList<>();
294 for (Expr e : getConjuncts()) { e.collect(SlotRef.class, slotRefs); }
295 for (Expr e : getOtherJoinConjuncts()) { e.collect(SlotRef.class, slotRefs); }
296 for (Expr e : getEqJoinConjuncts()) { e.collect(SlotRef.class, slotRefs); }
297 analyzer.addJoinColumns(slotRefs);
298 }
299
300 /**
301 * Returns the estimated cardinality of an inner or outer join.

Callers 3

createJoinNodeMethod · 0.95

Calls 15

substituteListMethod · 0.95
getOtherJoinConjunctsMethod · 0.95
getEqJoinConjunctsMethod · 0.95
createDefaultSmapMethod · 0.80
getMaskedByTupleMethod · 0.80
recomputeMemLayoutMethod · 0.80
getCombinedChildSmapMethod · 0.80
collectMethod · 0.80
addJoinColumnsMethod · 0.80
assignConjunctsMethod · 0.45
materializeSlotsMethod · 0.45
traceMethod · 0.45

Tested by

no test coverage detected