|
17 | 17 | under the License. |
18 | 18 | */ |
19 | 19 |
|
20 | | --- For future fine-grained control over function execution by user group. |
21 | | -ALTER DEFAULT PRIVILEGES REVOKE EXECUTE ON functions FROM public; |
22 | 20 |
|
23 | 21 | -------------------------- TRIGGER FUNCTIONS -------------------------- |
24 | 22 | -- Views that do not select from a single table or view are not |
|
574 | 572 | END |
575 | 573 | $$ |
576 | 574 | LANGUAGE plpgsql; |
577 | | - |
578 | | - |
579 | | --------------------------- IMPORT HELPERS -------------------------- |
580 | | --- Load from JSON (from https://stackoverflow.com/a/48396608) |
581 | | --- How to use it in the psql client: |
582 | | --- \set content `cat /examples/machine.json` |
583 | | --- select ingest_machine(:'content'::jsonb); |
584 | | --- INGEST_MACHINE_VIEW |
585 | | -CREATE OR REPLACE FUNCTION public.ingest_machine_view(from_jsonb jsonb) |
586 | | -RETURNS integer AS |
587 | | -$$ |
588 | | - DECLARE |
589 | | - result integer; |
590 | | - BEGIN |
591 | | - INSERT INTO public.machine_view |
592 | | - SELECT * FROM jsonb_populate_record(null::public.machine_view, from_jsonb) |
593 | | - RETURNING machine_id INTO result; |
594 | | - RETURN result; |
595 | | - END |
596 | | -$$ |
597 | | -LANGUAGE plpgsql; |
598 | | - |
599 | | --- INGEST_BENCHMARK_VIEW |
600 | | -CREATE OR REPLACE FUNCTION public.ingest_benchmark_view(from_jsonb jsonb) |
601 | | -RETURNS setof integer AS |
602 | | -$$ |
603 | | - BEGIN |
604 | | - RETURN QUERY |
605 | | - INSERT INTO public.benchmark_view |
606 | | - SELECT * FROM jsonb_populate_recordset( |
607 | | - null::public.benchmark_view |
608 | | - , from_jsonb |
609 | | - ) |
610 | | - RETURNING benchmark_id; |
611 | | - END |
612 | | -$$ |
613 | | -LANGUAGE plpgsql; |
614 | | - |
615 | | --- INGEST_BENCHMARK_RUN_VIEW |
616 | | -CREATE OR REPLACE FUNCTION public.ingest_benchmark_run_view(from_jsonb jsonb) |
617 | | -RETURNS setof bigint AS |
618 | | -$$ |
619 | | - BEGIN |
620 | | - RETURN QUERY |
621 | | - INSERT INTO public.benchmark_run_view |
622 | | - SELECT * FROM |
623 | | - jsonb_populate_recordset(null::public.benchmark_run_view, from_jsonb) |
624 | | - RETURNING benchmark_run_id; |
625 | | - END |
626 | | -$$ |
627 | | -LANGUAGE plpgsql; |
0 commit comments