File tree 1 file changed +6
-1
lines changed
1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -396,6 +396,7 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
396
396
if (query -> size == 0 )
397
397
PG_RETURN_TSQUERY (query );
398
398
399
+ /* clean out any stopword placeholders from the tree */
399
400
res = clean_fakeval (GETQUERY (query ), & len );
400
401
if (!res )
401
402
{
@@ -405,6 +406,10 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
405
406
}
406
407
memcpy ((void * ) GETQUERY (query ), (void * ) res , len * sizeof (QueryItem ));
407
408
409
+ /*
410
+ * Removing the stopword placeholders might've resulted in fewer
411
+ * QueryItems. If so, move the operands up accordingly.
412
+ */
408
413
if (len != query -> size )
409
414
{
410
415
char * oldoperand = GETOPERAND (query );
@@ -413,7 +418,7 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
413
418
Assert (len < query -> size );
414
419
415
420
query -> size = len ;
416
- memcpy ((void * ) GETOPERAND (query ), oldoperand , lenoperand );
421
+ memmove ((void * ) GETOPERAND (query ), oldoperand , lenoperand );
417
422
SET_VARSIZE (query , COMPUTESIZE (len , lenoperand ));
418
423
}
419
424
You can’t perform that action at this time.
0 commit comments