private void verifySetStatement(VerificationState state, BinaryNode setNode) { Preconditions.checkArgument(setNode.getType() == NodeType.UNION || setNode.getType() == NodeType.INTERSECT || setNode.getType() == NodeType.EXCEPT); Schema left = setNode.getLeftChild().getOutSchema(); Schema right = setNode.getRightChild().getOutSchema(); NodeType type = setNode.getType(); if (left.size() != right.size()) { state.addVerification(new TajoException(Errors.ResultCode.AMBIGUOUS_FUNCTION)); return; } Column[] leftColumns = left.toArray(); Column[] rightColumns = right.toArray(); for (int i = 0; i < leftColumns.length; i++) { if (!leftColumns[i].getDataType().equals(rightColumns[i].getDataType())) { state.addVerification( makeSetOpDataTypeMisMatch(type, leftColumns[i].getDataType(), rightColumns[i].getDataType()) ); } } }
private void verifySetStatement(VerificationState state, BinaryNode setNode) { Preconditions.checkArgument(setNode.getType() == NodeType.UNION || setNode.getType() == NodeType.INTERSECT || setNode.getType() == NodeType.EXCEPT); Schema left = setNode.getLeftChild().getOutSchema(); Schema right = setNode.getRightChild().getOutSchema(); NodeType type = setNode.getType(); if (left.size() != right.size()) { state.addVerification(new TajoException(Errors.ResultCode.AMBIGUOUS_FUNCTION)); return; } Column[] leftColumns = left.toArray(); Column[] rightColumns = right.toArray(); for (int i = 0; i < leftColumns.length; i++) { if (!leftColumns[i].getDataType().equals(rightColumns[i].getDataType())) { state.addVerification( makeSetOpDataTypeMisMatch(type, leftColumns[i].getDataType(), rightColumns[i].getDataType()) ); } } }