File tree Expand file tree Collapse file tree 3 files changed +74
-10
lines changed Expand file tree Collapse file tree 3 files changed +74
-10
lines changed Original file line number Diff line number Diff line change @@ -777,6 +777,52 @@ SELECT merge_range_partitions('{calamity.merge_test_a_1,
777777ERROR: cannot merge partitions
778778DROP TABLE calamity.merge_test_a,calamity.merge_test_b CASCADE;
779779NOTICE: drop cascades to 4 other objects
780+ /* check function drop_triggers() */
781+ CREATE TABLE calamity.trig_test_tbl(val INT4 NOT NULL);
782+ SELECT create_hash_partitions('calamity.trig_test_tbl', 'val', 2);
783+ create_hash_partitions
784+ ------------------------
785+ 2
786+ (1 row)
787+
788+ SELECT create_update_triggers('calamity.trig_test_tbl');
789+ create_update_triggers
790+ ------------------------
791+
792+ (1 row)
793+
794+ SELECT count(*) FROM pg_trigger WHERE tgrelid = 'calamity.trig_test_tbl'::REGCLASS;
795+ count
796+ -------
797+ 1
798+ (1 row)
799+
800+ SELECT count(*) FROM pg_trigger WHERE tgrelid = 'calamity.trig_test_tbl_1'::REGCLASS;
801+ count
802+ -------
803+ 1
804+ (1 row)
805+
806+ SELECT drop_triggers('calamity.trig_test_tbl'); /* OK */
807+ drop_triggers
808+ ---------------
809+
810+ (1 row)
811+
812+ SELECT count(*) FROM pg_trigger WHERE tgrelid = 'calamity.trig_test_tbl'::REGCLASS;
813+ count
814+ -------
815+ 0
816+ (1 row)
817+
818+ SELECT count(*) FROM pg_trigger WHERE tgrelid = 'calamity.trig_test_tbl_1'::REGCLASS;
819+ count
820+ -------
821+ 0
822+ (1 row)
823+
824+ DROP TABLE calamity.trig_test_tbl CASCADE;
825+ NOTICE: drop cascades to 2 other objects
780826DROP SCHEMA calamity CASCADE;
781827NOTICE: drop cascades to 20 other objects
782828DROP EXTENSION pg_pathman;
Original file line number Diff line number Diff line change @@ -447,7 +447,7 @@ CREATE OR REPLACE FUNCTION @extschema@.prepare_for_partitioning(
447447RETURNS VOID AS
448448$$
449449DECLARE
450- constr_name TEXT ;
450+ constr_name TEXT ;
451451 is_referenced BOOLEAN ;
452452 rel_persistence CHAR ;
453453
@@ -516,9 +516,10 @@ CREATE OR REPLACE FUNCTION @extschema@.pathman_ddl_trigger_func()
516516RETURNS event_trigger AS
517517$$
518518DECLARE
519- obj record;
520- pg_class_oid oid ;
521- relids regclass[];
519+ obj RECORD;
520+ pg_class_oid OID ;
521+ relids REGCLASS[];
522+
522523BEGIN
523524 pg_class_oid = ' pg_catalog.pg_class' ::regclass;
524525
@@ -545,20 +546,21 @@ CREATE OR REPLACE FUNCTION @extschema@.drop_triggers(
545546RETURNS VOID AS
546547$$
547548DECLARE
548- triggername TEXT ;
549- rec RECORD ;
549+ triggername TEXT ;
550+ relation OID ;
550551
551552BEGIN
552553 triggername := @extschema@.build_update_trigger_name(parent_relid);
553554
554555 /* Drop trigger for each partition if exists */
555- FOR rec IN (SELECT pg_catalog .pg_inherits .* FROM pg_catalog .pg_inherits
556- JOIN pg_catalog .pg_trigger ON inhrelid = tgrelid
557- WHERE inhparent = parent_relid AND tgname = triggername)
556+ FOR relation IN (SELECT pg_catalog .pg_inherits .inhrelid
557+ FROM pg_catalog .pg_inherits
558+ JOIN pg_catalog .pg_trigger ON inhrelid = tgrelid
559+ WHERE inhparent = parent_relid AND tgname = triggername)
558560 LOOP
559561 EXECUTE format(' DROP TRIGGER IF EXISTS %s ON %s' ,
560562 triggername,
561- rec . inhrelid ::REGCLASS:: TEXT );
563+ relation ::REGCLASS);
562564 END LOOP;
563565
564566 /* Drop trigger on parent */
Original file line number Diff line number Diff line change @@ -333,6 +333,22 @@ SELECT merge_range_partitions('{calamity.merge_test_a_1,
333333DROP TABLE calamity .merge_test_a ,calamity .merge_test_b CASCADE;
334334
335335
336+ /* check function drop_triggers() */
337+ CREATE TABLE calamity .trig_test_tbl(val INT4 NOT NULL );
338+ SELECT create_hash_partitions(' calamity.trig_test_tbl' , ' val' , 2 );
339+ SELECT create_update_triggers(' calamity.trig_test_tbl' );
340+
341+ SELECT count (* ) FROM pg_trigger WHERE tgrelid = ' calamity.trig_test_tbl' ::REGCLASS;
342+ SELECT count (* ) FROM pg_trigger WHERE tgrelid = ' calamity.trig_test_tbl_1' ::REGCLASS;
343+
344+ SELECT drop_triggers(' calamity.trig_test_tbl' ); /* OK */
345+
346+ SELECT count (* ) FROM pg_trigger WHERE tgrelid = ' calamity.trig_test_tbl' ::REGCLASS;
347+ SELECT count (* ) FROM pg_trigger WHERE tgrelid = ' calamity.trig_test_tbl_1' ::REGCLASS;
348+
349+ DROP TABLE calamity .trig_test_tbl CASCADE;
350+
351+
336352DROP SCHEMA calamity CASCADE;
337353DROP EXTENSION pg_pathman;
338354
You can’t perform that action at this time.
0 commit comments