in src/main/java/com/aliyun/odps/jdbc/OdpsStatement.java [142:166]
public void cancel() throws SQLException {
checkClosed();
if (isCancelled || executeInstance == null) {
return;
}
try {
if (connHandle.runningInInteractiveMode()) {
sqlExecutor.cancel();
connHandle.log.info("submit cancel query instance id=" + executeInstance.getId());
} else {
// If the instance has already terminated, calling Instance.stop# results in an exception.
// Checking the instance status before calling Instance.stop# could handle most cases. But
// if the instance terminated after the checking, an exception would still be thrown.
if (!executeInstance.isTerminated()) {
executeInstance.stop();
connHandle.log.info("submit cancel to instance id=" + executeInstance.getId());
}
}
} catch (OdpsException e) {
throw new SQLException(e.getMessage(), e);
}
isCancelled = true;
}