2020-01-12 21:28:28 -05:00
|
|
|
CREATE OR REPLACE FUNCTION public.jsonb_concat(
|
|
|
|
state jsonb,
|
|
|
|
concat jsonb)
|
|
|
|
RETURNS jsonb AS
|
|
|
|
$BODY$
|
|
|
|
BEGIN
|
|
|
|
--RAISE notice 'state is %', state;
|
|
|
|
--RAISE notice 'concat is %', concat;
|
|
|
|
RETURN state || concat;
|
|
|
|
END;
|
|
|
|
$BODY$
|
|
|
|
LANGUAGE plpgsql VOLATILE
|
|
|
|
COST 100;
|
|
|
|
|
|
|
|
|
|
|
|
CREATE OR REPLACE FUNCTION public.jsonb_concat_distinct_arr(
|
|
|
|
state jsonb,
|
|
|
|
concat jsonb)
|
|
|
|
RETURNS jsonb AS
|
|
|
|
$BODY$
|
|
|
|
BEGIN
|
|
|
|
--RAISE notice 'state is %', state;
|
|
|
|
--RAISE notice 'concat is %', concat;
|
|
|
|
RETURN SELECT jsonb_agg(state || concat;
|
|
|
|
END;
|
|
|
|
$BODY$
|
|
|
|
LANGUAGE plpgsql VOLATILE
|
|
|
|
COST 100;
|
|
|
|
|
|
|
|
|
|
|
|
DROP AGGREGATE IF EXISTS public.jsonb_arr_aggc(jsonb);
|
|
|
|
CREATE AGGREGATE public.jsonb_arr_aggc(jsonb) (
|
|
|
|
SFUNC=public.jsonb_concat,
|
|
|
|
STYPE=jsonb,
|
|
|
|
INITCOND='[]'
|
|
|
|
);
|
|
|
|
|
|
|
|
DROP AGGREGATE IF EXISTS public.jsonb_obj_aggc(jsonb);
|
|
|
|
CREATE AGGREGATE public.jsonb_obj_aggc(jsonb) (
|
|
|
|
SFUNC=public.jsonb_concat,
|
|
|
|
STYPE=jsonb,
|
|
|
|
INITCOND='{}'
|
2020-01-06 13:55:56 -05:00
|
|
|
);
|