45 lines
1.6 KiB
Go
45 lines
1.6 KiB
Go
package influxql
|
|
|
|
// all of this code is copied more or less verbatim from the influxdb repo.
|
|
// we copy instead of sharing because we want to prevent inadvertent breaking
|
|
// changes introduced by the transpiler vs the actual InfluxQL engine.
|
|
// By copying the code, we'll be able to detect more explicitly that the
|
|
// results generated by the transpiler diverge from InfluxQL.
|
|
|
|
type Response struct {
|
|
Results []Result `json:"results,omitempty"`
|
|
Err string `json:"error,omitempty"`
|
|
}
|
|
|
|
func (r *Response) error(err error) {
|
|
r.Results = nil
|
|
r.Err = err.Error()
|
|
}
|
|
|
|
// Message represents a user-facing message to be included with the result.
|
|
type Message struct {
|
|
Level string `json:"level"`
|
|
Text string `json:"text"`
|
|
}
|
|
|
|
// Result represents a resultset returned from a single statement.
|
|
// Rows represents a list of rows that can be sorted consistently by name/tag.
|
|
type Result struct {
|
|
// StatementID is just the statement's position in the query. It's used
|
|
// to combine statement results if they're being buffered in memory.
|
|
StatementID int `json:"statement_id"`
|
|
Series []*Row `json:"series,omitempty"`
|
|
Messages []*Message `json:"messages,omitempty"`
|
|
Partial bool `json:"partial,omitempty"`
|
|
Err string `json:"error,omitempty"`
|
|
}
|
|
|
|
// Row represents a single row returned from the execution of a statement.
|
|
type Row struct {
|
|
Name string `json:"name,omitempty"`
|
|
Tags map[string]string `json:"tags,omitempty"`
|
|
Columns []string `json:"columns,omitempty"`
|
|
Values [][]interface{} `json:"values,omitempty"`
|
|
Partial bool `json:"partial,omitempty"`
|
|
}
|