LibraryPanels: Rewrite invalid connection deletion query to be MySQL-friendly (#53460) (#53469)

Closes #53456

(cherry picked from commit f4a5e034b3)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
This commit is contained in:
Grot (@grafanabot)
2022-08-09 15:37:17 +01:00
committed by GitHub
co-authored by kay delaney
parent 7682ecd285
commit 6d8a345f4c
+7 -2
View File
@@ -28,7 +28,12 @@ SELECT DISTINCT
, (SELECT COUNT(connection_id) FROM ` + models.LibraryElementConnectionTableName + ` WHERE element_id = le.id AND kind=1) AS connected_dashboards`
)
const deleteInvalidConnections = "DELETE FROM library_element_connection WHERE connection_id IN (SELECT connection_id as id FROM library_element_connection WHERE element_id=? EXCEPT SELECT id from dashboard)"
const deleteInvalidConnections = `
DELETE FROM library_element_connection
WHERE connection_id IN (
SELECT connection_id as id FROM library_element_connection
WHERE element_id=? AND connection_id NOT IN (SELECT id as connection_id from dashboard)
)`
func getFromLibraryElementDTOWithMeta(dialect migrator.Dialect) string {
user := dialect.Quote("user")
@@ -591,7 +596,7 @@ func (l *LibraryElementService) getConnections(c context.Context, signedInUser *
return connections, err
}
//getElementsForDashboardID gets all elements for a specific dashboard
// getElementsForDashboardID gets all elements for a specific dashboard
func (l *LibraryElementService) getElementsForDashboardID(c context.Context, dashboardID int64) (map[string]LibraryElementDTO, error) {
libraryElementMap := make(map[string]LibraryElementDTO)
err := l.SQLStore.WithDbSession(c, func(session *sqlstore.DBSession) error {