refactor: Reformat db-config query
This commit is contained in:
committed by
Steve Chavez
parent
76fdf29f5c
commit
d1851a6966
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user