public static void resetRequiredAndInputTypes(AbstractFunctionCallExpression expr) { expr.setOpaqueParameters(null); }
private void deepCopyOpaqueParameters(AbstractFunctionCallExpression src, AbstractFunctionCallExpression dest) { Object[] srcOpaqueParameters = src.getOpaqueParameters(); Object[] newOpaqueParameters = null; if (srcOpaqueParameters != null) { newOpaqueParameters = new Object[srcOpaqueParameters.length]; for (int i = 0; i < srcOpaqueParameters.length; i++) { newOpaqueParameters[i] = srcOpaqueParameters[i]; } } dest.setOpaqueParameters(newOpaqueParameters); }
localAggFunctions.add(new MutableObject<>(samplingExp)); Object[] samplingParam = { context.getPhysicalOptimizationConfig().getSortSamples() }; samplingExp.setOpaqueParameters(samplingParam); i++; rangeMapExp.setOpaqueParameters(new Object[] { numPartitions, ascendingFlags });
public static boolean setRequiredAndInputTypes(AbstractFunctionCallExpression expr, IAType requiredType, IAType inputType) throws CompilationException { boolean changed = false; Object[] opaqueParameters = expr.getOpaqueParameters(); if (opaqueParameters == null) { opaqueParameters = new Object[2]; opaqueParameters[0] = requiredType; opaqueParameters[1] = inputType; ATypeTag requiredTypeTag = requiredType.getTypeTag(); ATypeTag actualTypeTag = TypeComputeUtils.getActualType(inputType).getTypeTag(); if (!ATypeHierarchy.isCompatible(requiredTypeTag, actualTypeTag)) { String funcName = expr.getFunctionIdentifier().getName(); throw new IncompatibleTypeException(expr.getSourceLocation(), funcName, actualTypeTag, requiredTypeTag); } expr.setOpaqueParameters(opaqueParameters); changed = true; } return changed; }