mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
SQLTemplate: Make Ident only work for identifiers (not any string) (#92387)
This commit is contained in:
parent
437747f250
commit
5a30e12a10
@ -9,7 +9,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate/mocks"
|
||||
)
|
||||
|
||||
func TestQueries(t *testing.T) {
|
||||
func TestDashboardQueries(t *testing.T) {
|
||||
// prefix tables with grafana
|
||||
nodb := &legacysql.LegacyDatabaseHelper{
|
||||
Table: func(n string) string {
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM `grafana`.`dashboard` as dashboard
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
ORDER BY dashboard.id DESC
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM `grafana`.`dashboard` as dashboard
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.id > 22
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM `grafana`.`dashboard` as dashboard
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
|
@ -9,11 +9,11 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard_version.created, updated_user.uid as updated_by,updated_user.id as created_by_id,
|
||||
dashboard_version.version, dashboard_version.message, dashboard_version.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM `grafana`.`dashboard` as dashboard
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_version` as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard_version.version = 3
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM `grafana`.`dashboard` as dashboard
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM `grafana`.`library_element` as p
|
||||
LEFT OUTER JOIN `grafana`.`user` AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
AND p.uid = 'xyz'
|
||||
ORDER BY p.id DESC
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM `grafana`.`library_element` as p
|
||||
LEFT OUTER JOIN `grafana`.`user` AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
ORDER BY p.id DESC
|
||||
LIMIT 5
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM `grafana`.`library_element` as p
|
||||
LEFT OUTER JOIN `grafana`.`user` AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
AND p.id > 4
|
||||
ORDER BY p.id DESC
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
ORDER BY dashboard.id DESC
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.id > 22
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
|
@ -9,11 +9,11 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard_version.created, updated_user.uid as updated_by,updated_user.id as created_by_id,
|
||||
dashboard_version.version, dashboard_version.message, dashboard_version.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard_version.version = 3
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM "grafana"."library_element" as p
|
||||
LEFT OUTER JOIN "grafana"."user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
AND p.uid = 'xyz'
|
||||
ORDER BY p.id DESC
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM "grafana"."library_element" as p
|
||||
LEFT OUTER JOIN "grafana"."user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
ORDER BY p.id DESC
|
||||
LIMIT 5
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM "grafana"."library_element" as p
|
||||
LEFT OUTER JOIN "grafana"."user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
AND p.id > 4
|
||||
ORDER BY p.id DESC
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
ORDER BY dashboard.id DESC
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.id > 22
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
|
@ -9,11 +9,11 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard_version.created, updated_user.uid as updated_by,updated_user.id as created_by_id,
|
||||
dashboard_version.version, dashboard_version.message, dashboard_version.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard_version.version = 3
|
||||
|
@ -9,10 +9,10 @@ SELECT
|
||||
dashboard.created, created_user.uid as created_by, dashboard.created_by as created_by_id,
|
||||
dashboard.updated, updated_user.uid as updated_by, dashboard.updated_by as updated_by_id,
|
||||
dashboard.version, '' as message, dashboard.data
|
||||
FROM "grafana.dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana.dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana.user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard.updated_by = updated_user.id
|
||||
WHERE dashboard.is_folder = false
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM "grafana"."library_element" as p
|
||||
LEFT OUTER JOIN "grafana"."user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
AND p.uid = 'xyz'
|
||||
ORDER BY p.id DESC
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM "grafana"."library_element" as p
|
||||
LEFT OUTER JOIN "grafana"."user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
ORDER BY p.id DESC
|
||||
LIMIT 5
|
||||
|
@ -2,9 +2,9 @@ SELECT p.id, p.uid, p.folder_uid,
|
||||
p.created, created_user.uid as created_by,
|
||||
p.updated, updated_user.uid as updated_by,
|
||||
p.name, p.type, p.description, p.model
|
||||
FROM "grafana.library_element" as p
|
||||
LEFT OUTER JOIN "grafana.user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana.user" AS updated_user ON p.updated_by = updated_user.id
|
||||
FROM "grafana"."library_element" as p
|
||||
LEFT OUTER JOIN "grafana"."user" AS created_user ON p.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" AS updated_user ON p.updated_by = updated_user.id
|
||||
WHERE p.org_id = 1
|
||||
AND p.id > 4
|
||||
ORDER BY p.id DESC
|
||||
|
@ -9,7 +9,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate/mocks"
|
||||
)
|
||||
|
||||
func TestQueries(t *testing.T) {
|
||||
func TestIdentityQueries(t *testing.T) {
|
||||
// prefix tables with grafana
|
||||
nodb := &legacysql.LegacyDatabaseHelper{
|
||||
Table: func(n string) string {
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM `grafana`.`user` as u JOIN `grafana`.`org_user` as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR u.id IN (1, 2)
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM `grafana`.`user` as u JOIN `grafana`.`org_user` as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR uid IN ('a', 'b')
|
||||
OR u.id IN (1, 2)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM `grafana`.`user` as u JOIN `grafana`.`org_user` as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR uid IN ('a', 'b')
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM `grafana`.`team_member` tm
|
||||
INNER JOIN `grafana`.`team` t ON tm.team_id = t.id
|
||||
INNER JOIN `grafana`.`user` u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid = 'team-1'
|
||||
AND tm.org_id = 1
|
||||
|
@ -1,10 +1,10 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM `grafana`.`team_member` tm
|
||||
INNER JOIN `grafana`.`team` t ON tm.team_id = t.id
|
||||
INNER JOIN `grafana`.`user` u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid IN(
|
||||
SELECT uid
|
||||
FROM "grafana.team" t
|
||||
FROM `grafana`.`team` t
|
||||
ORDER BY t.id ASC LIMIT 5
|
||||
)
|
||||
AND tm.org_id = 1
|
||||
|
@ -1,10 +1,10 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM `grafana`.`team_member` tm
|
||||
INNER JOIN `grafana`.`team` t ON tm.team_id = t.id
|
||||
INNER JOIN `grafana`.`user` u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid IN(
|
||||
SELECT uid
|
||||
FROM "grafana.team" t
|
||||
FROM `grafana`.`team` t
|
||||
WHERE t.id >= 5
|
||||
ORDER BY t.id ASC LIMIT 5
|
||||
)
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM `grafana`.`team`
|
||||
WHERE org_id = 0
|
||||
ORDER BY id asc
|
||||
LIMIT 5
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM `grafana`.`team`
|
||||
WHERE org_id = 0
|
||||
AND id > 1
|
||||
ORDER BY id asc
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM `grafana`.`team`
|
||||
WHERE org_id = 0
|
||||
AND uid = 'abc'
|
||||
ORDER BY id asc
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM `grafana`.`user` as u JOIN `grafana`.`org_user` as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
ORDER BY u.id asc
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM `grafana`.`user` as u JOIN `grafana`.`org_user` as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
AND id > 1
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM `grafana`.`user` as u JOIN `grafana`.`org_user` as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
AND uid = 'abc'
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR u.id IN (1, 2)
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR uid IN ('a', 'b')
|
||||
OR u.id IN (1, 2)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR uid IN ('a', 'b')
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana"."team_member" tm
|
||||
INNER JOIN "grafana"."team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana"."user" u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid = 'team-1'
|
||||
AND tm.org_id = 1
|
||||
|
@ -1,10 +1,10 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana"."team_member" tm
|
||||
INNER JOIN "grafana"."team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana"."user" u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid IN(
|
||||
SELECT uid
|
||||
FROM "grafana.team" t
|
||||
FROM "grafana"."team" t
|
||||
ORDER BY t.id ASC LIMIT 5
|
||||
)
|
||||
AND tm.org_id = 1
|
||||
|
@ -1,10 +1,10 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana"."team_member" tm
|
||||
INNER JOIN "grafana"."team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana"."user" u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid IN(
|
||||
SELECT uid
|
||||
FROM "grafana.team" t
|
||||
FROM "grafana"."team" t
|
||||
WHERE t.id >= 5
|
||||
ORDER BY t.id ASC LIMIT 5
|
||||
)
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM "grafana"."team"
|
||||
WHERE org_id = 0
|
||||
ORDER BY id asc
|
||||
LIMIT 5
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM "grafana"."team"
|
||||
WHERE org_id = 0
|
||||
AND id > 1
|
||||
ORDER BY id asc
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM "grafana"."team"
|
||||
WHERE org_id = 0
|
||||
AND uid = 'abc'
|
||||
ORDER BY id asc
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
ORDER BY u.id asc
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
AND id > 1
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
AND uid = 'abc'
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR u.id IN (1, 2)
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR uid IN ('a', 'b')
|
||||
OR u.id IN (1, 2)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 2 AND ( 1=2
|
||||
OR uid IN ('a', 'b')
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana"."team_member" tm
|
||||
INNER JOIN "grafana"."team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana"."user" u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid = 'team-1'
|
||||
AND tm.org_id = 1
|
||||
|
@ -1,10 +1,10 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana"."team_member" tm
|
||||
INNER JOIN "grafana"."team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana"."user" u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid IN(
|
||||
SELECT uid
|
||||
FROM "grafana.team" t
|
||||
FROM "grafana"."team" t
|
||||
ORDER BY t.id ASC LIMIT 5
|
||||
)
|
||||
AND tm.org_id = 1
|
||||
|
@ -1,10 +1,10 @@
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana.team_member" tm
|
||||
INNER JOIN "grafana.team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana.user" u ON tm.user_id = u.id
|
||||
SELECT tm.id as id, t.uid as team_uid, t.id as team_id, u.uid as user_uid, tm.created, tm.updated, tm.permission FROM "grafana"."team_member" tm
|
||||
INNER JOIN "grafana"."team" t ON tm.team_id = t.id
|
||||
INNER JOIN "grafana"."user" u ON tm.user_id = u.id
|
||||
WHERE
|
||||
t.uid IN(
|
||||
SELECT uid
|
||||
FROM "grafana.team" t
|
||||
FROM "grafana"."team" t
|
||||
WHERE t.id >= 5
|
||||
ORDER BY t.id ASC LIMIT 5
|
||||
)
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM "grafana"."team"
|
||||
WHERE org_id = 0
|
||||
ORDER BY id asc
|
||||
LIMIT 5
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM "grafana"."team"
|
||||
WHERE org_id = 0
|
||||
AND id > 1
|
||||
ORDER BY id asc
|
||||
|
@ -1,5 +1,5 @@
|
||||
SELECT id, uid, name, email, created, updated
|
||||
FROM "grafana.team"
|
||||
FROM "grafana"."team"
|
||||
WHERE org_id = 0
|
||||
AND uid = 'abc'
|
||||
ORDER BY id asc
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
ORDER BY u.id asc
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
AND id > 1
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT o.org_id, u.id, u.uid, u.login, u.email, u.name,
|
||||
u.created, u.updated, u.is_service_account, u.is_disabled, u.is_admin
|
||||
FROM "grafana.user" as u JOIN "grafana.org_user" as o ON u.id = o.user_id
|
||||
FROM "grafana"."user" as u JOIN "grafana"."org_user" as o ON u.id = o.user_id
|
||||
WHERE o.org_id = 0
|
||||
AND u.is_service_account = FALSE
|
||||
AND uid = 'abc'
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate/mocks"
|
||||
)
|
||||
|
||||
func TestQueries(t *testing.T) {
|
||||
func TestUnifiedStorageQueries(t *testing.T) {
|
||||
mocks.CheckQuerySnapshots(t, mocks.TemplateTestSetup{
|
||||
RootDir: "testdata",
|
||||
Templates: map[*template.Template][]mocks.TemplateTestCase{
|
||||
|
@ -1,6 +1,7 @@
|
||||
package sqltemplate
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"strconv"
|
||||
"strings"
|
||||
@ -9,6 +10,7 @@ import (
|
||||
// Dialect-agnostic errors.
|
||||
var (
|
||||
ErrEmptyIdent = errors.New("empty identifier")
|
||||
ErrInvalidIdentInput = errors.New("identifier contains invalid characters")
|
||||
ErrInvalidRowLockingClause = errors.New("invalid row-locking clause")
|
||||
)
|
||||
|
||||
@ -40,7 +42,8 @@ type Dialect interface {
|
||||
|
||||
// Ident returns the given string quoted in a way that is suitable to be
|
||||
// used as an identifier. Database names, schema names, table names, column
|
||||
// names are all examples of identifiers.
|
||||
// names are all examples of identifiers. When the value includes a "."
|
||||
// each part side of the separator will be escaped: (eg: `db`.`table`)
|
||||
Ident(string) (string, error)
|
||||
|
||||
// ArgPlaceholder returns a safe argument suitable to be used in a SQL
|
||||
@ -126,11 +129,34 @@ var rowLockingClauseAll = rowLockingClauseMap{
|
||||
// standardIdent provides standard SQL escaping of identifiers.
|
||||
type standardIdent struct{}
|
||||
|
||||
func (standardIdent) Ident(s string) (string, error) {
|
||||
func escapeIdentity(s string, quote rune, clean func(string) string) (string, error) {
|
||||
if s == "" {
|
||||
return "", ErrEmptyIdent
|
||||
}
|
||||
return `"` + strings.ReplaceAll(s, `"`, `""`) + `"`, nil
|
||||
var buffer bytes.Buffer
|
||||
for i, part := range strings.Split(s, ".") {
|
||||
// We may want to check that the identifier is simple alphanumeric
|
||||
// var alphanumeric = regexp.MustCompile("^[a-zA-Z0-9_]*$")
|
||||
|
||||
if i > 1 {
|
||||
return "", ErrInvalidIdentInput
|
||||
}
|
||||
if i > 0 {
|
||||
_, _ = buffer.WriteRune('.')
|
||||
}
|
||||
_, _ = buffer.WriteRune(quote)
|
||||
_, _ = buffer.WriteString(clean(part))
|
||||
_, _ = buffer.WriteRune(quote)
|
||||
}
|
||||
return buffer.String(), nil
|
||||
}
|
||||
|
||||
func (standardIdent) Ident(s string) (string, error) {
|
||||
return escapeIdentity(s, '"', func(s string) string {
|
||||
// not sure we should support escaping quotes in table/column names,
|
||||
// but it is valid so we will support it for now
|
||||
return strings.ReplaceAll(s, `"`, `""`)
|
||||
})
|
||||
}
|
||||
|
||||
type argPlaceholderFunc func(int) string
|
||||
|
@ -1,10 +1,11 @@
|
||||
package sqltemplate
|
||||
|
||||
// MySQL is the default implementation of Dialect for the MySQL DMBS, currently
|
||||
// supporting MySQL-8.x. It relies on having ANSI_QUOTES SQL Mode enabled. For
|
||||
// more information about ANSI_QUOTES and SQL Modes see:
|
||||
//
|
||||
// https://dev.mysql.com/doc/refman/8.4/en/sql-mode.html#sqlmode_ansi_quotes
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// MySQL is the default implementation of Dialect for the MySQL DMBS,
|
||||
// currently supporting MySQL-8.x.
|
||||
var MySQL = mysql{
|
||||
rowLockingClauseMap: rowLockingClauseAll,
|
||||
argPlaceholderFunc: argFmtSQL92,
|
||||
@ -20,19 +21,15 @@ type mysql struct {
|
||||
name
|
||||
}
|
||||
|
||||
// standardIdent provides standard SQL escaping of identifiers.
|
||||
// MySQL always supports backticks for identifiers
|
||||
// https://dev.mysql.com/doc/refman/8.4/en/identifiers.html
|
||||
type backtickIdent struct{}
|
||||
|
||||
var standardFallback = standardIdent{}
|
||||
|
||||
func (backtickIdent) Ident(s string) (string, error) {
|
||||
switch s {
|
||||
// Internal identifiers require backticks to work properly
|
||||
case "user":
|
||||
return "`" + s + "`", nil
|
||||
case "":
|
||||
return "", ErrEmptyIdent
|
||||
if strings.ContainsRune(s, '`') {
|
||||
return "", ErrInvalidIdentInput
|
||||
}
|
||||
// standard
|
||||
return standardFallback.Ident(s)
|
||||
return escapeIdentity(s, '`', func(s string) string {
|
||||
return s
|
||||
})
|
||||
}
|
||||
|
@ -152,5 +152,5 @@ func Example() {
|
||||
fmt.Println(query)
|
||||
|
||||
// Output:
|
||||
// SELECT "id", "type", "name" FROM "users" WHERE "id" = ?;
|
||||
// SELECT `id`, `type`, `name` FROM `users` WHERE `id` = ?;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
DELETE FROM "resource"
|
||||
DELETE FROM `resource`
|
||||
WHERE 1 = 1
|
||||
AND "namespace" = 'nn'
|
||||
AND "group" = 'gg'
|
||||
AND "resource" = 'rr'
|
||||
AND "name" = 'name'
|
||||
AND `namespace` = 'nn'
|
||||
AND `group` = 'gg'
|
||||
AND `resource` = 'rr'
|
||||
AND `name` = 'name'
|
||||
;
|
||||
|
@ -1,12 +1,12 @@
|
||||
INSERT INTO "resource_history"
|
||||
INSERT INTO `resource_history`
|
||||
(
|
||||
"guid",
|
||||
"group",
|
||||
"resource",
|
||||
"namespace",
|
||||
"name",
|
||||
"value",
|
||||
"action"
|
||||
`guid`,
|
||||
`group`,
|
||||
`resource`,
|
||||
`namespace`,
|
||||
`name`,
|
||||
`value`,
|
||||
`action`
|
||||
)
|
||||
VALUES (
|
||||
'',
|
||||
|
@ -1,25 +1,25 @@
|
||||
SELECT
|
||||
kv."resource_version",
|
||||
kv."namespace",
|
||||
kv."name",
|
||||
kv."value"
|
||||
FROM "resource_history" as kv
|
||||
kv.`resource_version`,
|
||||
kv.`namespace`,
|
||||
kv.`name`,
|
||||
kv.`value`
|
||||
FROM `resource_history` as kv
|
||||
INNER JOIN (
|
||||
SELECT "namespace", "group", "resource", "name", max("resource_version") AS "resource_version"
|
||||
FROM "resource_history" AS mkv
|
||||
SELECT `namespace`, `group`, `resource`, `name`, max(`resource_version`) AS `resource_version`
|
||||
FROM `resource_history` AS mkv
|
||||
WHERE 1 = 1
|
||||
AND "resource_version" <= 0
|
||||
AND "namespace" = 'ns'
|
||||
GROUP BY mkv."namespace", mkv."group", mkv."resource", mkv."name"
|
||||
AND `resource_version` <= 0
|
||||
AND `namespace` = 'ns'
|
||||
GROUP BY mkv.`namespace`, mkv.`group`, mkv.`resource`, mkv.`name`
|
||||
) AS maxkv
|
||||
ON
|
||||
maxkv."resource_version" = kv."resource_version"
|
||||
AND maxkv."namespace" = kv."namespace"
|
||||
AND maxkv."group" = kv."group"
|
||||
AND maxkv."resource" = kv."resource"
|
||||
AND maxkv."name" = kv."name"
|
||||
WHERE kv."action" != 3
|
||||
AND kv."namespace" = 'ns'
|
||||
ORDER BY kv."namespace" ASC, kv."name" ASC
|
||||
maxkv.`resource_version` = kv.`resource_version`
|
||||
AND maxkv.`namespace` = kv.`namespace`
|
||||
AND maxkv.`group` = kv.`group`
|
||||
AND maxkv.`resource` = kv.`resource`
|
||||
AND maxkv.`name` = kv.`name`
|
||||
WHERE kv.`action` != 3
|
||||
AND kv.`namespace` = 'ns'
|
||||
ORDER BY kv.`namespace` ASC, kv.`name` ASC
|
||||
LIMIT 10 OFFSET 0
|
||||
;
|
||||
|
@ -1,13 +1,13 @@
|
||||
SELECT
|
||||
"resource_version",
|
||||
"value"
|
||||
FROM "resource_history"
|
||||
`resource_version`,
|
||||
`value`
|
||||
FROM `resource_history`
|
||||
WHERE 1 = 1
|
||||
AND "namespace" = ''
|
||||
AND "group" = ''
|
||||
AND "resource" = ''
|
||||
AND "name" = ''
|
||||
AND "resource_version" <= 123
|
||||
ORDER BY "resource_version" DESC
|
||||
AND `namespace` = ''
|
||||
AND `group` = ''
|
||||
AND `resource` = ''
|
||||
AND `name` = ''
|
||||
AND `resource_version` <= 123
|
||||
ORDER BY `resource_version` DESC
|
||||
LIMIT 1
|
||||
;
|
||||
|
@ -1,4 +1,4 @@
|
||||
UPDATE "resource_history"
|
||||
SET "resource_version" = 0
|
||||
WHERE "guid" = ''
|
||||
UPDATE `resource_history`
|
||||
SET `resource_version` = 0
|
||||
WHERE `guid` = ''
|
||||
;
|
||||
|
@ -1,12 +1,12 @@
|
||||
INSERT INTO "resource"
|
||||
INSERT INTO `resource`
|
||||
(
|
||||
"guid",
|
||||
"group",
|
||||
"resource",
|
||||
"namespace",
|
||||
"name",
|
||||
"value",
|
||||
"action"
|
||||
`guid`,
|
||||
`group`,
|
||||
`resource`,
|
||||
`namespace`,
|
||||
`name`,
|
||||
`value`,
|
||||
`action`
|
||||
)
|
||||
VALUES (
|
||||
'',
|
||||
|
@ -1,10 +1,10 @@
|
||||
SELECT
|
||||
"resource_version",
|
||||
"namespace",
|
||||
"name",
|
||||
"value"
|
||||
FROM "resource"
|
||||
`resource_version`,
|
||||
`namespace`,
|
||||
`name`,
|
||||
`value`
|
||||
FROM `resource`
|
||||
WHERE 1 = 1
|
||||
AND "namespace" = 'ns'
|
||||
ORDER BY "namespace" ASC, "name" ASC
|
||||
AND `namespace` = 'ns'
|
||||
ORDER BY `namespace` ASC, `name` ASC
|
||||
;
|
||||
|
@ -1,10 +1,10 @@
|
||||
SELECT
|
||||
"resource_version",
|
||||
"value"
|
||||
FROM "resource"
|
||||
`resource_version`,
|
||||
`value`
|
||||
FROM `resource`
|
||||
WHERE 1 = 1
|
||||
AND "namespace" = ''
|
||||
AND "group" = ''
|
||||
AND "resource" = ''
|
||||
AND "name" = ''
|
||||
AND `namespace` = ''
|
||||
AND `group` = ''
|
||||
AND `resource` = ''
|
||||
AND `name` = ''
|
||||
;
|
||||
|
@ -1,11 +1,11 @@
|
||||
UPDATE "resource"
|
||||
UPDATE `resource`
|
||||
SET
|
||||
"guid" = '',
|
||||
"value" = '[]',
|
||||
"action" = 'UNKNOWN'
|
||||
`guid` = '',
|
||||
`value` = '[]',
|
||||
`action` = 'UNKNOWN'
|
||||
WHERE 1 = 1
|
||||
AND "group" = ''
|
||||
AND "resource" = ''
|
||||
AND "namespace" = ''
|
||||
AND "name" = ''
|
||||
AND `group` = ''
|
||||
AND `resource` = ''
|
||||
AND `namespace` = ''
|
||||
AND `name` = ''
|
||||
;
|
||||
|
@ -1,4 +1,4 @@
|
||||
UPDATE "resource"
|
||||
SET "resource_version" = 0
|
||||
WHERE "guid" = ''
|
||||
UPDATE `resource`
|
||||
SET `resource_version` = 0
|
||||
WHERE `guid` = ''
|
||||
;
|
||||
|
@ -1,8 +1,8 @@
|
||||
SELECT
|
||||
"resource_version"
|
||||
FROM "resource_version"
|
||||
`resource_version`
|
||||
FROM `resource_version`
|
||||
WHERE 1 = 1
|
||||
AND "group" = ''
|
||||
AND "resource" = ''
|
||||
AND `group` = ''
|
||||
AND `resource` = ''
|
||||
FOR UPDATE
|
||||
;
|
||||
|
@ -1,7 +1,7 @@
|
||||
UPDATE "resource_version"
|
||||
UPDATE `resource_version`
|
||||
SET
|
||||
"resource_version" = 123
|
||||
`resource_version` = 123
|
||||
WHERE 1 = 1
|
||||
AND "group" = ''
|
||||
AND "resource" = ''
|
||||
AND `group` = ''
|
||||
AND `resource` = ''
|
||||
;
|
||||
|
@ -1,8 +1,8 @@
|
||||
INSERT INTO "resource_version"
|
||||
INSERT INTO `resource_version`
|
||||
(
|
||||
"group",
|
||||
"resource",
|
||||
"resource_version"
|
||||
`group`,
|
||||
`resource`,
|
||||
`resource_version`
|
||||
)
|
||||
VALUES (
|
||||
'',
|
||||
|
Loading…
Reference in New Issue
Block a user