From 70e926697775f0bb42843cccf7a49c68018a5218 Mon Sep 17 00:00:00 2001
From: Yee <2520865+yixinglu@users.noreply.github.com>
Date: Mon, 11 Jan 2021 18:32:53 +0800
Subject: [PATCH] Improve project explained columns format and Fix compile
 errors (#583)

* Fix project explain string format

* Fix compile error

* Restore include headers

* Address comment
---
 src/context/test/CMakeLists.txt   |  1 +
 src/executor/test/CMakeLists.txt  |  1 +
 src/optimizer/test/CMakeLists.txt |  1 +
 src/parser/test/CMakeLists.txt    |  1 +
 src/planner/Query.cpp             | 10 +++++++++-
 src/util/test/CMakeLists.txt      |  1 +
 src/validator/test/CMakeLists.txt |  1 +
 src/visitor/test/CMakeLists.txt   |  1 +
 8 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/context/test/CMakeLists.txt b/src/context/test/CMakeLists.txt
index ab775c1d..3246fe02 100644
--- a/src/context/test/CMakeLists.txt
+++ b/src/context/test/CMakeLists.txt
@@ -27,6 +27,7 @@ SET(CONTEXT_TEST_LIBS
     $<TARGET_OBJECTS:common_time_utils_obj>
     $<TARGET_OBJECTS:common_graph_obj>
     $<TARGET_OBJECTS:common_ft_es_graph_adapter_obj>
+    $<TARGET_OBJECTS:common_ws_common_obj>
     $<TARGET_OBJECTS:util_obj>
     $<TARGET_OBJECTS:context_obj>
     $<TARGET_OBJECTS:expr_visitor_obj>
diff --git a/src/executor/test/CMakeLists.txt b/src/executor/test/CMakeLists.txt
index f2b17693..8eedd7e6 100644
--- a/src/executor/test/CMakeLists.txt
+++ b/src/executor/test/CMakeLists.txt
@@ -31,6 +31,7 @@ SET(EXEC_QUERY_TEST_OBJS
     $<TARGET_OBJECTS:common_http_client_obj>
     $<TARGET_OBJECTS:common_time_utils_obj>
     $<TARGET_OBJECTS:common_ft_es_graph_adapter_obj>
+    $<TARGET_OBJECTS:common_ws_common_obj>
     $<TARGET_OBJECTS:session_obj>
     $<TARGET_OBJECTS:graph_flags_obj>
     $<TARGET_OBJECTS:parser_obj>
diff --git a/src/optimizer/test/CMakeLists.txt b/src/optimizer/test/CMakeLists.txt
index ba3c961f..c58b2da6 100644
--- a/src/optimizer/test/CMakeLists.txt
+++ b/src/optimizer/test/CMakeLists.txt
@@ -29,6 +29,7 @@ set(OPTIMIZER_TEST_LIB
     $<TARGET_OBJECTS:common_time_utils_obj>
     $<TARGET_OBJECTS:common_graph_obj>
     $<TARGET_OBJECTS:common_ft_es_graph_adapter_obj>
+    $<TARGET_OBJECTS:common_ws_common_obj>
     $<TARGET_OBJECTS:idgenerator_obj>
     $<TARGET_OBJECTS:expr_visitor_obj>
     $<TARGET_OBJECTS:session_obj>
diff --git a/src/parser/test/CMakeLists.txt b/src/parser/test/CMakeLists.txt
index 7eba4edd..bf0da493 100644
--- a/src/parser/test/CMakeLists.txt
+++ b/src/parser/test/CMakeLists.txt
@@ -29,6 +29,7 @@ set(PARSER_TEST_LIBS
     $<TARGET_OBJECTS:common_process_obj>
     $<TARGET_OBJECTS:common_time_utils_obj>
     $<TARGET_OBJECTS:common_ft_es_graph_adapter_obj>
+    $<TARGET_OBJECTS:common_ws_common_obj>
     $<TARGET_OBJECTS:session_obj>
     $<TARGET_OBJECTS:graph_flags_obj>
     $<TARGET_OBJECTS:graph_auth_obj>
diff --git a/src/planner/Query.cpp b/src/planner/Query.cpp
index 713d752d..27c66dd7 100644
--- a/src/planner/Query.cpp
+++ b/src/planner/Query.cpp
@@ -7,6 +7,7 @@
 #include "planner/Query.h"
 
 #include <folly/String.h>
+#include <folly/dynamic.h>
 #include <folly/json.h>
 
 #include "util/ToJson.h"
@@ -153,7 +154,14 @@ void Project::clone(const Project &p) {
 
 std::unique_ptr<PlanNodeDescription> Project::explain() const {
     auto desc = SingleInputNode::explain();
-    addDescription("columns", cols_ ? cols_->toString() : "", desc.get());
+    auto columns = folly::dynamic::array();
+    if (cols_) {
+        for (const auto* col : cols_->columns()) {
+            DCHECK(col != nullptr);
+            columns.push_back(col->toString());
+        }
+    }
+    addDescription("columns", folly::toJson(columns), desc.get());
     return desc;
 }
 
diff --git a/src/util/test/CMakeLists.txt b/src/util/test/CMakeLists.txt
index d71c6c17..6cc021d5 100644
--- a/src/util/test/CMakeLists.txt
+++ b/src/util/test/CMakeLists.txt
@@ -29,6 +29,7 @@ nebula_add_test(
         $<TARGET_OBJECTS:common_time_utils_obj>
         $<TARGET_OBJECTS:common_graph_obj>
         $<TARGET_OBJECTS:common_ft_es_graph_adapter_obj>
+        $<TARGET_OBJECTS:common_ws_common_obj>
         $<TARGET_OBJECTS:idgenerator_obj>
         $<TARGET_OBJECTS:expr_visitor_obj>
         $<TARGET_OBJECTS:session_obj>
diff --git a/src/validator/test/CMakeLists.txt b/src/validator/test/CMakeLists.txt
index 243bff73..51dc4be1 100644
--- a/src/validator/test/CMakeLists.txt
+++ b/src/validator/test/CMakeLists.txt
@@ -48,6 +48,7 @@ set(VALIDATOR_TEST_LIBS
     $<TARGET_OBJECTS:common_time_utils_obj>
     $<TARGET_OBJECTS:common_graph_obj>
     $<TARGET_OBJECTS:common_ft_es_graph_adapter_obj>
+    $<TARGET_OBJECTS:common_ws_common_obj>
 )
 
 nebula_add_test(
diff --git a/src/visitor/test/CMakeLists.txt b/src/visitor/test/CMakeLists.txt
index 231eb9b8..cb009d78 100644
--- a/src/visitor/test/CMakeLists.txt
+++ b/src/visitor/test/CMakeLists.txt
@@ -49,6 +49,7 @@ nebula_add_test(
         $<TARGET_OBJECTS:common_time_utils_obj>
         $<TARGET_OBJECTS:common_graph_obj>
         $<TARGET_OBJECTS:common_ft_es_graph_adapter_obj>
+        $<TARGET_OBJECTS:common_ws_common_obj>
     LIBRARIES
         gtest
         ${THRIFT_LIBRARIES}
-- 
GitLab