Hi all,
This email summarizes the recent work to improve Apache IoTDB table-model SQL support in Nightingale. The work is tracked in the following issue and pull requests: - Issue: https://github.com/ccfos/nightingale/issues/3374 - Backend PR: https://github.com/ccfos/nightingale/pull/3375 - Frontend PR: https://github.com/n9e/fe/pull/2307 **Background** Nightingale previously executed IoTDB table-model SQL queries through the REST API. This approach does not reuse native IoTDB sessions and does not handle the session-level database state expected by table-model SQL. **Native RPC Query Execution** The backend now executes table-model SQL through `github.com/apache/iotdb-client-go/v2` using a shared `TableSessionPool`. It supports both a datasource-level default database and per-query database selection. The datasource Save & Test operation also uses the native RPC connection. REST continues to be used for metadata operations such as listing databases, listing tables, and describing table schemas. **Frontend Support** The frontend adds datasource settings for the RPC address, default database, connection timeout, and query timeout. Dashboard, Query Explorer, and alert rule queries can specify their own database when they need to override the datasource default. **Compatibility** Existing IoTDB dashboards and queries remain supported, including query payloads that use the legacy `metricKey` field. This change only affects table-model SQL query execution; metadata operations continue to use REST. Best regards, Xinqi Zhao
