The repeat() function loops for potentially a long time without
ever checking for interrupts. This prevents, for example, a query
cancel from interrupting until the work is all done. Fix by
inserting a CHECK_FOR_INTERRUPTS() into the loop.
Backpatch to all supported versions.
Discussion: https://www.postgresql.org/message-id/flat/
8692553c-7fe8-17d9-cbc1-
7cddb758f4c6%40joeconway.com
#include "utils/builtins.h"
#include "utils/formatting.h"
#include "mb/pg_wchar.h"
-
+#include "miscadmin.h"
static text *dotrim(const char *string, int stringlen,
const char *set, int setlen,
{
memcpy(cp, sp, slen);
cp += slen;
+ CHECK_FOR_INTERRUPTS();
}
PG_RETURN_TEXT_P(result);