1- /*
2- * Drop triggers
3- */
4- CREATEOR REPLACE FUNCTION @extschema@.drop_triggers(
5- parent_relidREGCLASS)
6- RETURNS VOIDAS $$
7- DECLARE
8- triggernameTEXT ;
9- relationOID ;
10-
11- BEGIN
12- triggername := concat(parent_relid::text ,' _upd_trig' );
13-
14- /* Drop trigger for each partition if exists*/
15- FOR relationIN (SELECT pg_catalog .pg_inherits .inhrelid
16- FROM pg_catalog .pg_inherits
17- JOIN pg_catalog .pg_trigger ON inhrelid= tgrelid
18- WHERE inhparent= parent_relidAND tgname= triggername)
19- LOOP
20- EXECUTE format(' DROP TRIGGER IF EXISTS %s ON %s' ,
21- triggername,
22- relation::REGCLASS);
23- END LOOP;
24-
25- /* Drop trigger on parent*/
26- IF EXISTS (SELECT * FROM pg_catalog .pg_trigger
27- WHERE tgname= triggernameAND tgrelid= parent_relid)
28- THEN
29- EXECUTE format(' DROP TRIGGER IF EXISTS %s ON %s' ,
30- triggername,
31- parent_relid::TEXT );
32- END IF;
33- END
34- $$ LANGUAGE plpgsql STRICT;
35-
36- DO $$
37- DECLARE r record;
38- BEGIN
39- FOR rIN SELECT parent_relidFROM @extschema@.pathman_config
40- LOOP
41- PERFORM @extschema@.drop_triggers(r .parent_relid );+
42- END LOOP;
43- END$$;
44-
451/*
462 * Add new partition
473*/
685641$$ LANGUAGE plpgsql
686642SET pg_pathman .enable_partitionfilter = off;/* ensures that PartitionFilter is OFF*/
687643
688- -- deprecated
689- CREATE OR REPLACE FUNCTION public .get_pathman_lib_version()
644+ CREATE FUNCTION @extschema@.pathman_version()
690645RETURNS CSTRINGAS ' pg_pathman' ,' pathman_version'
691646LANGUAGE C STRICT;
692647
@@ -706,7 +661,8 @@ LANGUAGE sql STRICT;
706661/*
707662 * Get partitioning key.
708663*/
709- CREATEOR REPLACE FUNCTION @extschema@.get_partition_key(
664+ DROP FUNCTION @extschema@.get_partition_key(REGCLASS);
665+ CREATE FUNCTION @extschema@.get_partition_key(
710666parent_relidREGCLASS)
711667RETURNSTEXT AS
712668$$
@@ -719,14 +675,16 @@ LANGUAGE sql STRICT;
719675/*
720676 * Get partitioning key type.
721677*/
722- CREATEOR REPLACE FUNCTION @extschema@.get_partition_key_type(
678+ DROP FUNCTION @extschema@.get_partition_key_type(REGCLASS);
679+ CREATE FUNCTION @extschema@.get_partition_key_type(
723680parent_relidREGCLASS)
724681RETURNS REGTYPEAS ' pg_pathman' ,' get_partition_key_type_pl'
725682LANGUAGE C STRICT;
726683
727684/*
728685 * Get partitioning type.
729686*/
687+ DROP FUNCTION @extschema@.get_partition_type(REGCLASS);
730688CREATEOR REPLACE FUNCTION @extschema@.get_partition_type(
731689parent_relidREGCLASS)
732690RETURNS INT4AS
@@ -798,7 +756,9 @@ $$ LANGUAGE plpgsql;
798756/*
799757 * Show all existing concurrent partitioning tasks.
800758*/
801- CREATEOR REPLACE FUNCTION @extschema@.show_concurrent_part_tasks()
759+ DROP VIEW @extschema@.pathman_concurrent_part_tasks;
760+ DROP FUNCTION @extschema@.show_concurrent_part_tasks();
761+ CREATE FUNCTION @extschema@.show_concurrent_part_tasks()
802762RETURNS TABLE (
803763useridREGROLE,
804764pidINT ,
@@ -809,6 +769,10 @@ RETURNS TABLE (
809769AS ' pg_pathman' ,' show_concurrent_part_tasks_internal'
810770LANGUAGE C STRICT;
811771
772+ CREATE VIEW @extschema@.pathman_concurrent_part_tasks
773+ AS SELECT * FROM @extschema@.show_concurrent_part_tasks();
774+ GRANT SELECT ON @extschema@.pathman_concurrent_part_tasks TO PUBLIC;
775+
812776/*
813777 * Split RANGE partition in two using a pivot.
814778*/
@@ -821,13 +785,11 @@ CREATE OR REPLACE FUNCTION @extschema@.split_range_partition(
821785RETURNS REGCLASSAS ' pg_pathman' ,' split_range_partition'
822786LANGUAGE C;
823787
824- ALTER TABLE public .pathman_concurrent_part_tasks
825- ALTER COLUMN processedSET TYPEbigint ;
826-
827788DROP FUNCTION @extschema@.build_update_trigger_func_name(regclass);
828789DROP FUNCTION @extschema@.build_update_trigger_name(regclass);
829790DROP FUNCTION @extschema@.create_single_update_trigger(regclass, regclass);
830791DROP FUNCTION @extschema@.create_update_triggers(regclass);
831792DROP FUNCTION @extschema@.drop_triggers(regclass);
832793DROP FUNCTION @extschema@.has_update_trigger(regclass);
833- DROP FUNCTION @extschema@.pathman_update_trigger_func();
794+ DROP FUNCTION @extschema@.pathman_update_trigger_func() CASCADE;
795+ DROP FUNCTION @extschema@.get_pathman_lib_version();