Skip to content

Commit f610dd1

Browse files
committed
test
1 parent 179a6d7 commit f610dd1

File tree

4 files changed

+59
-11
lines changed

4 files changed

+59
-11
lines changed

database/code/meta/svc-service/svc_generate_queries.sql

+26-3
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,19 @@ BEGIN
6868

6969
SELECT json_agg(json_build_object('file_name', file_name || '.sql', 'query', query ))
7070
INTO v_source_queries
71-
FROM _sources;
71+
FROM _sources
72+
WHERE query NOT LIKE 'QUERY GENERATION ERROR:%';
73+
74+
INSERT INTO log.actor_log (log_id, message, actor_path, severity, insert_datetime)
75+
SELECT v_imp.log_id, format('Error generating query for source `%s`: %s', source_name, replace(query,'QUERY GENERATION ERROR:','')),'svc_generate_queries', 'E', clock_timestamp()
76+
FROM _sources
77+
WHERE query LIKE 'QUERY GENERATION ERROR:%';
78+
79+
GET DIAGNOSTICS v_count = ROW_COUNT;
80+
81+
IF v_count > 0 THEN
82+
RETURN json_build_object('source', v_source_queries, 'error', 'Error generating source queries');
83+
END IF;
7284

7385
SELECT string_agg(query,E'\n\n' ORDER BY level)
7486
INTO v_all_source_query
@@ -94,15 +106,26 @@ BEGIN
94106

95107
SELECT json_agg(json_build_object('file_name', file_name || '.sql', 'query', query))
96108
INTO v_output_queries
97-
FROM _outputs;
109+
FROM _outputs
110+
WHERE query NOT LIKE 'QUERY GENERATION ERROR:%';
111+
112+
INSERT INTO log.actor_log (log_id, message, actor_path, severity, insert_datetime)
113+
SELECT v_imp.log_id, format('Error generating query for output `%s`: %s', output_name, replace(query,'QUERY GENERATION ERROR:','')),'svc_generate_queries', 'E', clock_timestamp()
114+
FROM _outputs
115+
WHERE query LIKE 'QUERY GENERATION ERROR:%';
116+
117+
GET DIAGNOSTICS v_count = ROW_COUNT;
118+
119+
IF v_count > 0 THEN
120+
RETURN json_build_object('source', v_source_queries, 'output',v_output_queries, 'error', 'Error generating output queries');
121+
END IF;
98122

99123
SELECT string_agg(query,E'\n\n' ORDER BY level)
100124
INTO v_all_output_query
101125
FROM _outputs;
102126

103127
RETURN json_build_object('source', v_source_queries, 'output',v_output_queries, 'run', E'/*SOURCES*/\n' || v_all_source_query || COALESCE( E'\n/*OUTPUTs*/\n' || v_all_output_query, ''));
104128

105-
106129
END;
107130

108131
$function$;

database/code/meta/u-utility/enr-query-generator/u_enr_query_generate_query.sql

+12-7
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ FOR v_cte IN 0 .. v_cte_max LOOP
9191

9292
END LOOP;
9393

94-
9594
RETURN v_sql;
9695

9796

@@ -109,13 +108,19 @@ AS $function$
109108

110109
DECLARE
111110
v_hub_table_name text = meta.u_get_hub_table_name(in_source_id);
112-
v_sql text;
111+
v_query text;
113112
BEGIN
114-
v_sql := 'DROP TABLE IF EXISTS ' || v_hub_table_name || E';
115-
CREATE TABLE ' || v_hub_table_name || ' AS
116-
' || meta.u_enr_query_generate_query(in_source_id, 'input', 0, '{}'::int[]) || ';
117-
';
118-
RETURN v_sql;
113+
114+
v_query := meta.u_enr_query_generate_query(in_source_id, 'input', 0, '{}'::int[]);
115+
IF v_query LIKE 'QUERY GENERATION ERROR:%' THEN
116+
RETURN v_query;
117+
ELSE
118+
RETURN ( 'DROP TABLE IF EXISTS ' || v_hub_table_name || E';
119+
CREATE TABLE ' || v_hub_table_name || ' AS
120+
' || v_query || ';
121+
');
122+
END IF;
123+
119124
END;
120125

121126
$function$;

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-- for each key in in_object, replaces if with value form a matching key in in_add_object if it's not null. Runs recursively for jsonb keys
1+
-- for each key in in_object, replaces if with value form a matching key in in_add_object if it's not null. Runs recursively for jsonb keys.
22
CREATE OR REPLACE FUNCTION meta.u_append_object(in_object jsonb, in_add_object jsonb)
33
RETURNS jsonb
44
LANGUAGE plpgsql
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
CREATE OR REPLACE FUNCTION meta.u_remove_last_array_element(
2+
in_ids int[])
3+
RETURNS int[] -- returns array with last element removed
4+
LANGUAGE plpgsql
5+
COST 1
6+
IMMUTABLE PARALLEL SAFE
7+
AS $function$
8+
DECLARE
9+
i int;
10+
v_ret int[] := '{}';
11+
BEGIN
12+
13+
FOR i IN 1..array_upper(in_ids, 1) - 1 LOOP
14+
v_ret := v_ret || in_ids[i];
15+
END LOOP;
16+
17+
RETURN v_ret;
18+
END;
19+
20+
$function$;

0 commit comments

Comments
 (0)