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


##########
be/src/vec/exec/vjdbc_connector.cpp:
##########
@@ -301,6 +321,118 @@ Status JdbcConnector::_convert_column_data(JNIEnv* env, 
jobject jobj,
     return Status::OK();
 }
 
+Status JdbcConnector::append(const std::string& table_name, vectorized::Block* 
block,
+                             const std::vector<vectorized::VExprContext*>& 
_output_vexpr_ctxs,
+                             uint32_t start_send_row, uint32_t* num_rows_sent) 
{
+    _insert_stmt_buffer.clear();
+    std::u16string insert_stmt;
+    {
+        SCOPED_TIMER(_convert_tuple_timer);
+        fmt::format_to(_insert_stmt_buffer, "INSERT INTO {} VALUES (", 
table_name);
+
+        int num_rows = block->rows();
+        int num_columns = block->columns();
+        for (int i = start_send_row; i < num_rows; ++i) {
+            (*num_rows_sent)++;
+
+            // Construct insert statement of jdbc table
+            for (int j = 0; j < num_columns; ++j) {
+                if (j != 0) {
+                    fmt::format_to(_insert_stmt_buffer, "{}", ", ");
+                }
+                auto [item, size] = 
block->get_by_position(j).column->get_data_at(i);
+                if (item == nullptr) {
+                    fmt::format_to(_insert_stmt_buffer, "{}", "NULL");
+                    continue;
+                }
+                switch (_output_vexpr_ctxs[j]->root()->type().type) {
+                case TYPE_BOOLEAN:
+                case TYPE_TINYINT:
+                    fmt::format_to(_insert_stmt_buffer, "{}",
+                                   *reinterpret_cast<const int8_t*>(item));
+                    break;
+                case TYPE_SMALLINT:
+                    fmt::format_to(_insert_stmt_buffer, "{}",
+                                   *reinterpret_cast<const int16_t*>(item));
+                    break;
+                case TYPE_INT:
+                    fmt::format_to(_insert_stmt_buffer, "{}",
+                                   *reinterpret_cast<const int32_t*>(item));
+                    break;
+                case TYPE_BIGINT:
+                    fmt::format_to(_insert_stmt_buffer, "{}",
+                                   *reinterpret_cast<const int64_t*>(item));
+                    break;
+                case TYPE_FLOAT:
+                    fmt::format_to(_insert_stmt_buffer, "{}",
+                                   *reinterpret_cast<const float*>(item));
+                    break;
+                case TYPE_DOUBLE:
+                    fmt::format_to(_insert_stmt_buffer, "{}",
+                                   *reinterpret_cast<const double*>(item));
+                    break;
+                case TYPE_DATE:

Review Comment:
   support `NEW_DATE/NEW_DECIMAL`



##########
be/src/vec/exec/vjdbc_connector.cpp:
##########
@@ -301,6 +321,118 @@ Status JdbcConnector::_convert_column_data(JNIEnv* env, 
jobject jobj,
     return Status::OK();
 }
 
+Status JdbcConnector::append(const std::string& table_name, vectorized::Block* 
block,
+                             const std::vector<vectorized::VExprContext*>& 
_output_vexpr_ctxs,
+                             uint32_t start_send_row, uint32_t* num_rows_sent) 
{
+    _insert_stmt_buffer.clear();
+    std::u16string insert_stmt;

Review Comment:
   this code should be ABTRUCT in a single class



-- 
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