refactor: Reformat db-config query

This commit is contained in:
Wolfgang Walther
2022-06-03 22:19:16 -05:00
committed by Steve Chavez
parent 76fdf29f5c
commit d1851a6966
+18 -11
View File
@@ -36,19 +36,26 @@ dbSettingsStatement :: SQL.Statement () [(Text, Text)]
dbSettingsStatement = SQL.Statement sql HE.noParams decodeSettings False dbSettingsStatement = SQL.Statement sql HE.noParams decodeSettings False
where where
sql = [q| sql = [q|
with WITH
role_setting as ( role_setting (database, setting) AS (
select setdatabase, unnest(setconfig) as setting from pg_catalog.pg_db_role_setting SELECT setdatabase,
where setrole = current_user::regrole::oid unnest(setconfig)
and setdatabase in (0, (select oid from pg_catalog.pg_database where datname = current_catalog)) FROM pg_catalog.pg_db_role_setting
WHERE setrole = CURRENT_USER::regrole::oid
AND setdatabase IN (0, (SELECT oid FROM pg_catalog.pg_database WHERE datname = CURRENT_CATALOG))
), ),
kv_settings as ( kv_settings (database, k, v) AS (
select setdatabase, split_part(setting, '=', 1) as k, split_part(setting, '=', 2) as value from role_setting SELECT database,
where setting like 'pgrst.%' split_part(setting, '=', 1),
split_part(setting, '=', 2)
FROM role_setting
WHERE setting LIKE 'pgrst.%'
) )
select distinct on (key) replace(k, 'pgrst.', '') as key, value SELECT DISTINCT ON (key)
from kv_settings replace(k, 'pgrst.', '') AS key,
order by key, setdatabase desc; v AS value
FROM kv_settings
ORDER BY key, database DESC;
|] |]
decodeSettings = HD.rowList $ (,) <$> column HD.text <*> column HD.text decodeSettings = HD.rowList $ (,) <$> column HD.text <*> column HD.text