Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0mc5-002CjP-1O for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Mar 2026 20:26:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0mc3-00HXsa-1y for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Mar 2026 20:26:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0mc3-00HXsR-14 for pgsql-hackers@lists.postgresql.org; Thu, 12 Mar 2026 20:26:31 +0000 Received: from mail-yx1-xb12b.google.com ([2607:f8b0:4864:20::b12b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w0mc1-00000001pEE-3KyT for pgsql-hackers@lists.postgresql.org; Thu, 12 Mar 2026 20:26:30 +0000 Received: by mail-yx1-xb12b.google.com with SMTP id 956f58d0204a3-64ae222d978so1832026d50.1 for ; Thu, 12 Mar 2026 13:26:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773347188; cv=none; d=google.com; s=arc-20240605; b=TYYeZmI+GVDYSa7/6NjstEHnCeETjZpdU5GS5UlTbs1LZCXcXdj+m3LccyQxklpWY5 Eblb1YVOV3iqkbJFcHKLE4axBXufmfYWCYtGZvOpbSDDIgBaATtoFm2jYNYZggUoXHYY PQLAbLLCdYQmwelAYRrnwVeia86wRxwKHru6H/rpwKMkS8X82d8zdp2MPEsjkiq4xIx8 uAyDBocGZ591qkPY97WqdEa0GsFEOP0tiqahVRs5gvUcFIM7xKqtZQfaU1ZlQX9vzMUx Xsq9hgPKfnWZAVnAaz8KzXVpfTLvcgjHo5qLmZPalA5twM5Zi5fLeaDieB3E4CEOw7nL OHkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=adEQPbYP8mRcRsN/fuHDD3qyneX+Fp8p+Vwry9gb1sc=; fh=INmoGzi/9RcfXkJIyH08+eUpO5T5H8O0wKgOH2JfW3Y=; b=GlRLBYesRpLHqm0yp787ckzlJP1AwMJHa7gYMTjRfdL6WHGi70X38jw0/idg3m3O6H 3b67NDZNpajx9peeK5yjl1XeHpnETACkVOQrq2gdXkcgcF4qqyxlmDd2TUYoUZPF9Vrr sZArRqRq/Fi3fZ5RndG0GLPyglnrrtPGdWfkuMp3J6SwLGJGNNKvinPei0DeNXv14tA0 mVzWYi9dW2q8mmnna5tjKMMiQhZLs6j0VJB6xJVDJusniQVK910t2FRW3FTWCBQcZXkH bjtoa1cmJLoSF3Uh9HQ7hK9ueJhbcStQ3rxMsE8y8x30bgeL4ZVCDb9aDJvriofZ3kM3 q1tg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773347188; x=1773951988; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=adEQPbYP8mRcRsN/fuHDD3qyneX+Fp8p+Vwry9gb1sc=; b=Sr0nZNArfVHHbKE3i74FcVNupmxiqBOjzsiSTShxTQ2zD/ZhNPg6qNrTG1lKQTrFBz h0OeZe8uZGJcaXFQtveM16LCL7V2EDaJ918oPUyD3PEWr035VZLry/2dZ2PngDr2bnwR 23qfpLApkhKjSwMO/7keKBRNo9KTf7z6Tdgw6+Wstc88wXK5zwUDwQKIAWGebygNtGq0 HtdLH+kr/osyouG+F+eTOS925E58aEfvFIenaImKyTDZQEI9gMihEqhpWnKNQhRVJ3so Po23VF3YmywTWgJ3Sylb4JboqDSUetYqaTmlNslC0JfvZv9+oVSP1uFLdL2XmT4PMid0 Xgow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773347188; x=1773951988; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=adEQPbYP8mRcRsN/fuHDD3qyneX+Fp8p+Vwry9gb1sc=; b=cOWfghZWUwZe0zyrRAOUdezP9PQljJSsY6/uVfp2FDyVydyfq/3v/GWG0fmmrN6xDL G5RiFgzpxtgxE2FUxnDokglSmpR2/GME4Jh4NlVITxckVr3OfCg1uQZ9fFHCEhOnIanD Axzi3ky7+BW0zGqahXr+G0wgDQUNXeDDwBr8b5aFUJmguvTeh4gavr3Me4YAvzKUoiPO elp6Es3Plis/JxwaCBdNrY7wCXS78x2sMjkPKsfh3U8159+6BN0OFreUYfSynfpqb4Bb V2suTNwo3MrcLKSyhlPerDD1cfvYUPpJ6DQRCc479dLwNkM6A9jTYbk07LzzNtxnrB4D gXBA== X-Gm-Message-State: AOJu0YysVclP4rgBPdzwuFDvlli/l6rwThz5qu9eLVtcdXNJPXUL5F0K eIBgouB4z+pZECVoCiFJPrkHinU0h3P3FJeSoks7nSjUdkDkp14dlFKEGKtWcEkmw5M55TZBSM3 b350b7ifxszFquE59G3fUT4M1OnjwXuGciCYd X-Gm-Gg: ATEYQzzGBbhixHtuasSQCn4wYw9J6EBs0fAeCgUvM5XiFdp3KJr9R1vZlEQ/nDqYob7 NAkXUro21nODBXPbjcnT0AH6EIMMPSJuAIRIbvcfG94noYrgF8XF/NoFsajNARQWqBobOOCb3+t 031RmLkNUk8LwqEuUjmqBU+vDOqg+Gad16BjJfH6W+4IyVuKVfcz1y2lbXHxIRLfv/QqHf1E863 apMRlLvrqCKBOqoCYs8weR/3QSps2XY+bT0SVoLux8sGL2ojKHxN3KzLWBzoRXWiYfIxYZRfpn2 Kc9NyYkG0w== X-Received: by 2002:a53:da11:0:b0:64c:f871:6530 with SMTP id 956f58d0204a3-64e63096361mr706294d50.77.1773347188365; Thu, 12 Mar 2026 13:26:28 -0700 (PDT) MIME-Version: 1.0 From: Vinod Sridharan Date: Thu, 12 Mar 2026 13:26:14 -0700 X-Gm-Features: AaiRm50mKmq1ff1Mxw8gwTE9ZS_bpo6Mgujf2JK-XqjLLPJWZurXGMW_8IN1IYI Message-ID: Subject: Add a check for interrupts in ginInsert To: pgsql-hackers Content-Type: multipart/mixed; boundary="0000000000003a7c21064cd99197" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003a7c21064cd99197 Content-Type: text/plain; charset="UTF-8" Hello, 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. Thanks and Regards, Vinod Sridharan [Microsoft] --0000000000003a7c21064cd99197 Content-Type: application/octet-stream; name="v1-0001-Check-for-interrupts-during-gin-insert.patch" Content-Disposition: attachment; filename="v1-0001-Check-for-interrupts-during-gin-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmnw76iu0 RnJvbSBmYjI3YWVhYjNlYzI1MDYxY2UwMmNiMGY5Y2EzZWRmOWEwZWUzMjhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaW5vZCBTcmlkaGFyYW4gPHZzcmlkaDkwQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAxMiBNYXIgMjAyNiAxOTozMjowMiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjFd IENoZWNrIGZvciBpbnRlcnJ1cHRzIGR1cmluZyBnaW4gaW5zZXJ0LiBUaGUgR0lOIGluZGV4CiBl eHRyYWN0RW50cmllcyBjYW4gcHJvZHVjZSBhIGxvdCBvZiB0ZXJtcyBmb3IgYSBnaXZlbiB0dXBs ZS4gVGhpcyBpcyB0cnVlIGZvcgogb3BjbGFzc2VzIGxpa2UganNvbi9qc29uYiB3aGljaCBjYW4g aGF2ZSBhIHRlcm0gcGVyIHBhdGggJiB2YWx1ZS4gRHVyaW5nIHRoZQogYnVpbGQgcGhhc2Ugb2Yg dGhlIGdpbiBpbmRleCwgd2UgZG8gY2hlY2sgZm9yIGludGVycnVwdHMgYW5kIGVuc3VyZSB0aGF0 IHdlCiBjYW4gYmFpbCBpZiB0aGVyZSBhcmUgbWFueSBlbnRyaWVzIGdlbmVyYXRlZC4gSG93ZXZl ciwgZHVyaW5nIHRoZSBpbnNlcnQKIHBoYXNlLCB0aGlzIGNoZWNrIGRvZXNuJ3QgZXhpc3QgYW5k IHdlIGNvbnRpbnVlIG9uIGV2ZW4gaWYgdGhlcmUgd2FzIGEKIGNhbmNlbGxhdGlvbi4gVGhpcyBh ZGRzIGEgY2hlY2sgZm9yIGNhbmNlbGxhdGlvbiBpbiBiZXR3ZWVuIHRlcm1zLiBUaGlzIHNlZW1z CiBsaWtlIGEgc2FmZSBwbGFjZSB0byBkbyBpdCBzaW5jZSBhdCB0aGlzIHBvaW50LCB3ZSBhcmVu J3QgaW4gdGhlIG1pZGRsZSBvZgogbW9kaWZpeWluZyB0aGUgaW5kZXggdHJlZS4KCi0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lu aW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCmluZGV4IGM3ZTM4 ZGJlMTkzLi45N2NlYTVmN2Q0ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9n aW5pbnNlcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCkBAIC04 NTAsOCArODUwLDEyIEBAIGdpbkhlYXBUdXBsZUluc2VydChHaW5TdGF0ZSAqZ2luc3RhdGUsIE9m ZnNldE51bWJlciBhdHRudW0sCiAJCQkJCQkJCSZuZW50cmllcywgJmNhdGVnb3JpZXMpOwogCiAJ Zm9yIChpID0gMDsgaSA8IG5lbnRyaWVzOyBpKyspCisJeworCQkvKiB0aGVyZSBjb3VsZCBiZSBt YW55IGVudHJpZXMsIHNvIGJlIHdpbGxpbmcgdG8gYWJvcnQgaGVyZSAqLworCQlDSEVDS19GT1Jf SU5URVJSVVBUUygpOwogCQlnaW5FbnRyeUluc2VydChnaW5zdGF0ZSwgYXR0bnVtLCBlbnRyaWVz W2ldLCBjYXRlZ29yaWVzW2ldLAogCQkJCQkgICBpdGVtLCAxLCBOVUxMKTsKKwl9CiB9CiAKIGJv b2wKLS0gCjIuNDMuMAoK --0000000000003a7c21064cd99197--