diff --git a/postgres/aggregate.md b/postgres/aggregate.md new file mode 100644 index 0000000..9febe2e --- /dev/null +++ b/postgres/aggregate.md @@ -0,0 +1,43 @@ +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='{}' +); \ No newline at end of file diff --git a/ubuntu/networking.md b/ubuntu/networking.md new file mode 100644 index 0000000..79bbdc8 --- /dev/null +++ b/ubuntu/networking.md @@ -0,0 +1,7 @@ +scanning services that are running: + +sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-10000 + +sudo netstat --tcp --udp --listening --program + +sudo lsof +M -i4 -i6 \ No newline at end of file