MCPcopy Create free account
hub / github.com/apache/cloudberry / svec_out_internal

Function svec_out_internal

gpcontrib/gp_sparse_vector/sparse_vector.c:169–201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

167}
168
169char *
170svec_out_internal(SvecType *svec)
171{
172 char *ix_string,*vals_string,*result;
173 int ixlen,vslen;
174 SparseData sdata=sdata_from_svec(svec);
175 int64 *array_ix =sdata_index_to_int64arr(sdata);
176 ArrayType *pgarray_ix,*pgarray_vals;
177
178 pgarray_ix = construct_array((Datum *)array_ix,
179 sdata->unique_value_count,INT8OID,
180 sizeof(int64),true,'d');
181
182 ix_string=DatumGetPointer(OidFunctionCall1(F_ARRAY_OUT,
183 PointerGetDatum(pgarray_ix)));
184 ixlen = strlen(ix_string);
185
186 pgarray_vals = construct_array((Datum *)sdata->vals->data,
187 sdata->unique_value_count,FLOAT8OID,
188 sizeof(float8),true,'d');
189 vals_string=DatumGetPointer(OidFunctionCall1(F_ARRAY_OUT,
190 PointerGetDatum(pgarray_vals)));
191 vslen = strlen(vals_string);
192
193 result = (char *)palloc(sizeof(char)*(vslen+ixlen+1+1));
194
195 sprintf(result,"%s:%s",ix_string,vals_string);
196 pfree(ix_string);
197 pfree(vals_string);
198 pfree(array_ix);
199
200 return(result);
201}
202
203PG_FUNCTION_INFO_V1(svec_in);
204Datum

Callers 1

svec_outFunction · 0.85

Calls 5

sdata_from_svecFunction · 0.85
sdata_index_to_int64arrFunction · 0.85
construct_arrayFunction · 0.85
pallocFunction · 0.50
pfreeFunction · 0.50

Tested by

no test coverage detected