@@ -85,40 +85,27 @@ Datum pcpatch_setpcid(PG_FUNCTION_ARGS)
8585PG_FUNCTION_INFO_V1 (pcpatch_transform );
8686Datum pcpatch_transform (PG_FUNCTION_ARGS )
8787{
88+ PCPATCH * patch , * paout ;
8889 SERIALIZED_PATCH * serpatch ;
8990 SERIALIZED_PATCH * serpa = PG_GETARG_SERPATCH_P (0 );
9091 int32 pcid = PG_GETARG_INT32 (1 );
9192 float8 def = PG_GETARG_FLOAT8 (2 );
9293 PCSCHEMA * oschema = pc_schema_from_pcid (serpa -> pcid , fcinfo );
9394 PCSCHEMA * nschema = pc_schema_from_pcid (pcid , fcinfo );
9495
95- // fast path to setpcid if no data transformation is required
96-
97- if (pc_schema_same_interpretations (oschema , nschema ))
98- {
99- serpatch = pcpatch_set_schema (serpa , oschema , nschema , def );
100- if (!serpatch )
101- PG_RETURN_NULL ();
102- PG_RETURN_POINTER (serpatch );
103- }
104- else
105- {
106- PCPATCH * patch , * paout ;
107-
108- patch = pc_patch_deserialize (serpa , oschema );
109- if (!patch )
110- PG_RETURN_NULL ();
96+ patch = pc_patch_deserialize (serpa , oschema );
97+ if (!patch )
98+ PG_RETURN_NULL ();
11199
112- paout = pc_patch_transform (patch , nschema , def );
100+ paout = pc_patch_transform (patch , nschema , def );
113101
114- pc_patch_free (patch );
102+ pc_patch_free (patch );
115103
116- if (!paout )
117- PG_RETURN_NULL ();
104+ if (!paout )
105+ PG_RETURN_NULL ();
118106
119- serpatch = pc_patch_serialize (paout , NULL );
120- pc_patch_free (paout );
107+ serpatch = pc_patch_serialize (paout , NULL );
108+ pc_patch_free (paout );
121109
122- PG_RETURN_POINTER (serpatch );
123- }
110+ PG_RETURN_POINTER (serpatch );
124111}
0 commit comments