750750DECLARE
751751v_part_nameTEXT ;
752752v_atttypeREGTYPE;
753+ v_args_formatTEXT ;
753754
754755BEGIN
755756IF @extschema@.get_number_of_partitions(parent_relid)= 0 THEN
@@ -769,26 +770,22 @@ BEGIN
769770END IF;
770771
771772IF @extschema@.is_date_type(p_atttype) THEN
772- v_part_name := @extschema@.create_single_range_partition(
773- parent_relid,
774- p_range[2 ],
775- p_range[2 ]+ p_interval::interval,
776- partition_name,
777- tablespace);
773+ v_args_format := format(' $1, $2, ($2 + $3::interval)::%s, $4, $5' , v_atttype::TEXT );
778774ELSE
779- EXECUTE
780- format(' SELECT @extschema@.create_single_range_partition($1, $2, $2 + $3::%s, $4, $5)' ,
781- v_atttype::TEXT )
782- USING
783- parent_relid,
784- p_range[2 ],
785- p_interval,
786- partition_name,
787- tablespace
788- INTO
789- v_part_name;
775+ v_args_format := format(' $1, $2, $2 + $3::%s, $4, $5' , v_atttype::TEXT );
790776END IF;
791777
778+ EXECUTE
779+ format(' SELECT @extschema@.create_single_range_partition(%s)' , v_args_format)
780+ USING
781+ parent_relid,
782+ p_range[2 ],
783+ p_interval,
784+ partition_name,
785+ tablespace
786+ INTO
787+ v_part_name;
788+
792789RETURN v_part_name;
793790END
794791$$
864861DECLARE
865862v_part_nameTEXT ;
866863v_atttypeREGTYPE;
864+ v_args_formatTEXT ;
867865
868866BEGIN
869867IF @extschema@.get_number_of_partitions(parent_relid)= 0 THEN
@@ -883,26 +881,22 @@ BEGIN
883881END IF;
884882
885883IF @extschema@.is_date_type(p_atttype) THEN
886- v_part_name := @extschema@.create_single_range_partition(
887- parent_relid,
888- p_range[1 ]- p_interval::interval,
889- p_range[1 ],
890- partition_name,
891- tablespace);
884+ v_args_format := format(' $1, ($2 - $3::interval)::%s, $2, $4, $5' , v_atttype::TEXT );
892885ELSE
893- EXECUTE
894- format(' SELECT @extschema@.create_single_range_partition($1, $2 - $3::%s, $2, $4, $5)' ,
895- v_atttype::TEXT )
896- USING
897- parent_relid,
898- p_range[1 ],
899- p_interval,
900- partition_name,
901- tablespace
902- INTO
903- v_part_name;
886+ v_args_format := format(' $1, $2 - $3::%s, $2, $4, $5' , v_atttype::TEXT );
904887END IF;
905888
889+ EXECUTE
890+ format(' SELECT @extschema@.create_single_range_partition(%s)' , v_args_format)
891+ USING
892+ parent_relid,
893+ p_range[1 ],
894+ p_interval,
895+ partition_name,
896+ tablespace
897+ INTO
898+ v_part_name;
899+
906900RETURN v_part_name;
907901END
908902$$