net.snowflake.client.core.QueryStatus Maven / Gradle / Ivy
package net.snowflake.client.core;
/** Copied from QueryDTO.java in Global Services. */
public enum QueryStatus {
RUNNING(0, "RUNNING"),
ABORTING(1, "ABORTING"),
SUCCESS(2, "SUCCESS"),
FAILED_WITH_ERROR(3, "FAILED_WITH_ERROR"),
ABORTED(4, "ABORTED"),
QUEUED(5, "QUEUED"),
FAILED_WITH_INCIDENT(6, "FAILED_WITH_INCIDENT"),
DISCONNECTED(7, "DISCONNECTED"),
RESUMING_WAREHOUSE(8, "RESUMING_WAREHOUSE"),
// purposeful typo. Is present in QueryDTO.java.
QUEUED_REPAIRING_WAREHOUSE(9, "QUEUED_REPARING_WAREHOUSE"),
RESTARTED(10, "RESTARTED"),
/** The state when a statement is waiting on a lock on resource held by another statement. */
BLOCKED(11, "BLOCKED"),
NO_DATA(12, "NO_DATA");
private final int value;
private final String description;
private String errorMessage = "No error reported";
private int errorCode = 0;
QueryStatus(int value, String description) {
this.value = value;
this.description = description;
}
public int getValue() {
return this.value;
}
public String getDescription() {
return this.description;
}
public String getErrorMessage() {
return this.errorMessage;
}
public int getErrorCode() {
return this.errorCode;
}
public void setErrorMessage(String message) {
this.errorMessage = message;
}
public void setErrorCode(int errorCode) {
this.errorCode = errorCode;
}
public static boolean isStillRunning(QueryStatus status) {
switch (status.getValue()) {
case 0: // "RUNNING"
case 8: // "RESUMING_WAREHOUSE"
case 5: // "QUEUED"
case 9: // "QUEUED_REPAIRING_WAREHOUSE"
case 12: // "NO_DATA"
return true;
default:
return false;
}
}
public static boolean isAnError(QueryStatus status) {
switch (status.getValue()) {
case 1: // Aborting
case 3: // Failed with error
case 4: // Aborted
case 6: // Failed with incident
case 7: // disconnected
case 11: // blocked
return true;
default:
return false;
}
}
public static QueryStatus getStatusFromString(String description) {
if (description != null) {
for (QueryStatus st : QueryStatus.values()) {
if (description.equalsIgnoreCase(st.getDescription())) {
return st;
}
}
return QueryStatus.NO_DATA;
}
return null;
}
}