public LogicalVariable createNewVar() { varCounter++; LogicalVariable var = new LogicalVariable(-varCounter); return var; }
@Override public LogicalVariable newVar() { varCounter++; return new LogicalVariable(varCounter); }
@Override public LogicalVariable newVar(String displayName) { varCounter++; return new LogicalVariable(varCounter, displayName); }
private LogicalVariable newLogicalVariable() { return new LogicalVariable(varCounter++); }
@Override public LogicalVariable newVar(String displayName) { varCounter.inc(); int varId = varCounter.get(); LogicalVariable var = new LogicalVariable(varId, displayName); currentVarMap.put(varId, var); return var; }
@Override public PhysicalRequirements getRequiredPropertiesForChildren(ILogicalOperator op, IPhysicalPropertiesVector reqdByParent, IOptimizationContext context) { List<LogicalVariable> scanVariables = new ArrayList<LogicalVariable>(); scanVariables.addAll(keys); scanVariables.add(new LogicalVariable(-1)); IPhysicalPropertiesVector r = dataSource.getPropertiesProvider().computePropertiesVector(scanVariables); IPhysicalPropertiesVector[] requirements = new IPhysicalPropertiesVector[1]; requirements[0] = r; return new PhysicalRequirements(requirements, IPartitioningRequirementsCoordinator.NO_COORDINATION); }
@Override public PhysicalRequirements getRequiredPropertiesForChildren(ILogicalOperator op, IPhysicalPropertiesVector reqdByParent, IOptimizationContext context) { List<LogicalVariable> scanVariables = new ArrayList<LogicalVariable>(); scanVariables.addAll(primaryKeys); scanVariables.add(new LogicalVariable(-1)); for (int i = 0; i < numOfAdditionalNonFilteringFields; i++) { scanVariables.add(new LogicalVariable(-1)); } IPhysicalPropertiesVector r = dataSourceIndex.getDataSource().getPropertiesProvider().computePropertiesVector(scanVariables); r.getLocalProperties().clear(); IPhysicalPropertiesVector[] requirements = new IPhysicalPropertiesVector[1]; requirements[0] = r; return new PhysicalRequirements(requirements, IPartitioningRequirementsCoordinator.NO_COORDINATION); }
@Override public PhysicalRequirements getRequiredPropertiesForChildren(ILogicalOperator op, IPhysicalPropertiesVector reqdByParent, IOptimizationContext context) { List<LogicalVariable> scanVariables = new ArrayList<>(); scanVariables.addAll(primaryKeys); scanVariables.add(new LogicalVariable(-1)); IPhysicalPropertiesVector physicalProps = dataSource.getPropertiesProvider().computePropertiesVector(scanVariables); StructuralPropertiesVector spv = new StructuralPropertiesVector(physicalProps.getPartitioningProperty(), physicalProps.getLocalProperties()); return new PhysicalRequirements(new IPhysicalPropertiesVector[] { spv }, IPartitioningRequirementsCoordinator.NO_COORDINATION); }
@Override public PhysicalRequirements getRequiredPropertiesForChildren(ILogicalOperator op, IPhysicalPropertiesVector reqdByParent, IOptimizationContext context) { //skVarMap is used to remove duplicated variable references for order operator Map<Integer, Object> skVarMap = new HashMap<Integer, Object>(); List<LogicalVariable> scanVariables = new ArrayList<>(); scanVariables.addAll(primaryKeys); scanVariables.add(new LogicalVariable(-1)); IPhysicalPropertiesVector physicalProps = dataSourceIndex.getDataSource().getPropertiesProvider().computePropertiesVector(scanVariables); List<ILocalStructuralProperty> localProperties = new ArrayList<>(); List<OrderColumn> orderColumns = new ArrayList<OrderColumn>(); // Data needs to be sorted based on the [token, number of token, PK] // OR [token, PK] if the index is not partitioned for (LogicalVariable skVar : secondaryKeys) { if (!skVarMap.containsKey(skVar.getId())) { orderColumns.add(new OrderColumn(skVar, OrderKind.ASC)); skVarMap.put(skVar.getId(), null); } } for (LogicalVariable pkVar : primaryKeys) { orderColumns.add(new OrderColumn(pkVar, OrderKind.ASC)); } localProperties.add(new LocalOrderProperty(orderColumns)); StructuralPropertiesVector spv = new StructuralPropertiesVector(physicalProps.getPartitioningProperty(), localProperties); return new PhysicalRequirements(new IPhysicalPropertiesVector[] { spv }, IPartitioningRequirementsCoordinator.NO_COORDINATION); }
public LogicalVariable newVarFromExpression(Expression expr) { int varId; if (expr != null && expr.getKind() == Expression.Kind.VARIABLE_EXPRESSION) { VariableExpr v = (VariableExpr) expr; varId = v.getVar().getId(); if (varId > varCounter.get()) { varCounter.set(varId); } } else { varCounter.inc(); varId = varCounter.get(); } LogicalVariable var = expr != null && (expr.getKind() == Expression.Kind.VARIABLE_EXPRESSION || expr.getKind() == Expression.Kind.FIELD_ACCESSOR_EXPRESSION) ? new LogicalVariable(varId, expr.toString()) : new LogicalVariable(varId); currentVarMap.put(varId, var); return var; }
for (Mutable<ILogicalExpression> expr : primaryKeyExprs) { VariableReferenceExpression varRefExpr = (VariableReferenceExpression) expr.getValue(); primaryKeyLogicalVars.add(new LogicalVariable(varRefExpr.getVariableReference().getId()));