diff --git a/src/halfvec.c b/src/halfvec.c index 015bf48..c7bc077 100644 --- a/src/halfvec.c +++ b/src/halfvec.c @@ -198,8 +198,9 @@ halfvec_in(PG_FUNCTION_ARGS) (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for type halfvec: \"%s\"", lit))); - /* Use strtof like float4in to avoid a double-rounding problem */ errno = 0; + + /* Postgres sets LC_NUMERIC to C on startup */ val = strtof(pt, &stringEnd); if (stringEnd == pt) diff --git a/src/sparsevec.c b/src/sparsevec.c index ca6a878..ac7e792 100644 --- a/src/sparsevec.c +++ b/src/sparsevec.c @@ -268,8 +268,11 @@ sparsevec_in(PG_FUNCTION_ARGS) while (sparsevec_isspace(*stringEnd)) stringEnd++; - errno = 0; pt = stringEnd; + errno = 0; + + /* Use strtof like float4in to avoid a double-rounding problem */ + /* Postgres sets LC_NUMERIC to C on startup */ value = strtof(pt, &stringEnd); if (stringEnd == pt) diff --git a/src/vector.c b/src/vector.c index b029f85..51189fc 100644 --- a/src/vector.c +++ b/src/vector.c @@ -222,8 +222,10 @@ vector_in(PG_FUNCTION_ARGS) (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for type vector: \"%s\"", lit))); - /* Use strtof like float4in to avoid a double-rounding problem */ errno = 0; + + /* Use strtof like float4in to avoid a double-rounding problem */ + /* Postgres sets LC_NUMERIC to C on startup */ val = strtof(pt, &stringEnd); if (stringEnd == pt)