4paradigm / 4paradigm/OpenMLDB

feat(ResultSetBuilder): construct `ResultSet` directly from client, support all basic data type

オープン
#1,456 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
call-for-contributions enhancement
主要言語
C++
スター
1.7k
フォーク
331
平均マージ
12日 12時間
マージ済み PR(30日)
1

説明

**Is your feature request related to a problem? Please describe.**

There are three ways to construct a `ResultSet`, https://github.com/4paradigm/OpenMLDB/blob/420398b8349880bce262db06c3b143d023b56862/src/sdk/result_set_sql.h#L45-L56, the first two approach rely on protobuf structures, and the third approach assume all fields as string.

So there is no ease way to construct a `ResultSet` from scratch. E.g. I'd like to construct a `ResultSet` with the schema of `id int, buf string, ts timestamp`, and assert result set data in unit tests.

**Describe the solution you'd like**

TBD

An example (may not accurate):
```cpp
ResultSetBuilder()
.schema(schema)
.data(rows)
.build();
```

**other context**

hybridse's test use `Row` to assert test results: https://github.com/4paradigm/OpenMLDB/blob/420398b8349880bce262db06c3b143d023b56862/hybridse/include/codec/row.h#L36-L38. Let's see if we can reuse few or more

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Review the existing ResultSet constructors in src/sdk/result_set_sql.h and the Row class in hybridse/include/codec/row.h. Understand the schema representation and data types (int, string, timestamp). Design a builder API that can create a ResultSet directly from a schema and rows of data, then implement it in the C++ SDK.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
database, testing
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。