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).
insert_query = ast->as<ASTInsertQuery>();
        if (insert_query)
        {
            input_format = insert_query->format;
            if (input_format.empty())
                input_format = "Values";
        }
        input_data_delimiter = query_info.input_data_delimiter();
        
        query_context->setDefaultFormat(query_info.output_format());
        if (const auto * ast_query_with_output = dynamic_cast<const ASTQueryWithOutput *>(ast.get());
            ast_query_with_output && ast_query_with_output->format)
        {
            output_format = getIdentifierName(ast_query_with_output->format);
        }
        if (output_format.empty())
            output_format = query_context->getDefaultFormat();
        
        String input_compression_method_str = query_info.input_compression_type();
        if (input_compression_method_str.empty())
            input_compression_method_str = query_info.obsolete_compression_type();
        input_compression_method = chooseCompressionMethod("", input_compression_method_str);
        String output_compression_method_str = query_info.output_compression_type();
        if (output_compression_method_str.empty())
            output_compression_method_str = query_info.obsolete_compression_type();
        output_compression_method = chooseCompressionMethod("", output_compression_method_str);
        output_compression_level = query_info.output_compression_level();
        
        query_context->setExternalTablesInitializer([this] (ContextPtr context)
        {