Simplify function with aggregate

This commit is contained in:
Rafa de la Torre
2019-11-11 21:34:51 +01:00
parent 6e9ee296c5
commit 0ad7cd485d
@@ -87,21 +87,15 @@ LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE;
CREATE OR REPLACE FUNCTION @extschema@.__CDB_FS_Foreign_Server_Options_PG(server_internal name) CREATE OR REPLACE FUNCTION @extschema@.__CDB_FS_Foreign_Server_Options_PG(server_internal name)
RETURNS jsonb RETURNS jsonb
AS $$ AS $$
DECLARE
res jsonb := '{}';
opt record;
BEGIN
-- See https://www.postgresql.org/docs/current/catalog-pg-foreign-server.html -- See https://www.postgresql.org/docs/current/catalog-pg-foreign-server.html
-- See https://www.postgresql.org/docs/current/functions-info.html -- See https://www.postgresql.org/docs/current/functions-info.html
FOR opt IN SELECT jsonb_object_agg(opt.option_name, opt.option_value) FROM (
SELECT (pg_options_to_table(srvoptions)).* FROM pg_foreign_server WHERE srvname = server_internal SELECT (pg_options_to_table(srvoptions)).*
LOOP FROM pg_foreign_server
res := res || jsonb_build_object(opt.option_name, opt.option_value); WHERE srvname = server_internal
END LOOP; ) AS opt;
RETURN res;
END
$$ $$
LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE; LANGUAGE SQL VOLATILE PARALLEL UNSAFE;
-- --