func()

in phoenix/phoenix.go [118:147]


func (a Adapter) ErrorResponseToResponseError(err *message.ErrorResponse) errors.ResponseError {
	var (
		errorCode int
		sqlState  string
	)

	re := regexp.MustCompile(`ERROR (\d+) \(([0-9a-zA-Z]+)\)`)
	codes := re.FindStringSubmatch(err.GetErrorMessage())

	if len(codes) > 1 {
		errorCode, _ = strconv.Atoi(codes[1])
	}

	if len(codes) > 2 {
		sqlState = codes[2]
	}

	return errors.ResponseError{
		Exceptions:   err.GetExceptions(),
		ErrorMessage: err.GetErrorMessage(),
		Severity:     int8(err.GetSeverity()),
		ErrorCode:    errors.ErrorCode(errorCode),
		SqlState:     errors.SQLState(sqlState),
		Metadata: &errors.RPCMetadata{
			ServerAddress: message.ServerAddressFromMetadata(err),
		},
		Name: errorCodeNames[uint32(errorCode)],
	}

}