@@ -699,13 +699,13 @@ DECLARE
699699v_part_nameTEXT ;
700700v_intervalTEXT ;
701701BEGIN
702+ /* Prevent concurrent partition creation*/
703+ PERFORM @extschema@.acquire_partitions_lock();
704+
702705SELECT attname, range_interval INTO v_attname, v_interval
703706FROM @extschema@.pathman_configWHERE relname::regclass= p_relation;
704707
705708v_atttype := @extschema@.get_attribute_type_name(p_relation, v_attname);
706-
707- /* Prevent concurrent partition creation*/
708- PERFORM @extschema@.acquire_partitions_lock();
709709
710710EXECUTE format(' SELECT @extschema@.append_partition_internal($1, $2, $3, ARRAY[]::%s[])' , v_atttype)
711711INTO v_part_name
@@ -721,8 +721,8 @@ BEGIN
721721RETURN v_part_name;
722722
723723EXCEPTION WHEN others THEN
724- PERFORM @extschema@.release_partitions_lock();
725724RAISE EXCEPTION' % %' , SQLERRM, SQLSTATE;
725+ PERFORM @extschema@.release_partitions_lock();
726726END
727727$$
728728LANGUAGE plpgsql;
@@ -768,13 +768,13 @@ DECLARE
768768v_part_nameTEXT ;
769769v_intervalTEXT ;
770770BEGIN
771+ /* Prevent concurrent partition creation*/
772+ PERFORM @extschema@.acquire_partitions_lock();
773+
771774SELECT attname, range_interval INTO v_attname, v_interval
772775FROM @extschema@.pathman_configWHERE relname::regclass= p_relation;
773776v_atttype := @extschema@.get_attribute_type_name(p_relation, v_attname);
774777
775- /* Prevent concurrent partition creation*/
776- PERFORM @extschema@.acquire_partitions_lock();
777-
778778EXECUTE format(' SELECT @extschema@.prepend_partition_internal($1, $2, $3, ARRAY[]::%s[])' , v_atttype)
779779INTO v_part_name
780780USING p_relation, v_atttype, v_interval;
@@ -789,8 +789,8 @@ BEGIN
789789RETURN v_part_name;
790790
791791EXCEPTION WHEN others THEN
792- PERFORM @extschema@.release_partitions_lock();
793792RAISE EXCEPTION' % %' , SQLERRM, SQLSTATE;
793+ PERFORM @extschema@.release_partitions_lock();
794794END
795795$$
796796LANGUAGE plpgsql;