HappenLee commented on code in PR #33904:
URL: https://github.com/apache/doris/pull/33904#discussion_r1576167062


##########
be/src/vec/exprs/table_function/vexplode_json_array.h:
##########
@@ -19,85 +19,231 @@
 
 #include <glog/logging.h>
 #include <rapidjson/document.h>
-#include <stddef.h>
-#include <stdint.h>
 
 #include <ostream>
 #include <string>
 #include <vector>
 
 #include "common/status.h"
 #include "gutil/integral_types.h"
+#include "rapidjson/stringbuffer.h"
+#include "rapidjson/writer.h"
 #include "vec/common/string_ref.h"
+#include "vec/core/types.h"
 #include "vec/data_types/data_type.h"
 #include "vec/exprs/table_function/table_function.h"
 
-namespace doris {
-namespace vectorized {
-class Block;
-} // namespace vectorized
-} // namespace doris
-
 namespace doris::vectorized {
 
-enum ExplodeJsonArrayType { INT = 0, DOUBLE, STRING, JSON };
-
+template <typename T>
 struct ParsedData {
-    static std::string true_value;
-    static std::string false_value;
+    ParsedData() = default;
+    virtual ~ParsedData() = default;
+    virtual void reset() = 0;
+    virtual int set_output(rapidjson::Document& document, int value_size) = 0;
+    virtual void insert_result_from_parsed_data(MutableColumnPtr& column, int 
max_step,
+                                                int64_t cur_offset) = 0;
+    const char* get_null_flag_address(int cur_offset) {
+        return reinterpret_cast<const char*>(_values_null_flag.data() + 
cur_offset);
+    }
+    std::vector<UInt8> _values_null_flag;
+};
 
-    // The number parsed from json array
-    // the `_backup` saved the real number entity.
-    std::vector<void*> _data;
-    std::vector<StringRef> _data_string;
+struct ParsedDataInt : public ParsedData<int64_t> {
+    static auto constexpr max_value = std::numeric_limits<int64_t>::max(); 
//9223372036854775807

Review Comment:
   MAX_VALUE constexpr



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to