SQL data sources: Use correct error source for sql processing errors (#100872)

* SQL data sources: Use correct error source for sql processing errors

* Fix lint

* Fix  cyclomatic complexity

* Nit rename variable to make it more clear what those errors are
pull/100887/head
Ivana Huckova 3 months ago committed by GitHub
parent 08000eeece
commit 67d8610e31
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 19
      pkg/tsdb/grafana-postgresql-datasource/sqleng/sql_engine.go
  2. 19
      pkg/tsdb/mssql/sqleng/sql_engine.go
  3. 19
      pkg/tsdb/mysql/sqleng/sql_engine.go

@ -235,7 +235,7 @@ func (e *DataSourceHandler) executeQuery(query backend.DataQuery, wg *sync.WaitG
emptyFrame.SetMeta(&data.FrameMeta{
ExecutedQueryString: query,
})
if backend.IsDownstreamError(err) {
if isDownstreamError(err) {
source = backend.ErrorSourceDownstream
}
queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err)
@ -646,3 +646,20 @@ func epochPrecisionToMS(value float64) float64 {
return value
}
func isDownstreamError(err error) bool {
if backend.IsDownstreamError(err) {
return true
}
resultProcessingDownstreamErrors := []error{
data.ErrorInputFieldsWithoutRows,
data.ErrorSeriesUnsorted,
data.ErrorNullTimeValues,
}
for _, e := range resultProcessingDownstreamErrors {
if errors.Is(err, e) {
return true
}
}
return false
}

@ -231,7 +231,7 @@ func (e *DataSourceHandler) executeQuery(query backend.DataQuery, wg *sync.WaitG
emptyFrame.SetMeta(&data.FrameMeta{
ExecutedQueryString: query,
})
if backend.IsDownstreamError(err) {
if isDownstreamError(err) {
source = backend.ErrorSourceDownstream
}
queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err)
@ -642,3 +642,20 @@ func epochPrecisionToMS(value float64) float64 {
return value
}
func isDownstreamError(err error) bool {
if backend.IsDownstreamError(err) {
return true
}
resultProcessingDownstreamErrors := []error{
data.ErrorInputFieldsWithoutRows,
data.ErrorSeriesUnsorted,
data.ErrorNullTimeValues,
}
for _, e := range resultProcessingDownstreamErrors {
if errors.Is(err, e) {
return true
}
}
return false
}

@ -231,7 +231,7 @@ func (e *DataSourceHandler) executeQuery(query backend.DataQuery, wg *sync.WaitG
emptyFrame.SetMeta(&data.FrameMeta{
ExecutedQueryString: query,
})
if backend.IsDownstreamError(err) {
if isDownstreamError(err) {
source = backend.ErrorSourceDownstream
}
queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err)
@ -642,3 +642,20 @@ func epochPrecisionToMS(value float64) float64 {
return value
}
func isDownstreamError(err error) bool {
if backend.IsDownstreamError(err) {
return true
}
resultProcessingDownstreamErrors := []error{
data.ErrorInputFieldsWithoutRows,
data.ErrorSeriesUnsorted,
data.ErrorNullTimeValues,
}
for _, e := range resultProcessingDownstreamErrors {
if errors.Is(err, e) {
return true
}
}
return false
}

Loading…
Cancel
Save