@Override public boolean equals(final Object other) { if (!(other instanceof EasyScanPrel)) { return false; } return super.equals(other); }
@Override public int hashCode() { return Objects.hashCode(super.hashCode(), filter); }
@Override public RelDataType deriveRowType() { if (cachedRelDataType != null) { return cachedRelDataType; } return super.deriveRowType(); }
@Override public RelWriter explainTerms(RelWriter pw) { pw = super.explainTerms(pw); if(filter != null){ return pw.item("filters", filter); } return pw; }
@Override public double getCostForParallelization() { RelOptCost cost = computeSelfCost(getCluster().getPlanner(), getCluster().getMetadataQuery()); double costForParallelization = Math.max(cost.getRows(), 1); PlannerSettings settings = PrelUtil.getSettings(getCluster()); if (settings.useMinimumCostPerSplit()) { double minCostPerSplit = settings.getMinimumCostPerSplit(getPluginId().getType()); costForParallelization = Math.max(costForParallelization, minCostPerSplit * tableMetadata.getSplitCount()); } return costForParallelization; } }
@Override public double getCostAdjustmentFactor(){ return filter != null ? filter.getCostAdjustment() : super.getCostAdjustmentFactor(); }
@Override public double getFilterReduction() { return query == null ? super.getFilterReduction() : 0.15d; }
@Override public int getMinParallelizationWidth() { if(getDistributionAffinity() != DistributionAffinity.HARD){ return 1; } final Set<String> nodes = new HashSet<>(); Iterator<DatasetSplit> iter = tableMetadata.getSplits(); while(iter.hasNext()){ DatasetSplit split = iter.next(); for(Affinity a : split.getAffinitiesList()){ nodes.add(a.getHost()); } } return nodes.size(); }
@Override public RelWriter explainTerms(RelWriter pw) { String str = query == null ? null : query.toString().replace('\n', ' '); return super.explainTerms(pw).itemIf("query", str, query != null); }
@Override public double getCostAdjustmentFactor(){ return filter != null ? filter.getCostAdjustment() : super.getCostAdjustmentFactor(); }
@Override public RelWriter explainTerms(RelWriter pw) { pw = super.explainTerms(pw); pw = pw.item("mode", getExtended().getReaderType().name()); if(filter != null){ return pw.item("filters", filter); } return pw; }
@Override public boolean equals(final Object other) { if (!(other instanceof HiveScanPrel)) { return false; } HiveScanPrel castOther = (HiveScanPrel) other; return Objects.equal(filter, castOther.filter) && super.equals(other); }
@Override public int hashCode() { return Objects.hashCode(super.hashCode(), filter); }
@Override public RelWriter explainTerms(RelWriter pw) { return super.explainTerms(pw) .itemIf("startRow", HBaseUtils.keyToStr(startRow), startRow != null && startRow.length > 0) .itemIf("stopRow", HBaseUtils.keyToStr(stopRow), stopRow != null && stopRow.length > 0) .itemIf("filter", HBaseUtils.filterToStr(filter), filter != null); }
@Override public boolean equals(final Object other) { if (!(other instanceof ParquetScanPrel)) { return false; } ParquetScanPrel castOther = (ParquetScanPrel) other; return Objects.equal(filter, castOther.filter) && Objects.equal(globalDictionaryEncodedColumns, castOther.globalDictionaryEncodedColumns) && Objects.equal(cachedRelDataType, castOther.cachedRelDataType) && super.equals(other); }
@Override public boolean equals(Object other) { if(!other.getClass().equals(this.getClass())){ return false; } InfoSchemaScanPrel castOther = (InfoSchemaScanPrel) other; return Objects.equal(query, castOther.query) && super.equals(other); }