use of com.facebook.presto.verifier.event.VerifierQueryEvent in project presto by prestodb.
the class AbstractVerification method concludeVerification.
private VerificationResult concludeVerification(PartialVerificationResult partialResult, Optional<B> control, Optional<B> test, Optional<QueryResult<V>> controlQueryResult, Optional<QueryResult<V>> testQueryResult, QueryContext controlQueryContext, QueryContext testQueryContext, Optional<R> matchResult, ChecksumQueryContext controlChecksumQueryContext, ChecksumQueryContext testChecksumQueryContext, Optional<DeterminismAnalysisDetails> determinismAnalysisDetails, Optional<Throwable> throwable) {
Optional<String> errorCode = Optional.empty();
Optional<String> errorMessage = Optional.empty();
if (partialResult.getStatus() != SUCCEEDED) {
errorCode = Optional.ofNullable(throwable.map(t -> t instanceof QueryException ? ((QueryException) t).getErrorCodeName() : INTERNAL_ERROR).orElse(matchResult.map(MatchResult::getMatchTypeName).orElse(null)));
errorMessage = Optional.of(constructErrorMessage(throwable, matchResult, controlQueryContext.getState(), testQueryContext.getState()));
}
VerifierQueryEvent event = new VerifierQueryEvent(sourceQuery.getSuite(), testId, sourceQuery.getName(), partialResult.getStatus(), matchResult.map(MatchResult::getMatchTypeName), partialResult.getSkippedReason(), determinismAnalysisDetails, partialResult.getResolveMessage(), skipControl ? Optional.empty() : Optional.of(buildQueryInfo(sourceQuery.getControlConfiguration(), sourceQuery.getQuery(CONTROL), controlChecksumQueryContext, control, controlQueryContext, controlQueryResult)), buildQueryInfo(sourceQuery.getTestConfiguration(), sourceQuery.getQuery(TEST), testChecksumQueryContext, test, testQueryContext, testQueryResult), errorCode, errorMessage, throwable.filter(QueryException.class::isInstance).map(QueryException.class::cast).map(QueryException::toQueryFailure), verificationContext.getQueryFailures(), verificationContext.getResubmissionCount());
return new VerificationResult(this, false, Optional.of(event));
}
Aggregations