Skip to content

Commit 342b75a

Browse files
author
DF Bitbucket Bot
committed
Bot automated sync from Dataforge Cloud using commit cb20f0fbe3e50b9dd17c1d370c951531db668637
1 parent 2c4c826 commit 342b75a

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

database/code/meta/u-utility/u_get_next_relation_path.sql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ DECLARE
2020
v_ret_relation_ids int[] := '{}';
2121
v_reverse_flag boolean;
2222
v_max_length int;
23+
v_alt_cardinality_paths_exist boolean = false;
2324
BEGIN
2425

2526
in_start_path := COALESCE(in_start_path,'{}'::int[]);
@@ -84,6 +85,7 @@ IF v_max_level IS NULL THEN
8485
RETURN json_build_object('error',format('Remove aggregation or add OVER clause. Target source `%s`', meta.u_get_source_name(in_to_source_id) ));
8586
END IF;
8687
ELSE
88+
v_alt_cardinality_paths_exist = EXISTS(SELECT 1 FROM _paths WHERE cardinality != in_cardinality);
8789
DELETE FROM _paths WHERE cardinality != in_cardinality;
8890
END IF;
8991

@@ -120,7 +122,8 @@ FOR v_level IN 1 .. v_max_level LOOP
120122
ELSE
121123
v_next_relation_id := null;
122124
END IF;
123-
RETURN json_build_object('path',v_ret_path,'complete', true, 'relation_ids',v_ret_relation_ids, 'next', v_next_relation_id);
125+
RETURN json_build_object('path',v_ret_path,'complete', true, 'relation_ids',v_ret_relation_ids, 'next', v_next_relation_id,
126+
'alt_cardinality_path_exist',v_alt_cardinality_paths_exist);
124127
END IF;
125128
END LOOP;
126129

database/code/meta/u-utility/u_get_source_name.sql

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,29 @@
11

2-
CREATE OR REPLACE FUNCTION meta.u_get_source_name(in_source_id int)
2+
CREATE OR REPLACE FUNCTION meta.u_get_source_name(in_source_id int, templatize_flag boolean = false)
33
RETURNS text
44
LANGUAGE plpgsql
55
AS $function$
66

7+
DECLARE
8+
v_source_template_id int;
9+
v_source_name text;
10+
711
BEGIN
8-
9-
RETURN COALESCE(
10-
(SELECT s.source_name FROM meta.source s WHERE s.source_id = in_source_id),
11-
format('Unknown source_id=%s', in_source_id));
12+
SELECT s.source_name, s.source_template_id
13+
INTO v_source_name, v_source_template_id
14+
FROM meta.source s WHERE s.source_id = in_source_id;
15+
16+
IF v_source_name IS NULL THEN
17+
RETURN format('Unknown source_id=%s', in_source_id);
18+
END IF;
19+
20+
IF NOT templatize_flag OR v_source_template_id IS NULL THEN
21+
RETURN v_source_name;
22+
END IF;
23+
24+
RETURN COALESCE(
25+
(SELECT object_name FROM meta.object_template t WHERE t.object_template_id = v_source_template_id),
26+
format('Unknown source_template_id=%s', v_source_template_id));
1227

1328
END;
1429

0 commit comments

Comments
 (0)