/** * Expand any filter according to any prior extend * * @param exprHolder * @return */ public DistinctExtendFilter applyFilter(Expr contribExpr) { // Validation: Make sure all mentioned variables are projected Set<Var> mentionedVars = contribExpr.getVarsMentioned(); Set<Var> availableVars = postDistinctVarDefs != null ? postDistinctVarDefs.keySet() : preDistinctVarDefs.keySet() ; Set<Var> errVars = Sets.difference(mentionedVars, availableVars); if(!errVars.isEmpty()) { throw new RuntimeException("Reference to unavailable vars: " + errVars + ", available: " + availableVars); } Expr expandedExpr = expandExpr(contribExpr); Expr currentExpr = filter.getExpr(); Expr expr = NodeValue.TRUE.equals(currentExpr) ? expandedExpr : new E_LogicalAnd(currentExpr, expandedExpr); // perform a logical AND with the given filters ExprHolder eh = ExprHolder.from(expr); this.filter = eh; return this; }
/** * Expand any filter according to any prior extend * * @param exprHolder * @return */ public DistinctExtendFilter2 applyFilter(Expr contribExpr) { // Validation: Make sure all mentioned variables are projected Set<Var> mentionedVars = contribExpr.getVarsMentioned(); Set<Var> availableVars = isDistinct ? postDistinctVarDefs == null ? null : postDistinctVarDefs.keySet() : preDistinctVarDefs == null ? null : preDistinctVarDefs.keySet() ; Set<Var> errVars = Sets.difference(mentionedVars, availableVars); if(!errVars.isEmpty()) { throw new RuntimeException("Reference to unavailable vars: " + errVars + ", available: " + availableVars); } Expr expandedExpr = expandExpr(contribExpr); Expr currentExpr = filter.getExpr(); Expr expr = NodeValue.TRUE.equals(currentExpr) ? expandedExpr : new E_LogicalAnd(currentExpr, expandedExpr); // perform a logical AND with the given filters ExprHolder eh = ExprHolder.from(expr); this.filter = eh; return this; }
/** * Expand any filter according to any prior extend * * @param exprHolder * @return */ public DistinctExtendFilter2 applyFilter(Expr contribExpr) { // Validation: Make sure all mentioned variables are projected Set<Var> mentionedVars = contribExpr.getVarsMentioned(); Set<Var> availableVars = isDistinct ? postDistinctVarDefs == null ? null : postDistinctVarDefs.keySet() : preDistinctVarDefs == null ? null : preDistinctVarDefs.keySet() ; Set<Var> errVars = Sets.difference(mentionedVars, availableVars); if(!errVars.isEmpty()) { throw new RuntimeException("Reference to unavailable vars: " + errVars + ", available: " + availableVars); } Expr expandedExpr = expandExpr(contribExpr); Expr currentExpr = filter.getExpr(); Expr expr = NodeValue.TRUE.equals(currentExpr) ? expandedExpr : new E_LogicalAnd(currentExpr, expandedExpr); // perform a logical AND with the given filters ExprHolder eh = ExprHolder.from(expr); this.filter = eh; return this; }
/** * Expand any filter according to any prior extend * * @param exprHolder * @return */ public DistinctExtendFilter applyFilter(Expr contribExpr) { // Validation: Make sure all mentioned variables are projected Set<Var> mentionedVars = contribExpr.getVarsMentioned(); Set<Var> availableVars = postDistinctVarDefs != null ? postDistinctVarDefs.keySet() : preDistinctVarDefs.keySet() ; Set<Var> errVars = Sets.difference(mentionedVars, availableVars); if(!errVars.isEmpty()) { throw new RuntimeException("Reference to unavailable vars: " + errVars + ", available: " + availableVars); } Expr expandedExpr = expandExpr(contribExpr); Expr currentExpr = filter.getExpr(); Expr expr = NodeValue.TRUE.equals(currentExpr) ? expandedExpr : new E_LogicalAnd(currentExpr, expandedExpr); // perform a logical AND with the given filters ExprHolder eh = ExprHolder.from(expr); this.filter = eh; return this; }
Set<Op> nonCachedCacheableOps = Sets.difference(cacheableOps.keySet(), opToCacheHit.keySet());
Set<Op> nonCachedCacheableOps = Sets.difference(cacheableOps.keySet(), opToCacheHit.keySet());