kyuubi/externals
Bowen Liang 9047151d8d [KYUUBI #5851] Generalize TRowSet generators
# 🔍 Description
## Issue References 🔗

As described.

## Describe Your Solution 🔧

- Introduced a generalized RowSet generator `AbstractTRowSetGenerator[SchemaT, RowT, ColumnT]`
   - extract common methods for looping and assembling the rows to TRowSet
   - support generation for either column-based or row-based TRowSet
- Each engine creates a sub-generator of  `AbstractTRowSetGenerator`
   - focus on mapping and conversion from the engine's data type to the relative Thrift type
   - implements the schema data type and column value methods
   - create a generator instance instead of the previously used `RowSet` object, for isolated session-aware or thread-aware configs or context, eg. Timezone ID for Flink, and the Hive time formatters for Spark.
- This PR covers the TRowSet generation for the server and the engines of Spark/Flink/Trino/Chat, except the JDBC engine which will be supported in the follow-ups with JDBC dialect support.

## Types of changes 🔖

- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)

## Test Plan 🧪

#### Behavior Without This Pull Request ⚰️
No behavior changes.

#### Behavior With This Pull Request 🎉
No behavior changes.

#### Related Unit Tests
CI tests.

---

# Checklists
## 📝 Author Self Checklist

- [x] My code follows the [style guidelines](https://kyuubi.readthedocs.io/en/master/contributing/code/style.html) of this project
- [x] I have performed a self-review
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [x] New and existing unit tests pass locally with my changes
- [x] This patch was not authored or co-authored using [Generative Tooling](https://www.apache.org/legal/generative-tooling.html)

## 📝 Committer Pre-Merge Checklist

- [ ] Pull request title is okay.
- [ ] No license issues.
- [ ] Milestone correctly set?
- [ ] Test coverage is ok
- [ ] Assignees are selected.
- [ ] Minimum number of approvals
- [ ] No changes are requested

**Be nice. Be informative.**

Closes #5851 from bowenliang123/rowset-gen.

Closes #5851

1d2f73ab4 [Bowen Liang] common RowSetGenerator

Authored-by: Bowen Liang <liangbowen@gf.com.cn>
Signed-off-by: Bowen Liang <liangbowen@gf.com.cn>
2023-12-15 17:44:07 +08:00
..
kyuubi-chat-engine [KYUUBI #5851] Generalize TRowSet generators 2023-12-15 17:44:07 +08:00
kyuubi-download Bump 1.9.0-SNAPSHOT 2023-09-04 14:23:12 +08:00
kyuubi-flink-sql-engine [KYUUBI #5851] Generalize TRowSet generators 2023-12-15 17:44:07 +08:00
kyuubi-hive-sql-engine [KYUUBI #5783] Switch to kyuubi-relocated-hive-service-rpc 2023-12-07 19:55:10 +08:00
kyuubi-jdbc-engine [KYUUBI #5783] Switch to kyuubi-relocated-hive-service-rpc 2023-12-07 19:55:10 +08:00
kyuubi-spark-sql-engine [KYUUBI #5851] Generalize TRowSet generators 2023-12-15 17:44:07 +08:00
kyuubi-trino-engine [KYUUBI #5851] Generalize TRowSet generators 2023-12-15 17:44:07 +08:00