Skip to content

Commit

Permalink
Merge pull request #1694 from dmitry-sinina/_fix_codec_ordering
Browse files Browse the repository at this point in the history
fix codec ordering in new codec group loading logic
  • Loading branch information
dmitry-sinina authored Feb 10, 2025
2 parents 75813aa + f6132e0 commit 7afbe4c
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 1 deletion.
60 changes: 60 additions & 0 deletions db/migrate/20250210140744_fix_load_codec_groups.rb
Original file line number Diff line number Diff line change
@@ -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
3 changes: 2 additions & 1 deletion db/structure.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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'),
Expand Down

0 comments on commit 7afbe4c

Please sign in to comment.