@@ -107,8 +107,7 @@ BEGIN
107107 RETURN p_count;
108108
109109EXCEPTION WHEN others THEN
110- PERFORM @extschema@.on_remove_partitions(p_relation::integer );
111- RAISE EXCEPTION ' % %' , SQLERRM, SQLSTATE;
110+ RAISE EXCEPTION ' %' , SQLERRM;
112111END
113112$$ LANGUAGE plpgsql;
114113
@@ -188,6 +187,7 @@ BEGIN
188187 /* Create triggers */
189188 PERFORM @extschema@.create_range_insert_trigger(p_relation, p_attribute);
190189 -- PERFORM create_hash_update_trigger(relation, attribute, partitions_count);
190+
191191 /* Notify backend about changes */
192192 PERFORM @extschema@.on_create_partitions(p_relation::regclass::oid );
193193
@@ -197,8 +197,7 @@ BEGIN
197197 RETURN p_count;
198198
199199EXCEPTION WHEN others THEN
200- PERFORM @extschema@.on_remove_partitions(p_relation::regclass::integer );
201- RAISE EXCEPTION ' % %' , SQLERRM, SQLSTATE;
200+ RAISE EXCEPTION ' %' , SQLERRM;
202201END
203202$$ LANGUAGE plpgsql;
204203
@@ -262,8 +261,7 @@ BEGIN
262261 RETURN i;
263262
264263EXCEPTION WHEN others THEN
265- PERFORM @extschema@.on_remove_partitions(p_relation::regclass::integer );
266- RAISE EXCEPTION ' % %' , SQLERRM, SQLSTATE;
264+ RAISE EXCEPTION ' %' , SQLERRM;
267265END
268266$$ LANGUAGE plpgsql;
269267
@@ -322,8 +320,7 @@ BEGIN
322320 RETURN i;
323321
324322EXCEPTION WHEN others THEN
325- PERFORM @extschema@.on_remove_partitions(p_relation::regclass::integer );
326- RAISE EXCEPTION ' % %' , SQLERRM, SQLSTATE;
323+ RAISE EXCEPTION ' %' , SQLERRM;
327324END
328325$$ LANGUAGE plpgsql;
329326
@@ -409,19 +406,19 @@ CREATE OR REPLACE FUNCTION @extschema@.create_single_range_partition(
409406RETURNS TEXT AS
410407$$
411408DECLARE
412- v_part_num INT ;
409+ v_part_num INT ;
413410 v_child_relname TEXT ;
414- v_plain_child_relname TEXT ;
411+ v_plain_child_relname TEXT ;
415412 v_attname TEXT ;
416- v_sql TEXT ;
417- v_cond TEXT ;
418- v_plain_schema TEXT ;
419- v_plain_relname TEXT ;
420- v_child_relname_exists INTEGER := 1 ;
421- v_seq_name TEXT ;
413+ v_sql TEXT ;
414+ v_cond TEXT ;
415+ v_plain_schema TEXT ;
416+ v_plain_relname TEXT ;
417+ v_child_relname_exists INTEGER := 1 ;
418+ v_seq_name TEXT ;
422419BEGIN
423- v_attname := attname FROM @extschema@.pathman_config
424- WHERE relname::regclass = p_parent;
420+ v_attname := attname FROM @extschema@.pathman_config
421+ WHERE relname::regclass = p_parent;
425422
426423 IF v_attname IS NULL THEN
427424 RAISE EXCEPTION ' Table % is not partitioned' , quote_ident(p_parent::TEXT );
@@ -432,36 +429,36 @@ BEGIN
432429
433430 v_seq_name := @extschema@.get_sequence_name(v_plain_schema, v_plain_relname);
434431
435- /* get next value from sequence */
436- LOOP
437- v_part_num := nextval(v_seq_name);
438- v_plain_child_relname := format(' %s_%s' , v_plain_relname, v_part_num);
439- v_child_relname := format(' %s.%s' ,
440- v_plain_schema,
441- quote_ident(v_plain_child_relname));
442- v_child_relname_exists := count (* )
443- FROM pg_class
444- WHERE relnamespace::regnamespace || ' .' || relname = v_child_relname
445- LIMIT 1 ;
446- EXIT WHEN v_child_relname_exists = 0 ;
447- END LOOP;
448-
449- EXECUTE format(' CREATE TABLE %s (LIKE %s INCLUDING ALL)'
450- , v_child_relname
451- , p_parent);
452-
453- EXECUTE format(' ALTER TABLE %s INHERIT %s'
454- , v_child_relname
455- , p_parent);
456-
457- v_cond := @extschema@.get_range_condition(v_attname, p_start_value, p_end_value);
458- v_sql := format(' ALTER TABLE %s ADD CONSTRAINT %s CHECK (%s)'
459- , v_child_relname
460- , quote_ident(format(' %s_%s_check' , v_plain_schema, v_plain_child_relname))
461- , v_cond);
462-
463- EXECUTE v_sql;
464- RETURN v_child_relname;
432+ /* get next value from sequence */
433+ LOOP
434+ v_part_num := nextval(v_seq_name);
435+ v_plain_child_relname := format(' %s_%s' , v_plain_relname, v_part_num);
436+ v_child_relname := format(' %s.%s' ,
437+ v_plain_schema,
438+ quote_ident(v_plain_child_relname));
439+ v_child_relname_exists := count (* )
440+ FROM pg_class
441+ WHERE relnamespace::regnamespace || ' .' || relname = v_child_relname
442+ LIMIT 1 ;
443+ EXIT WHEN v_child_relname_exists = 0 ;
444+ END LOOP;
445+
446+ EXECUTE format(' CREATE TABLE %s (LIKE %s INCLUDING ALL)'
447+ , v_child_relname
448+ , p_parent);
449+
450+ EXECUTE format(' ALTER TABLE %s INHERIT %s'
451+ , v_child_relname
452+ , p_parent);
453+
454+ v_cond := @extschema@.get_range_condition(v_attname, p_start_value, p_end_value);
455+ v_sql := format(' ALTER TABLE %s ADD CONSTRAINT %s CHECK (%s)'
456+ , v_child_relname
457+ , quote_ident(format(' %s_%s_check' , v_plain_schema, v_plain_child_relname))
458+ , v_cond);
459+
460+ EXECUTE v_sql;
461+ RETURN v_child_relname;
465462END
466463$$ LANGUAGE plpgsql;
467464
@@ -743,7 +740,7 @@ BEGIN
743740 RETURN v_part_name;
744741
745742EXCEPTION WHEN others THEN
746- RAISE EXCEPTION ' % % ' , SQLERRM, SQLSTATE ;
743+ RAISE EXCEPTION ' %' , SQLERRM;
747744END
748745$$
749746LANGUAGE plpgsql;
@@ -817,7 +814,7 @@ BEGIN
817814 RETURN v_part_name;
818815
819816EXCEPTION WHEN others THEN
820- RAISE EXCEPTION ' % % ' , SQLERRM, SQLSTATE ;
817+ RAISE EXCEPTION ' %' , SQLERRM;
821818END
822819$$
823820LANGUAGE plpgsql;
@@ -887,7 +884,7 @@ BEGIN
887884 RETURN v_part_name;
888885
889886EXCEPTION WHEN others THEN
890- RAISE EXCEPTION ' % % ' , SQLERRM, SQLSTATE ;
887+ RAISE EXCEPTION ' %' , SQLERRM;
891888END
892889$$
893890LANGUAGE plpgsql;
@@ -926,7 +923,7 @@ BEGIN
926923 RETURN v_part_name;
927924
928925EXCEPTION WHEN others THEN
929- RAISE EXCEPTION ' % % ' , SQLERRM, SQLSTATE ;
926+ RAISE EXCEPTION ' %' , SQLERRM;
930927END
931928$$
932929LANGUAGE plpgsql;
@@ -959,15 +956,13 @@ BEGIN
959956 /* Prevent concurrent partition management */
960957 PERFORM @extschema@.acquire_partitions_lock();
961958
962- -- p_relation := @extschema@.validate_relname(p_relation);
963-
964959 IF @extschema@.check_overlap(p_relation::oid , p_start_value, p_end_value) != FALSE THEN
965960 RAISE EXCEPTION ' Specified range overlaps with existing partitions' ;
966961 END IF;
967962
968- IF NOT @extschema@.validate_relations_equality(p_relation, p_partition) THEN
969- RAISE EXCEPTION ' Partition must have the exact same structure as parent' ;
970- END IF;
963+ IF NOT @extschema@.validate_relations_equality(p_relation, p_partition) THEN
964+ RAISE EXCEPTION ' Partition must have the exact same structure as parent' ;
965+ END IF;
971966
972967 /* Set inheritance */
973968 EXECUTE format(' ALTER TABLE %s INHERIT %s'
@@ -1001,7 +996,7 @@ BEGIN
1001996 RETURN p_partition;
1002997
1003998EXCEPTION WHEN others THEN
1004- RAISE EXCEPTION ' % % ' , SQLERRM, SQLSTATE ;
999+ RAISE EXCEPTION ' %' , SQLERRM;
10051000END
10061001$$
10071002LANGUAGE plpgsql;
@@ -1042,7 +1037,7 @@ BEGIN
10421037 RETURN p_partition;
10431038
10441039EXCEPTION WHEN others THEN
1045- RAISE EXCEPTION ' % % ' , SQLERRM, SQLSTATE ;
1040+ RAISE EXCEPTION ' %' , SQLERRM;
10461041END
10471042$$
10481043LANGUAGE plpgsql;
0 commit comments