@Override
        public boolean hasNext() {
            try {
                return input.available() > 0;
            } catch (IOException e) {
                throw new UncheckedIOException(e);
            }
        }
Extended input stream for read optimization. Methods like
{@link #readBuffer(int)}, {@link #readByte()}, {@link #readBytes(int)}, and
{@link #readCustom(ClickHouseDataUpdater)} are added to reduce object
creation as well as closing the stream when it reaches end of stream. This
class is also responsible for creating various input stream as needed.
clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseInputStream.java