@@ -693,14 +693,14 @@ DECLARE
693693v_part_nameTEXT ;
694694v_intervalTEXT ;
695695BEGIN
696+ /* Prevent concurrent partition creation*/
697+ PERFORM @extschema@.acquire_partitions_lock();
698+
696699SELECT attname, range_interval INTO v_attname, v_interval
697700FROM @extschema@.pathman_configWHERE relname::regclass= p_relation;
698701
699702v_atttype := @extschema@.get_attribute_type_name(p_relation, v_attname);
700703
701- /* Prevent concurrent partition creation*/
702- PERFORM @extschema@.acquire_partitions_lock();
703-
704704EXECUTE format(' SELECT @extschema@.append_partition_internal($1, $2, $3, ARRAY[]::%s[])' , v_atttype)
705705INTO v_part_name
706706USING p_relation, v_atttype, v_interval;
@@ -715,8 +715,8 @@ BEGIN
715715RETURN v_part_name;
716716
717717EXCEPTION WHEN others THEN
718- PERFORM @extschema@.release_partitions_lock();
719718RAISE EXCEPTION' % %' , SQLERRM, SQLSTATE;
719+ PERFORM @extschema@.release_partitions_lock();
720720END
721721$$
722722LANGUAGE plpgsql;
@@ -762,13 +762,13 @@ DECLARE
762762v_part_nameTEXT ;
763763v_intervalTEXT ;
764764BEGIN
765+ /* Prevent concurrent partition creation*/
766+ PERFORM @extschema@.acquire_partitions_lock();
767+
765768SELECT attname, range_interval INTO v_attname, v_interval
766769FROM @extschema@.pathman_configWHERE relname::regclass= p_relation;
767770v_atttype := @extschema@.get_attribute_type_name(p_relation, v_attname);
768771
769- /* Prevent concurrent partition creation*/
770- PERFORM @extschema@.acquire_partitions_lock();
771-
772772EXECUTE format(' SELECT @extschema@.prepend_partition_internal($1, $2, $3, ARRAY[]::%s[])' , v_atttype)
773773INTO v_part_name
774774USING p_relation, v_atttype, v_interval;
@@ -783,8 +783,8 @@ BEGIN
783783RETURN v_part_name;
784784
785785EXCEPTION WHEN others THEN
786- PERFORM @extschema@.release_partitions_lock();
787786RAISE EXCEPTION' % %' , SQLERRM, SQLSTATE;
787+ PERFORM @extschema@.release_partitions_lock();
788788END
789789$$
790790LANGUAGE plpgsql;