diff --git a/db/migrate/20250210140744_fix_load_codec_groups.rb b/db/migrate/20250210140744_fix_load_codec_groups.rb new file mode 100644 index 000000000..faf210542 --- /dev/null +++ b/db/migrate/20250210140744_fix_load_codec_groups.rb @@ -0,0 +1,60 @@ +class FixLoadCodecGroups < ActiveRecord::Migration[7.2] + def up + execute %q{ +CREATE OR REPLACE FUNCTION switch22.load_codec_groups() + RETURNS TABLE(id integer, ptime smallint, codecs json) + LANGUAGE plpgsql + COST 10 +AS $function$ +BEGIN + RETURN QUERY + SELECT + cg.id, + cg.ptime, + json_agg(json_build_object( + 'id', c.id, + 'name', c.name, + 'priority', cgc.priority, + 'dynamic_payload_type', cgc.dynamic_payload_type, + 'format_parameters', cgc.format_parameters + ) ORDER BY cgc.priority DESC ) as codecs + FROM class4.codec_groups cg + LEFT JOIN class4.codec_group_codecs cgc ON cg.id = cgc.codec_group_id + LEFT JOIN class4.codecs c ON cgc.codec_id=c.id + GROUP BY cg.id; +END; +$function$; + + } + end + + + def down + execute %q{ +CREATE OR REPLACE FUNCTION switch22.load_codec_groups() + RETURNS TABLE(id integer, ptime smallint, codecs json) + LANGUAGE plpgsql + COST 10 +AS $function$ +BEGIN + RETURN QUERY + SELECT + cg.id, + cg.ptime, + json_agg(json_build_object( + 'id', c.id, + 'name', c.name, + 'priority', cgc.priority, + 'dynamic_payload_type', cgc.dynamic_payload_type, + 'format_parameters', cgc.format_parameters + )) as codecs + FROM class4.codec_groups cg + LEFT JOIN class4.codec_group_codecs cgc ON cg.id = cgc.codec_group_id + LEFT JOIN class4.codecs c ON cgc.codec_id=c.id + GROUP BY cg.id; +END; +$function$; + + } + end +end diff --git a/db/structure.sql b/db/structure.sql index 371fcc2d0..7485a89c1 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -31516,7 +31516,7 @@ BEGIN 'priority', cgc.priority, 'dynamic_payload_type', cgc.dynamic_payload_type, 'format_parameters', cgc.format_parameters - )) as codecs + ) ORDER BY cgc.priority DESC ) as codecs FROM class4.codec_groups cg LEFT JOIN class4.codec_group_codecs cgc ON cg.id = cgc.codec_group_id LEFT JOIN class4.codecs c ON cgc.codec_id=c.id @@ -49993,6 +49993,7 @@ ALTER TABLE ONLY sys.sensors SET search_path TO gui, public, switch, billing, class4, runtime_stats, sys, logs, data_import; INSERT INTO "public"."schema_migrations" (version) VALUES +('20250210140744'), ('20250115133012'), ('20250104221004'), ('20241231160003'),