diff --git a/pkg/registry/apis/dashboard/legacy/queries_test.go b/pkg/registry/apis/dashboard/legacy/queries_test.go index 325eadfdd9f..a30bc61ab02 100644 --- a/pkg/registry/apis/dashboard/legacy/queries_test.go +++ b/pkg/registry/apis/dashboard/legacy/queries_test.go @@ -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 { diff --git a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard.sql b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard.sql index c93f8d09a95..29762eca1d9 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard_next_page.sql b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard_next_page.sql index 9e475b052f0..e5b0878d585 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard_next_page.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-dashboard_next_page.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid.sql b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid.sql index f0dce1ffa9b..8b078c451d5 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid.sql @@ -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' diff --git a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_at_version.sql b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_at_version.sql index db81b1d9d8f..6074e7674ed 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_at_version.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_at_version.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_second_page.sql b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_second_page.sql index 47319aa715a..27af641bfff 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_second_page.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_dashboards-history_uid_second_page.sql @@ -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' diff --git a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-get_uid.sql b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-get_uid.sql index 20c1ca1da99..bfe4b6b037c 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-get_uid.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-get_uid.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-list.sql b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-list.sql index 910f37d4c3f..94bd1a4d9e6 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-list.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-list.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-list_page_two.sql b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-list_page_two.sql index 59578f156a9..18bbf4db6b6 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-list_page_two.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/mysql--query_panels-list_page_two.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-dashboard.sql b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-dashboard.sql index c93f8d09a95..132d34e64d8 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-dashboard.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-dashboard.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-dashboard_next_page.sql b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-dashboard_next_page.sql index 9e475b052f0..d00843ff8f5 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-dashboard_next_page.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-dashboard_next_page.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid.sql b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid.sql index f0dce1ffa9b..6c52d33d777 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid.sql @@ -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' diff --git a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid_at_version.sql b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid_at_version.sql index db81b1d9d8f..7e14e847116 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid_at_version.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid_at_version.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid_second_page.sql b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid_second_page.sql index 47319aa715a..e659b6526da 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid_second_page.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_dashboards-history_uid_second_page.sql @@ -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' diff --git a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-get_uid.sql b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-get_uid.sql index 20c1ca1da99..d20e1917b8e 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-get_uid.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-get_uid.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-list.sql b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-list.sql index 910f37d4c3f..714c3ade2e6 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-list.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-list.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-list_page_two.sql b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-list_page_two.sql index 59578f156a9..8b00556968c 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-list_page_two.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/postgres--query_panels-list_page_two.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-dashboard.sql b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-dashboard.sql index c93f8d09a95..132d34e64d8 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-dashboard.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-dashboard.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-dashboard_next_page.sql b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-dashboard_next_page.sql index 9e475b052f0..d00843ff8f5 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-dashboard_next_page.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-dashboard_next_page.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid.sql b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid.sql index f0dce1ffa9b..6c52d33d777 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid.sql @@ -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' diff --git a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid_at_version.sql b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid_at_version.sql index db81b1d9d8f..7e14e847116 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid_at_version.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid_at_version.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid_second_page.sql b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid_second_page.sql index 47319aa715a..e659b6526da 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid_second_page.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_dashboards-history_uid_second_page.sql @@ -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' diff --git a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-get_uid.sql b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-get_uid.sql index 20c1ca1da99..d20e1917b8e 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-get_uid.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-get_uid.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-list.sql b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-list.sql index 910f37d4c3f..714c3ade2e6 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-list.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-list.sql @@ -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 diff --git a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-list_page_two.sql b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-list_page_two.sql index 59578f156a9..8b00556968c 100755 --- a/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-list_page_two.sql +++ b/pkg/registry/apis/dashboard/legacy/testdata/sqlite--query_panels-list_page_two.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/queries_test.go b/pkg/registry/apis/identity/legacy/queries_test.go index 2df6e1f8e16..833a124f9dc 100644 --- a/pkg/registry/apis/identity/legacy/queries_test.go +++ b/pkg/registry/apis/identity/legacy/queries_test.go @@ -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 { diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_ids.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_ids.sql index 5f466df2848..8346f0a8a7d 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_ids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_ids.sql @@ -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) ) diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_ids_uids.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_ids_uids.sql index fa586d54340..a93f7b2e662 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_ids_uids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_ids_uids.sql @@ -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) diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_uids.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_uids.sql index eb841cd1863..d9727e67feb 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_uids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_display-display_uids.sql @@ -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') ) diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_1_bindings.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_1_bindings.sql index 5c0f06a1720..7aa32fa1492 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_1_bindings.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_1_bindings.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_bindings_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_bindings_page_1.sql index 3cea257a936..df66acd40f3 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_bindings_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_bindings_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_bindings_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_bindings_page_2.sql index b9a4fc91939..7593469a0e2 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_bindings_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_team_bindings-team_bindings_page_2.sql @@ -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 ) diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_page_1.sql index 8ff48c15223..437b97ee72f 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_page_2.sql index 42a1ee6dc92..a85e1c63467 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_page_2.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_uid.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_uid.sql index 746104926aa..21914c31dad 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_uid.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_teams-teams_uid.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_page_1.sql index cb0ddccca37..d35831279af 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_page_2.sql index 6ac810aa0eb..55e01b09d1e 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_page_2.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_uid.sql b/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_uid.sql index 0c5d93628f6..e906ae54dfc 100755 --- a/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_uid.sql +++ b/pkg/registry/apis/identity/legacy/testdata/mysql--query_users-users_uid.sql @@ -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' diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_ids.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_ids.sql index 5f466df2848..d02afa8cf0a 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_ids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_ids.sql @@ -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) ) diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_ids_uids.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_ids_uids.sql index fa586d54340..e8a519e465b 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_ids_uids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_ids_uids.sql @@ -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) diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_uids.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_uids.sql index eb841cd1863..2af78d4dfe6 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_uids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_display-display_uids.sql @@ -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') ) diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_1_bindings.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_1_bindings.sql index 5c0f06a1720..a14f452d62e 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_1_bindings.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_1_bindings.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_bindings_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_bindings_page_1.sql index 3cea257a936..8f394864f80 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_bindings_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_bindings_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_bindings_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_bindings_page_2.sql index b9a4fc91939..d5af50ec1b6 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_bindings_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_team_bindings-team_bindings_page_2.sql @@ -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 ) diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_page_1.sql index 8ff48c15223..88d4d97090b 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_page_2.sql index 42a1ee6dc92..9c4f8ce1ee8 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_page_2.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_uid.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_uid.sql index 746104926aa..325b490e83b 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_uid.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_teams-teams_uid.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_page_1.sql index cb0ddccca37..5d4f1b771fc 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_page_2.sql index 6ac810aa0eb..d3ef396b51e 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_page_2.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_uid.sql b/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_uid.sql index 0c5d93628f6..985c51837c7 100755 --- a/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_uid.sql +++ b/pkg/registry/apis/identity/legacy/testdata/postgres--query_users-users_uid.sql @@ -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' diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_ids.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_ids.sql index 5f466df2848..d02afa8cf0a 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_ids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_ids.sql @@ -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) ) diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_ids_uids.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_ids_uids.sql index fa586d54340..e8a519e465b 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_ids_uids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_ids_uids.sql @@ -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) diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_uids.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_uids.sql index eb841cd1863..2af78d4dfe6 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_uids.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_display-display_uids.sql @@ -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') ) diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_1_bindings.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_1_bindings.sql index 5c0f06a1720..a14f452d62e 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_1_bindings.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_1_bindings.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_bindings_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_bindings_page_1.sql index 3cea257a936..8f394864f80 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_bindings_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_bindings_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_bindings_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_bindings_page_2.sql index b9a4fc91939..d5af50ec1b6 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_bindings_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_team_bindings-team_bindings_page_2.sql @@ -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 ) diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_page_1.sql index 8ff48c15223..88d4d97090b 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_page_2.sql index 42a1ee6dc92..9c4f8ce1ee8 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_page_2.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_uid.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_uid.sql index 746104926aa..325b490e83b 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_uid.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_teams-teams_uid.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_page_1.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_page_1.sql index cb0ddccca37..5d4f1b771fc 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_page_1.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_page_1.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_page_2.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_page_2.sql index 6ac810aa0eb..d3ef396b51e 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_page_2.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_page_2.sql @@ -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 diff --git a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_uid.sql b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_uid.sql index 0c5d93628f6..985c51837c7 100755 --- a/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_uid.sql +++ b/pkg/registry/apis/identity/legacy/testdata/sqlite--query_users-users_uid.sql @@ -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' diff --git a/pkg/storage/unified/sql/queries_test.go b/pkg/storage/unified/sql/queries_test.go index 767b6a096fb..b5ac7f57217 100644 --- a/pkg/storage/unified/sql/queries_test.go +++ b/pkg/storage/unified/sql/queries_test.go @@ -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{ diff --git a/pkg/storage/unified/sql/sqltemplate/dialect.go b/pkg/storage/unified/sql/sqltemplate/dialect.go index 2e9264f2049..5806c38b33e 100644 --- a/pkg/storage/unified/sql/sqltemplate/dialect.go +++ b/pkg/storage/unified/sql/sqltemplate/dialect.go @@ -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 diff --git a/pkg/storage/unified/sql/sqltemplate/dialect_mysql.go b/pkg/storage/unified/sql/sqltemplate/dialect_mysql.go index 5fd5ca42c44..6101667fa51 100644 --- a/pkg/storage/unified/sql/sqltemplate/dialect_mysql.go +++ b/pkg/storage/unified/sql/sqltemplate/dialect_mysql.go @@ -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 + }) } diff --git a/pkg/storage/unified/sql/sqltemplate/example_test.go b/pkg/storage/unified/sql/sqltemplate/example_test.go index 21d4e198cbc..7aa7e886b94 100644 --- a/pkg/storage/unified/sql/sqltemplate/example_test.go +++ b/pkg/storage/unified/sql/sqltemplate/example_test.go @@ -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` = ?; } diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_delete-simple.sql b/pkg/storage/unified/sql/testdata/mysql--resource_delete-simple.sql index 2e1e60d1b79..df8c02085fa 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_delete-simple.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_delete-simple.sql @@ -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' ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_history_insert-insert into resource_history.sql b/pkg/storage/unified/sql/testdata/mysql--resource_history_insert-insert into resource_history.sql index 643741bc3b1..27f5000fc9f 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_history_insert-insert into resource_history.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_history_insert-insert into resource_history.sql @@ -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 ( '', diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_history_list-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_history_list-single path.sql index 3f6d4e7206f..1061626026f 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_history_list-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_history_list-single path.sql @@ -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 ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_history_read-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_history_read-single path.sql index 35127f6b176..fa8b3ae3da6 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_history_read-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_history_read-single path.sql @@ -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 ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_history_update_rv-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_history_update_rv-single path.sql index 7cddc81c5ab..c09ee183e62 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_history_update_rv-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_history_update_rv-single path.sql @@ -1,4 +1,4 @@ -UPDATE "resource_history" - SET "resource_version" = 0 - WHERE "guid" = '' +UPDATE `resource_history` + SET `resource_version` = 0 + WHERE `guid` = '' ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_insert-simple.sql b/pkg/storage/unified/sql/testdata/mysql--resource_insert-simple.sql index 9150eb59fef..0897963b19c 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_insert-simple.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_insert-simple.sql @@ -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 ( '', diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_list-filter_on_namespace.sql b/pkg/storage/unified/sql/testdata/mysql--resource_list-filter_on_namespace.sql index 8a1356f62f8..85ed7223d79 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_list-filter_on_namespace.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_list-filter_on_namespace.sql @@ -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 ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_read-without_resource_version.sql b/pkg/storage/unified/sql/testdata/mysql--resource_read-without_resource_version.sql index e010d010dbc..27530d7792d 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_read-without_resource_version.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_read-without_resource_version.sql @@ -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` = '' ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_update-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_update-single path.sql index c0b2f77ce6c..f3a173f5a03 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_update-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_update-single path.sql @@ -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` = '' ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_update_rv-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_update_rv-single path.sql index 22637847a12..f09b3e91c14 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_update_rv-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_update_rv-single path.sql @@ -1,4 +1,4 @@ -UPDATE "resource" - SET "resource_version" = 0 - WHERE "guid" = '' +UPDATE `resource` + SET `resource_version` = 0 + WHERE `guid` = '' ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_version_get-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_version_get-single path.sql index d6e8f041e5a..15678ba3e7b 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_version_get-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_version_get-single path.sql @@ -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 ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_version_inc-increment resource version.sql b/pkg/storage/unified/sql/testdata/mysql--resource_version_inc-increment resource version.sql index a6f7c024e25..2a737b37014 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_version_inc-increment resource version.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_version_inc-increment resource version.sql @@ -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` = '' ; diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_version_insert-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_version_insert-single path.sql index 99003d5fefe..350f77472ab 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_version_insert-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_version_insert-single path.sql @@ -1,8 +1,8 @@ -INSERT INTO "resource_version" +INSERT INTO `resource_version` ( - "group", - "resource", - "resource_version" + `group`, + `resource`, + `resource_version` ) VALUES ( '',