mirror of
https://github.com/postgres/postgres.git
synced 2025-05-22 00:02:02 -04:00
Check for interrupts in pg_trgm word similarity
Calculating similarity between large strings can be timesconsuming and overrun configured statement timeouts. Check for interrupts in the main loop to ensure query cancellation can be performed. Author: Robins Tharakan <tharakan@gmail.com> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/CAEP4nAxvmfc_XWTz73bqXRhgjONi=1HaX4_NhsopA3L6UvnN1g@mail.gmail.com
This commit is contained in:
parent
519be095f2
commit
ae4fc52ae2
@ -7,6 +7,7 @@
|
||||
|
||||
#include "catalog/pg_type.h"
|
||||
#include "lib/qunique.h"
|
||||
#include "miscadmin.h"
|
||||
#include "trgm.h"
|
||||
#include "tsearch/ts_locale.h"
|
||||
#include "utils/lsyscache.h"
|
||||
@ -492,8 +493,12 @@ iterate_word_similarity(int *trg2indexes,
|
||||
|
||||
for (i = 0; i < len2; i++)
|
||||
{
|
||||
int trgindex;
|
||||
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
|
||||
/* Get index of next trigram */
|
||||
int trgindex = trg2indexes[i];
|
||||
trgindex = trg2indexes[i];
|
||||
|
||||
/* Update last position of this trigram */
|
||||
if (lower >= 0 || found[trgindex])
|
||||
|
Loading…
x
Reference in New Issue
Block a user