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{ emptyFrame.SetMeta(&data.FrameMeta{
ExecutedQueryString: query, ExecutedQueryString: query,
}) })
if backend.IsDownstreamError(err) { if isDownstreamError(err) {
source = backend.ErrorSourceDownstream source = backend.ErrorSourceDownstream
} }
queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err) queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err)
@ -646,3 +646,20 @@ func epochPrecisionToMS(value float64) float64 {
return value 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{ emptyFrame.SetMeta(&data.FrameMeta{
ExecutedQueryString: query, ExecutedQueryString: query,
}) })
if backend.IsDownstreamError(err) { if isDownstreamError(err) {
source = backend.ErrorSourceDownstream source = backend.ErrorSourceDownstream
} }
queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err) queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err)
@ -642,3 +642,20 @@ func epochPrecisionToMS(value float64) float64 {
return value 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{ emptyFrame.SetMeta(&data.FrameMeta{
ExecutedQueryString: query, ExecutedQueryString: query,
}) })
if backend.IsDownstreamError(err) { if isDownstreamError(err) {
source = backend.ErrorSourceDownstream source = backend.ErrorSourceDownstream
} }
queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err) queryResult.dataResponse.Error = fmt.Errorf("%s: %w", frameErr, err)
@ -642,3 +642,20 @@ func epochPrecisionToMS(value float64) float64 {
return value 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