File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Expand file tree Collapse file tree 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)
396396 if (query -> size == 0 )
397397 PG_RETURN_TSQUERY (query );
398398
399+ /* clean out any stopword placeholders from the tree */
399400 res = clean_fakeval (GETQUERY (query ), & len );
400401 if (!res )
401402 {
@@ -405,6 +406,10 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
405406 }
406407 memcpy ((void * ) GETQUERY (query ), (void * ) res , len * sizeof (QueryItem ));
407408
409+ /*
410+ * Removing the stopword placeholders might've resulted in fewer
411+ * QueryItems. If so, move the operands up accordingly.
412+ */
408413 if (len != query -> size )
409414 {
410415 char * oldoperand = GETOPERAND (query );
@@ -413,7 +418,7 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
413418 Assert (len < query -> size );
414419
415420 query -> size = len ;
416- memcpy ((void * ) GETOPERAND (query ), oldoperand , lenoperand );
421+ memmove ((void * ) GETOPERAND (query ), oldoperand , lenoperand );
417422 SET_VARSIZE (query , COMPUTESIZE (len , lenoperand ));
418423 }
419424
You can’t perform that action at this time.
0 commit comments