SQL Engine: Handle one session to connect the DB (#63246)

fix(postgresql): Handle one session to the DB
pull/64475/head
Pepe Fagoaga 3 years ago committed by GitHub
parent 5fdf1f4862
commit fa0f640d6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      pkg/tsdb/sqleng/sql_engine.go

@ -97,7 +97,9 @@ type DataSourceHandler struct {
log log.Logger
dsInfo DataSourceInfo
rowLimit int64
session *xorm.Session
}
type QueryJson struct {
RawSql string `json:"rawSql"`
Fill bool `json:"fill"`
@ -145,6 +147,7 @@ func NewQueryDataHandler(config DataPluginConfiguration, queryResultTransformer
queryDataHandler.metricColumnTypes = config.MetricColumnTypes
}
// Create the xorm engine
engine, err := NewXormEngine(config.DriverName, config.ConnectionString)
if err != nil {
return nil, err
@ -155,6 +158,11 @@ func NewQueryDataHandler(config DataPluginConfiguration, queryResultTransformer
engine.SetConnMaxLifetime(time.Duration(config.DSInfo.JsonData.ConnMaxLifetime) * time.Second)
queryDataHandler.engine = engine
// Create the xorm session
session := engine.NewSession()
queryDataHandler.session = session
return &queryDataHandler, nil
}
@ -265,9 +273,7 @@ func (e *DataSourceHandler) executeQuery(query backend.DataQuery, wg *sync.WaitG
return
}
session := e.engine.NewSession()
defer session.Close()
db := session.DB()
db := e.session.DB()
rows, err := db.QueryContext(queryContext, interpolatedQuery)
if err != nil {

Loading…
Cancel
Save