@@ -488,22 +488,18 @@ BEGIN
488
488
/* Acquire data modification lock (prevent further modifications)*/
489
489
PERFORM @extschema@.prevent_relation_modification(partition_relid);
490
490
491
+ v_atttype= @extschema@.get_partition_key_type(v_parent);
492
+
491
493
SELECT attname, parttype
492
494
FROM @extschema@.pathman_config
493
495
WHERE partrel= v_parent
494
496
INTO v_attname, v_part_type;
495
497
496
- IF v_attname ISNULL THEN
497
- RAISE EXCEPTION' table "%" is not partitioned' , v_parent::TEXT ;
498
- END IF;
499
-
500
498
/* Check if this is a RANGE partition*/
501
499
IF v_part_type!= 2 THEN
502
500
RAISE EXCEPTION' "%" is not a RANGE partition' , partition_relid::TEXT ;
503
501
END IF;
504
502
505
- v_atttype= @extschema@.get_attribute_type(v_parent, v_attname);
506
-
507
503
/* Get partition values range*/
508
504
EXECUTE format(' SELECT @extschema@.get_part_range($1, NULL::%s)' ,
509
505
@extschema@.get_base_type(v_atttype)::TEXT )
@@ -589,7 +585,6 @@ CREATE OR REPLACE FUNCTION @extschema@.append_range_partition(
589
585
RETURNSTEXT AS
590
586
$$
591
587
DECLARE
592
- v_attnameTEXT ;
593
588
v_atttypeREGTYPE;
594
589
v_part_nameTEXT ;
595
590
v_intervalTEXT ;
@@ -600,16 +595,12 @@ BEGIN
600
595
/* Acquire lock on parent*/
601
596
PERFORM @extschema@.lock_partitioned_relation(parent_relid);
602
597
603
- SELECT attname, range_interval
598
+ v_atttype := @extschema@.get_partition_key_type(parent_relid);
599
+
600
+ SELECT range_interval
604
601
FROM @extschema@.pathman_config
605
602
WHERE partrel= parent_relid
606
- INTO v_attname, v_interval;
607
-
608
- IF v_attname ISNULL THEN
609
- RAISE EXCEPTION' table "%" is not partitioned' , parent_relid::TEXT ;
610
- END IF;
611
-
612
- v_atttype := @extschema@.get_attribute_type(parent_relid, v_attname);
603
+ INTO v_interval;
613
604
614
605
EXECUTE
615
606
format(' SELECT @extschema@.append_partition_internal($1, $2, $3, ARRAY[]::%s[], $4, $5)' ,
@@ -700,7 +691,6 @@ CREATE OR REPLACE FUNCTION @extschema@.prepend_range_partition(
700
691
RETURNSTEXT AS
701
692
$$
702
693
DECLARE
703
- v_attnameTEXT ;
704
694
v_atttypeREGTYPE;
705
695
v_part_nameTEXT ;
706
696
v_intervalTEXT ;
@@ -711,16 +701,12 @@ BEGIN
711
701
/* Acquire lock on parent*/
712
702
PERFORM @extschema@.lock_partitioned_relation(parent_relid);
713
703
714
- SELECT attname, range_interval
704
+ v_atttype := @extschema@.get_partition_key_type(parent_relid);
705
+
706
+ SELECT range_interval
715
707
FROM @extschema@.pathman_config
716
708
WHERE partrel= parent_relid
717
- INTO v_attname, v_interval;
718
-
719
- IF v_attname ISNULL THEN
720
- RAISE EXCEPTION' table "%" is not partitioned' , parent_relid::TEXT ;
721
- END IF;
722
-
723
- v_atttype := @extschema@.get_attribute_type(parent_relid, v_attname);
709
+ INTO v_interval;
724
710
725
711
EXECUTE
726
712
format(' SELECT @extschema@.prepend_partition_internal($1, $2, $3, ARRAY[]::%s[], $4, $5)' ,