diff --git a/src/vector.c b/src/vector.c index 85acd23..82247e1 100644 --- a/src/vector.c +++ b/src/vector.c @@ -125,30 +125,6 @@ float_overflow_error(void) } #endif -/* - * Print vector - useful for debugging - */ -void -PrintVector(char *msg, Vector * vector) -{ - StringInfoData buf; - int dim = vector->dim; - int i; - - initStringInfo(&buf); - - appendStringInfoChar(&buf, '['); - for (i = 0; i < dim; i++) - { - if (i > 0) - appendStringInfoString(&buf, ","); - appendStringInfoString(&buf, float8out_internal(vector->x[i])); - } - appendStringInfoChar(&buf, ']'); - - elog(INFO, "%s = %s", msg, buf.data); -} - /* * Convert textual representation to internal representation */ @@ -320,6 +296,18 @@ vector_out(PG_FUNCTION_ARGS) PG_RETURN_CSTRING(buf); } +/* + * Print vector - useful for debugging + */ +void +PrintVector(char *msg, Vector * vector) +{ + char *out = DatumGetPointer(DirectFunctionCall1(vector_out, PointerGetDatum(vector))); + + elog(INFO, "%s = %s", msg, out); + pfree(out); +} + /* * Convert type modifier */