Hi @vitlibar,
In http implementation, ClickHouse will return format of query result in header `X-ClickHouse-Format`. Can we return format in gRPC response as well? This helps client like JDBC driver for deserialization(without the need for parsing the query).
if (io.pipeline.pulling())
        {
            auto executor = std::make_shared<PullingAsyncPipelineExecutor>(io.pipeline);
            auto check_for_cancel = [&]
            {
                if (isQueryCancelled())
                {
                    executor->cancel();
                    return false;
                }
                return true;
            };
            Block block;
            while (check_for_cancel())
            {
                if (!executor->pull(block, interactive_delay / 1000))
                    break;
                throwIfFailedToSendResult();
                if (!check_for_cancel())
                    break;
                if (block && !io.null_format)
                    output_format_processor->write(materializeBlock(block));
                if (after_send_progress.elapsedMicroseconds() >= interactive_delay)
                {
                    addProgressToResult();
                    after_send_progress.restart();
                }
                addLogsToResult();
                if (has_output() || result.has_progress() || result.logs_size())
                    sendResult();