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).
DB::ErrorCodes::SUPPORT_IS_DISABLED);
#endif
        }
        return grpc::InsecureServerCredentials();
    }
    
    struct TransportCompression
    {
        grpc_compression_algorithm algorithm;
        grpc_compression_level level;
        
        static std::optional<TransportCompression> fromQueryInfo(const GRPCQueryInfo & query_info)
        {
            TransportCompression res;
            if (!query_info.transport_compression_type().empty())
            {
                res.setAlgorithm(query_info.transport_compression_type(), ErrorCodes::INVALID_GRPC_QUERY_INFO);
                res.setLevel(query_info.transport_compression_level(), ErrorCodes::INVALID_GRPC_QUERY_INFO);
                return res;
            }
            if (query_info.has_obsolete_result_compression())
            {
                switch (query_info.obsolete_result_compression().algorithm())
                {
                    case GRPCObsoleteTransportCompression::NO_COMPRESSION: res.algorithm = GRPC_COMPRESS_NONE; break;
                    case GRPCObsoleteTransportCompression::DEFLATE: res.algorithm = GRPC_COMPRESS_DEFLATE; break;
                    case GRPCObsoleteTransportCompression::GZIP: res.algorithm = GRPC_COMPRESS_GZIP; break;
                    case GRPCObsoleteTransportCompression::STREAM_GZIP: res.algorithm = GRPC_COMPRESS_STREAM_GZIP; break;
                    default: throw Exception(ErrorCodes::INVALID_GRPC_QUERY_INFO, "Unknown compression algorithm: {}", GRPCObsoleteTransportCompression::CompressionAlgorithm_Name(query_info.obsolete_result_compression().algorithm()));
                }