// check that we got the right types
SingleInputOperator<?, ?, ?> contract = (SingleInputOperator<?, ?, ?>) node.getSingleInputNode().getPactContract();
if (! (contract instanceof RecordOperator)) {
throw new CompilerPostPassException("Error: Operator is not a Record based contract. Wrong compiler invokation.");
}
RecordOperator recContract = (RecordOperator) contract;
// add the information to the schema
int[] localPositions = contract.getKeyColumns(0);
Class<? extends Key<?>>[] types = recContract.getKeyClasses();
for (int i = 0; i < localPositions.length; i++) {
schema.addType(localPositions[i], types[i]);
}
// this is a temporary fix, we should solve this more generic