@@ -138,7 +138,7 @@ BEGIN
138138 p_attribute,
139139 p_start_value,
140140 p_start_value+ p_interval* p_count,
141- pg_typeof(p_start_value));
141+ @extschema@.get_base_type( pg_typeof(p_start_value)):: TEXT );
142142END IF;
143143
144144/* Create sequence for child partitions names*/
@@ -153,7 +153,7 @@ BEGIN
153153FOR iIN 1 ..p_count
154154LOOP
155155EXECUTE format(' SELECT @extschema@.create_single_range_partition($1, $2, $3::%s)' ,
156- pg_typeof(p_start_value))
156+ @extschema@.get_base_type( pg_typeof(p_start_value)):: TEXT )
157157USING parent_relid, p_start_value, p_start_value+ p_interval;
158158
159159p_start_value := p_start_value+ p_interval;
@@ -283,7 +283,7 @@ CREATE OR REPLACE FUNCTION @extschema@.create_partitions_from_range(
283283p_start_valueANYELEMENT,
284284p_end_valueANYELEMENT,
285285p_intervalANYELEMENT,
286- partition_dataBOOLEAN DEFAULT true)
286+ partition_dataBOOLEAN DEFAULT true)
287287RETURNSINTEGER AS
288288$$
289289DECLARE
@@ -353,7 +353,7 @@ CREATE OR REPLACE FUNCTION @extschema@.create_partitions_from_range(
353353p_start_valueANYELEMENT,
354354p_end_valueANYELEMENT,
355355p_intervalINTERVAL,
356- partition_dataBOOLEAN DEFAULT true)
356+ partition_dataBOOLEAN DEFAULT true)
357357RETURNSINTEGER AS
358358$$
359359DECLARE
@@ -389,7 +389,7 @@ BEGIN
389389WHILE p_start_value<= p_end_value
390390LOOP
391391EXECUTE format(' SELECT @extschema@.create_single_range_partition($1, $2, $3::%s);' ,
392- pg_typeof(p_start_value))
392+ @extschema@.get_base_type( pg_typeof(p_start_value)):: TEXT )
393393USING parent_relid, p_start_value, p_start_value+ p_interval;
394394
395395p_start_value := p_start_value+ p_interval;
@@ -588,7 +588,7 @@ DECLARE
588588v_parent_relid2REGCLASS;
589589v_attnameTEXT ;
590590v_part_typeINTEGER ;
591- v_atttypeTEXT ;
591+ v_atttypeREGTYPE ;
592592
593593BEGIN
594594IF partition1= partition2 THEN
@@ -623,10 +623,10 @@ BEGIN
623623RAISE EXCEPTION' Specified partitions aren' ' t RANGE partitions' ;
624624END IF;
625625
626- v_atttype := @extschema@.get_attribute_type_name (partition1, v_attname);
626+ v_atttype := @extschema@.get_attribute_type (partition1, v_attname);
627627
628628EXECUTE format(' SELECT @extschema@.merge_range_partitions_internal($1, $2, $3, NULL::%s)' ,
629- v_atttype)
629+ @extschema@.get_base_type( v_atttype):: TEXT )
630630USING v_parent_relid1, partition1, partition2;
631631
632632/* Tell backend to reload configuration*/
@@ -713,7 +713,7 @@ RETURNS TEXT AS
713713$$
714714DECLARE
715715v_attnameTEXT ;
716- v_atttypeTEXT ;
716+ v_atttypeREGTYPE ;
717717v_part_nameTEXT ;
718718v_intervalTEXT ;
719719
@@ -730,12 +730,11 @@ BEGIN
730730RAISE EXCEPTION' Table "%" is not partitioned' , parent_relid::TEXT ;
731731END IF;
732732
733- v_atttype := @extschema@.get_attribute_type_name (parent_relid, v_attname);
733+ v_atttype := @extschema@.get_attribute_type (parent_relid, v_attname);
734734
735735EXECUTE
736- format(
737- ' SELECT @extschema@.append_partition_internal($1, $2, $3, ARRAY[]::%s[], $4)' ,
738- v_atttype)
736+ format(' SELECT @extschema@.append_partition_internal($1, $2, $3, ARRAY[]::%s[], $4)' ,
737+ @extschema@.get_base_type(v_atttype)::TEXT )
739738USING
740739parent_relid,
741740v_atttype,
@@ -759,7 +758,7 @@ LANGUAGE plpgsql;
759758*/
760759CREATEOR REPLACE FUNCTION @extschema@.append_partition_internal(
761760parent_relidREGCLASS,
762- p_atttypeTEXT ,
761+ p_atttypeREGTYPE ,
763762p_intervalTEXT ,
764763p_rangeANYARRAY DEFAULTNULL ,
765764partition_nameTEXT DEFAULTNULL )
@@ -775,17 +774,16 @@ BEGIN
775774
776775p_range := @extschema@.get_range_by_idx(parent_relid,- 1 ,0 );
777776
778- IF @extschema@.is_date_type(p_atttype::regtype ) THEN
777+ IF @extschema@.is_date_type(p_atttype) THEN
779778v_part_name := @extschema@.create_single_range_partition(
780779parent_relid,
781780p_range[2 ],
782781p_range[2 ]+ p_interval::interval,
783782partition_name);
784783ELSE
785784EXECUTE
786- format(
787- ' SELECT @extschema@.create_single_range_partition($1, $2, $2 + $3::%s, $4)' ,
788- p_atttype)
785+ format(' SELECT @extschema@.create_single_range_partition($1, $2, $2 + $3::%s, $4)' ,
786+ @extschema@.get_base_type(p_atttype)::TEXT )
789787USING
790788parent_relid,
791789p_range[2 ],
@@ -811,7 +809,7 @@ RETURNS TEXT AS
811809$$
812810DECLARE
813811v_attnameTEXT ;
814- v_atttypeTEXT ;
812+ v_atttypeREGTYPE ;
815813v_part_nameTEXT ;
816814v_intervalTEXT ;
817815
@@ -825,12 +823,11 @@ BEGIN
825823RAISE EXCEPTION' Table "%" is not partitioned' , parent_relid::TEXT ;
826824END IF;
827825
828- v_atttype := @extschema@.get_attribute_type_name (parent_relid, v_attname);
826+ v_atttype := @extschema@.get_attribute_type (parent_relid, v_attname);
829827
830828EXECUTE
831- format(
832- ' SELECT @extschema@.prepend_partition_internal($1, $2, $3, ARRAY[]::%s[], $4)' ,
833- v_atttype)
829+ format(' SELECT @extschema@.prepend_partition_internal($1, $2, $3, ARRAY[]::%s[], $4)' ,
830+ @extschema@.get_base_type(v_atttype)::TEXT )
834831USING
835832parent_relid,
836833v_atttype,
@@ -854,7 +851,7 @@ LANGUAGE plpgsql;
854851*/
855852CREATEOR REPLACE FUNCTION @extschema@.prepend_partition_internal(
856853parent_relidREGCLASS,
857- p_atttypeTEXT ,
854+ p_atttypeREGTYPE ,
858855p_intervalTEXT ,
859856p_rangeANYARRAY DEFAULTNULL ,
860857partition_nameTEXT DEFAULTNULL )
@@ -870,17 +867,16 @@ BEGIN
870867
871868p_range := @extschema@.get_range_by_idx(parent_relid,0 ,0 );
872869
873- IF @extschema@.is_date_type(p_atttype::regtype ) THEN
870+ IF @extschema@.is_date_type(p_atttype) THEN
874871v_part_name := @extschema@.create_single_range_partition(
875872parent_relid,
876873p_range[1 ]- p_interval::interval,
877874p_range[1 ],
878875partition_name);
879876ELSE
880877EXECUTE
881- format(
882- ' SELECT @extschema@.create_single_range_partition($1, $2 - $3::%s, $2, $4)' ,
883- p_atttype)
878+ format(' SELECT @extschema@.create_single_range_partition($1, $2 - $3::%s, $2, $4)' ,
879+ @extschema@.get_base_type(p_atttype)::TEXT )
884880USING
885881parent_relid,
886882p_range[1 ],