docs: public boolean hasMessagePending() throws IOException {
      if (pgInput.available() > 0) {
        return true;
      }
      // In certain cases, available returns 0, yet there are bytes
      long now = System.currentTimeMillis();
      if (now < nextStreamAvailableCheckTime && minStreamAvailableCheckDelay != 0) {
        // Do not use ".peek" too often
        return false;
      }
      nextStreamAvailableCheckTime = now + minStreamAvailableCheckDelay;
      int soTimeout = getNetworkTimeout();
      setNetworkTimeout(1);
      try {
        return pgInput.peek() != -1;
      } catch (SocketTimeoutException e) {
        return false;
      } finally {
        setNetworkTimeout(soTimeout);
      }
    }