Getting some thoughts down...
-
Goals
- Main Goal: go-mysql-server end-to-end inside SSE over completion for discovery, supporting some subset of cases of combining other datasources
- Run go-mysql-server without "server"
- Use SDK for response
- Integrate with SSE quickly (hack over duckdb code?)
-
Fow now, use
memory
- Create DB
- Create Table for each frame, insert by row for now
- Use Todd's example to avoid creating the server: https://github.com/toddtreece/dashboard-search-test
-
Response
- I imagine we can use sql util in the grafana-plugin-sdk-go (https://github.com/grafana/grafana-plugin-sdk-go/tree/main/data/sqlutil) grafana/sqlds to convert the response from go-mysql-server to dataframes
- Misc
- Since we have access to the SQL parser, we should be able to get the NeedsVars by parsing the "tables" from the query during pre execution
- Interoperability with Grafana Platform: Alerting, Other SSE, Recorded Queries, Viz
- Dataplane Types
- We want a drop down that asserts the Dataplane response data "kind" (A type is Kind+Format, but since this is SQLish, we will be working with the Long Formats for each kind)
- Options (Might be better names)
- Time Series
- Numeric
- Raw (Default)
- We want a drop down that asserts the Dataplane response data "kind" (A type is Kind+Format, but since this is SQLish, we will be working with the Long Formats for each kind)
- Dataplane Types
- Integration with other SSE operations
- Big picture SSE should be revisited so each operation can work on dataplane formats without changing the format (This gets a bit complicated design wise - e.g. A + B where A and B are different formats, what format should output be?)
- For now it will probably be reformated into the "Multi" formats when it is going to alerting or other SSE operations
- Misc Improvements
- Explore creating a go-mysql-server backend instead of insertion by row (Reference: Tom's hackathon using go-mysql-server lib to use SQL to query prometheus https://github.com/grafana/transmog/pull/625/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5)