@@ -89,6 +89,7 @@ RETURNS INTEGER AS
8989$$
9090DECLARE
9191v_rows_countINTEGER ;
92+ v_atttypeREGTYPE;
9293v_maxp_start_value%TYPE;
9394v_cur_valuep_start_value%TYPE := p_start_value;
9495p_end_valuep_start_value%TYPE;
@@ -128,6 +129,8 @@ BEGIN
128129END LOOP;
129130END IF;
130131
132+ v_atttype := @extschema@.get_base_type(pg_typeof(p_start_value));
133+
131134/*
132135 * In case when user doesn't want to automatically create partitions
133136 * and specifies partition count as 0 then do not check boundaries
@@ -146,7 +149,7 @@ BEGIN
146149 p_attribute,
147150 p_start_value,
148151 p_end_value,
149- @extschema@.get_base_type(pg_typeof(p_start_value)) ::TEXT );
152+ v_atttype ::TEXT );
150153END IF;
151154
152155/* Create sequence for child partitions names*/
@@ -162,7 +165,7 @@ BEGIN
162165LOOP
163166EXECUTE
164167format(' SELECT @extschema@.create_single_range_partition($1, $2, $3::%s, tablespace:=$4)' ,
165- @extschema@.get_base_type(pg_typeof(p_start_value)) ::TEXT )
168+ v_atttype ::TEXT )
166169USING
167170parent_relid,
168171p_start_value,
@@ -831,15 +834,18 @@ RETURNS TEXT AS
831834$$
832835DECLARE
833836v_part_nameTEXT ;
837+ v_atttypeREGTYPE;
834838
835839BEGIN
836840IF @extschema@.partitions_count(parent_relid)= 0 THEN
837841RAISE EXCEPTION' cannot append to empty partitions set' ;
838842END IF;
839843
844+ v_atttype := @extschema@.get_base_type(p_atttype);
845+
840846/* We have to pass fake NULL casted to column's type*/
841847EXECUTE format(' SELECT @extschema@.get_part_range($1, -1, NULL::%s)' ,
842- @extschema@.get_base_type(p_atttype) ::TEXT )
848+ v_atttype ::TEXT )
843849USING parent_relid
844850INTO p_range;
845851
@@ -853,7 +859,7 @@ BEGIN
853859ELSE
854860EXECUTE
855861format(' SELECT @extschema@.create_single_range_partition($1, $2, $2 + $3::%s, $4, $5)' ,
856- @extschema@.get_base_type(p_atttype) ::TEXT )
862+ v_atttype ::TEXT )
857863USING
858864parent_relid,
859865p_range[2 ],
@@ -933,15 +939,18 @@ RETURNS TEXT AS
933939$$
934940DECLARE
935941v_part_nameTEXT ;
942+ v_atttypeREGTYPE;
936943
937944BEGIN
938945IF @extschema@.partitions_count(parent_relid)= 0 THEN
939946RAISE EXCEPTION' cannot prepend to empty partitions set' ;
940947END IF;
941948
949+ v_atttype := @extschema@.get_base_type(p_atttype);
950+
942951/* We have to pass fake NULL casted to column's type*/
943952EXECUTE format(' SELECT @extschema@.get_part_range($1, 0, NULL::%s)' ,
944- @extschema@.get_base_type(p_atttype) ::TEXT )
953+ v_atttype ::TEXT )
945954USING parent_relid
946955INTO p_range;
947956
@@ -955,7 +964,7 @@ BEGIN
955964ELSE
956965EXECUTE
957966format(' SELECT @extschema@.create_single_range_partition($1, $2 - $3::%s, $2, $4, $5)' ,
958- @extschema@.get_base_type(p_atttype) ::TEXT )
967+ v_atttype ::TEXT )
959968USING
960969parent_relid,
961970p_range[1 ],
@@ -1117,7 +1126,7 @@ DECLARE
11171126parent_relidREGCLASS;
11181127
11191128BEGIN
1120- parent_relid= @extschema@.get_parent_of_partition(p_partition);
1129+ parent_relid: = @extschema@.get_parent_of_partition(p_partition);
11211130
11221131/* Acquire lock on parent*/
11231132PERFORM @extschema@.lock_partitioned_relation(parent_relid);