diff options
author | Teodor Sigaev <teodor@sigaev.ru> | 2016-03-11 20:10:20 +0300 |
---|---|---|
committer | Teodor Sigaev <teodor@sigaev.ru> | 2016-03-11 20:10:20 +0300 |
commit | b1fdc727c37b23da947b4b0d440f723f31beb84d (patch) | |
tree | f8a3d54c4f4f2a370e1034a933f8a9ae7b825245 /src | |
parent | 8829af47ef63d3c484f2e1f97a85a7a76b1baba6 (diff) | |
download | postgresql-b1fdc727c37b23da947b4b0d440f723f31beb84d.tar.gz postgresql-b1fdc727c37b23da947b4b0d440f723f31beb84d.zip |
Fix Windows build broken in 6943a946c7e5eb72d53c0ce71f08a81a133503bd
Also it fixes dynamic array allocation disallowed by ANSI-C.
Author: Stas Kelvich
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/tsvector_op.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/utils/adt/tsvector_op.c b/src/backend/utils/adt/tsvector_op.c index 6a01276ca26..186b3d337ad 100644 --- a/src/backend/utils/adt/tsvector_op.c +++ b/src/backend/utils/adt/tsvector_op.c @@ -66,7 +66,7 @@ typedef struct #define STATHDRSIZE (offsetof(TSVectorStat, data)) static Datum tsvector_update_trigger(PG_FUNCTION_ARGS, bool config_column); -static int tsvector_bsearch(TSVector tsin, char *lexin, int lexin_len); +static int tsvector_bsearch(const TSVector tsv, char *lexeme, int lexeme_len); /* * Order: haspos, len, word, for all positions (pos, weight) @@ -684,10 +684,12 @@ tsvector_to_array(PG_FUNCTION_ARGS) { TSVector tsin = PG_GETARG_TSVECTOR(0); WordEntry *arrin = ARRPTR(tsin); - Datum elements[tsin->size]; + Datum *elements; int i; ArrayType *array; + elements = palloc(tsin->size * sizeof(Datum)); + for (i = 0; i < tsin->size; i++) { elements[i] = PointerGetDatum( @@ -696,6 +698,8 @@ tsvector_to_array(PG_FUNCTION_ARGS) } array = construct_array(elements, tsin->size, TEXTOID, -1, false, 'i'); + + pfree(elements); PG_FREE_IF_COPY(tsin, 0); PG_RETURN_POINTER(array); } |