Skip to content

Commit 7a9ce75

Browse files
committed
print an error in exception block of append_range_partition() before releasing lock
1 parent 67aa0a6 commit 7a9ce75

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

range.sql

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -699,13 +699,13 @@ DECLARE
699699
v_part_name TEXT;
700700
v_interval TEXT;
701701
BEGIN
702+
/* Prevent concurrent partition creation */
703+
PERFORM @extschema@.acquire_partitions_lock();
704+
702705
SELECT attname, range_interval INTO v_attname, v_interval
703706
FROM @extschema@.pathman_config WHERE relname::regclass = p_relation;
704707

705708
v_atttype := @extschema@.get_attribute_type_name(p_relation, v_attname);
706-
707-
/* Prevent concurrent partition creation */
708-
PERFORM @extschema@.acquire_partitions_lock();
709709

710710
EXECUTE format('SELECT @extschema@.append_partition_internal($1, $2, $3, ARRAY[]::%s[])', v_atttype)
711711
INTO v_part_name
@@ -721,8 +721,8 @@ BEGIN
721721
RETURN v_part_name;
722722

723723
EXCEPTION WHEN others THEN
724-
PERFORM @extschema@.release_partitions_lock();
725724
RAISE EXCEPTION '% %', SQLERRM, SQLSTATE;
725+
PERFORM @extschema@.release_partitions_lock();
726726
END
727727
$$
728728
LANGUAGE plpgsql;
@@ -768,13 +768,13 @@ DECLARE
768768
v_part_name TEXT;
769769
v_interval TEXT;
770770
BEGIN
771+
/* Prevent concurrent partition creation */
772+
PERFORM @extschema@.acquire_partitions_lock();
773+
771774
SELECT attname, range_interval INTO v_attname, v_interval
772775
FROM @extschema@.pathman_config WHERE relname::regclass = p_relation;
773776
v_atttype := @extschema@.get_attribute_type_name(p_relation, v_attname);
774777

775-
/* Prevent concurrent partition creation */
776-
PERFORM @extschema@.acquire_partitions_lock();
777-
778778
EXECUTE format('SELECT @extschema@.prepend_partition_internal($1, $2, $3, ARRAY[]::%s[])', v_atttype)
779779
INTO v_part_name
780780
USING p_relation, v_atttype, v_interval;
@@ -789,8 +789,8 @@ BEGIN
789789
RETURN v_part_name;
790790

791791
EXCEPTION WHEN others THEN
792-
PERFORM @extschema@.release_partitions_lock();
793792
RAISE EXCEPTION '% %', SQLERRM, SQLSTATE;
793+
PERFORM @extschema@.release_partitions_lock();
794794
END
795795
$$
796796
LANGUAGE plpgsql;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy