public ClickHouseOutputStream newOutputStream(int bufferSize, Runnable postCloseAction) {
        return output != null
                ? ClickHouseOutputStream.wrap(this, output, bufferSize, ClickHouseCompression.NONE,
                        compressionLevel, postCloseAction)
                : ClickHouseOutputStream.empty();
    }
Creates a wrapped output stream for writing. Calling this method multiple
times will generate multiple {@link ClickHouseOutputStream} instances, so it
does not make sense to call this more than once. Unlike
{@link #getOutputStream()}, the returned
output stream is associated with this pass-thru stream, so
{@code newOutputStream(...).getUnderlyingStream()} simply returns the current
pass-thru stream.

@param bufferSize      buffer size which is always greater than zero(usually
                       4096 or larger)
@param postCloseAction custom action will be performed right after closing
                       the output stream
@return non-null wrapped output stream
clickhouse-data/src/main/java/com/clickhouse/data/ClickHousePassThruStream.java