| From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
|---|---|
| To: | Vinod Sridharan <vsridh90(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Add a check for interrupts in ginInsert |
| Date: | 2026-03-13 13:14:12 |
| Message-ID: | a12e854c-e9e0-4a52-8bbf-53759f8e5fe0@iki.fi |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 12/03/2026 22:26, Vinod Sridharan wrote:
> Please find attached a small patch that adds the ability to check for
> interrupts during the insert into the GIN index. Currently, ginInsert
> can generate a large number of entries for a given input tuple from
> extractEntries. In the case of Json/Jsonb for instance, the standard
> opclasses may generate 1 term per path & value (which may be large).
> During index build, the build process does check for interrupts in
> between the inserts of each entry into the index (since there may be a
> large number of entries to insert). However, the same loop during
> insert was not checking for interrupts. This patch adds an interrupt
> check to allow for early termination if the overall request is
> abandoned. I believe this should be a safe point for checking for
> interrupts since we should not be in the middle of modifying the index
> tree in between entries.
Applied, thanks.
To test this, I created a large array:
create table largearray as select array_agg(g) from generate_series(1,
10_000_000) g;
and table with a GIN index:
create table gintest (intarray int[]);
create index on gintest using gin (intarray);
-- to reach the ginHeapTupleInsert() function:
alter index gintest_intarray_idx set (fastupdate = off);
Without the patch, insertion into the index takes about 5 seconds on my
laptop. A larger array with a more complicated extract function could
take even longer. Without this patch, it's indeed uninterruptible. The
fast-update path already had CHECK_FOR_INTERRUPTS() calls.
- Heikki
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kirill Reshke | 2026-03-13 13:16:34 | Re: IS JSON predicate support for domain base type as JSON/JSONB/BYTEA/TEXT |
| Previous Message | Álvaro Herrera | 2026-03-13 13:05:24 | some more include removal from headers |