4paradigm / 4paradigm/OpenMLDB
feat(ResultSetBuilder): construct `ResultSet` directly from client, support all basic data type
- Lingua principale
- C++
- Stelle
- 1.7k
- Fork
- 331
- Merge medio
- 12g 12h
- PR unite (30g)
- 1
Descrizione
**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
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- database, testing
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100