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 1wEXF4-0047Iu-2r for pgsql-hackers@arkaria.postgresql.org; Sun, 19 Apr 2026 18:51:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wEXF3-00Fvv8-2z for pgsql-hackers@arkaria.postgresql.org; Sun, 19 Apr 2026 18:51:37 +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 1wEXF3-00Fvuz-1b for pgsql-hackers@lists.postgresql.org; Sun, 19 Apr 2026 18:51:37 +0000 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wEXF1-00000001oAd-0hsn for pgsql-hackers@lists.postgresql.org; Sun, 19 Apr 2026 18:51:36 +0000 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7dbe437b072so1373939a34.2 for ; Sun, 19 Apr 2026 11:51:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776624695; cv=none; d=google.com; s=arc-20240605; b=UFzlfD2/3aJAdaRHhqOxGP3vy0r9VCJlG+ibq32POchW7To2ZD2j51MBOCnBX13/BV UNka4EQFk2jnsOJt3jyoJubKD93rWwMoZpcfoptMhUidk9O0PLSs2SC0ll85zf61VmZ2 k4x7v2lvn5KECMgaStCybQFh9In953Bpqs8+dHHtndURa/fCM6sKqXJ3am9dk4IV2/8x YYXnGpSIZFWjaxbVvjO1QqUF3MTSMQJhZiDQHWV9DzUDvy7IHzqFb+uV2Slz29iqeEFt dixYC/tOFPm6BswgqdJNtXacKw30UH/7NAeQ1C/ktHyPzA43csLbuVPK3zZYqHeLNCJP SQ7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=3FYos/tghd6wB7HTSpmEFNbWH8vIkJ5TiOTv1BE8Nqk=; fh=YfQaFoJ8sf65oqSOSbgSVc8S5m0bKonXBF/RWPwfLzI=; b=Gvf52+v2dcrIysS2qyrcCdNCHsusx1PdbjTVxL6Y0tCsCwl01ECwEmokgPw4boLgiC sLfXk+8ORz0xVjUA5z4Rli2ymGd5rKsK/m3Px51cWG76uhCDstlQZYObhpkiYT5u5zLy no6X2gyyEbG2Zlefwe6BUYnzKw1prW7ZBEwAWrImih0KjcrUpmSqFc/prUdntDM/2guI 97nhxIpnglSuqeiycOmHiIQPE+w2om9wMWFIKPiY9I0pcspwFlDkqRg1fYoyPqFFrMx8 8exHOlHlwOZsncEZ2a9MiwqE7CLMT8Qd0gKIRVOU8Hod4lw7BfRRBQMW9UVqqLVjrYzq B24A==; 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=illuminatedcomputing-com.20251104.gappssmtp.com; s=20251104; t=1776624695; x=1777229495; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=3FYos/tghd6wB7HTSpmEFNbWH8vIkJ5TiOTv1BE8Nqk=; b=x5MHqbTVtJyRuQp/to4LCJQ/Y7pRCrKuEBj+Dj6w2Na4qN71aMPQ8L+QPBCZndvgKi SRNjTIQwpu7mY1W/Mz3wW+gAOdp/4pDLWRA4ngE3Wf6CugRvo+Q5g6+CzcVsjzgfkvml nRyteJmb0Qy6J/kdK2rButFzUzWViDET7SL/ipWYSj1UI1uSDtafflXnFKRwMcyMk0D1 eomQSGIyoJelSMOCWa2KKCsKiUAFfbuJYnM7uZgVXcONnwQ/bMnGrf4kPaO0FbKKbmk6 aWOQoFFWywgMUKnfCB8nEi3mkce1aTBT9k2QbaCw2pakRvFO1kOEy7yDeCUCTzfd4pFy /RkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776624695; x=1777229495; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=3FYos/tghd6wB7HTSpmEFNbWH8vIkJ5TiOTv1BE8Nqk=; b=R5VSfnCsoLw0H3f+ngvp2ZtSbh+cS1PW6TkYqn4xWD37hw2/NVNEQiPD49KDLhgM6f O/29m/jPKIO9ut2MHx7fcKYZai6dWr3GgHetgeqhQCPYN8tQMx3XtIZzyQzBu0BTfqPI OgJbNgCdY6KXMFwnbT1t9t3pN/fLmF4/KUW0gsF8ZWb/1SzldocjDFwZPqelGAIOlSDH PpDyWOs28+QvKOQ4bzrvAlA/j8c9hsRJbzuzaPnUZ8Nqn0Q4yozbG/TkkUkLMV0NxYju uZJI/N/L6W11CgDq+Ajt2UJ/OniCyLpPGpRK1DMBBlfCbjMH/nLo5L7fBvN800lii6Lg azfw== X-Forwarded-Encrypted: i=1; AFNElJ8cZNi1rDlWtrbIcrLTIw/3pLF8TPDEssuCw/8pg2Fo0EmF8gF0km0dfvLJPCM8GQ6U2xmp5WPOJzaFypnH@lists.postgresql.org X-Gm-Message-State: AOJu0YzArpckATTW78805fmZ+ABG7her/xS/nONIT4jhdO7PPUH/5HqJ mCftalMMofeRHdV98hMHjXyUN2gSrv6mEEcpcLkdop+wKzh3916CwvKFooMIVQPt+XvIT9e+KUV s3295CyYNzCLEt8f8hXZ/UQduS0u8DhvyEVGfHapCuw== X-Gm-Gg: AeBDievKCxisEoO5CziBxSLNxoO0k8eBou2v/SDnqFFORPs4LoXJefd26H/e1K0D15o 1Myh/sL850J3WEX4jaehdm/lGfROmKtXpr2JK51dVxFNYX9d98/80Cj3CfWIbm24V1LOglvhiyB WFT0l/HPugwDRpc8NuTT2OFafC1nwNy0+LoXxZRdlEwjVgo92dHIT+LBf04xoR8oIisAe/C/rnY StCCiFoilpVEn6whbOVA4e6Qe2CtzKbK/gvnAOze1Cx+rykscPOYKEh3wJ7zf/r+Tpp7fWc/yQk tKaQn8cyvVCp7qrktFc= X-Received: by 2002:a05:6820:4b15:b0:67e:244a:7dd5 with SMTP id 006d021491bc7-69462f2b7c2mr5208379eaf.51.1776624694877; Sun, 19 Apr 2026 11:51:34 -0700 (PDT) MIME-Version: 1.0 References: <85ac7f0e-d95f-4377-ade0-8941fd328012@eisentraut.org> <7d63ddfa-c735-4dfe-8c7a-4f1e2a621058@eisentraut.org> <4606deaa-7d65-4f22-8a78-356c3180be9d@eisentraut.org> <53f1c094-3c29-4ef6-a9bd-dc2e7894ceb0@eisentraut.org> <4126231.1776622202@sss.pgh.pa.us> In-Reply-To: <4126231.1776622202@sss.pgh.pa.us> From: Paul A Jungwirth Date: Sun, 19 Apr 2026 11:51:23 -0700 X-Gm-Features: AQROBzC-H1cRtAePfKjQwnTw8_gwv-mxzpcWEUfrBCqoaKRiI_L4-3xqQC5dDDk Message-ID: Subject: Re: SQL:2011 Application Time Update & Delete To: Tom Lane Cc: Peter Eisentraut , Chao Li , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000d7263b064fd4abf6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d7263b064fd4abf6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Apr 19, 2026 at 11:10=E2=80=AFAM Tom Lane wrote= : > > Peter Eisentraut writes: > > I have committed the patches 0001 through 0003. > > Coverity is complaining that rsi.isDone may be used uninitialized in > ExecForPortionOfLeftovers. It's correct: that function is not obeying > the function call protocol, and it's only accidental that it's not > failing. In ValuePerCall mode the caller is supposed to initialize > isDone (and isnull too) before each call. The canonical reference > for this is execSRF.c, and it does that. So I think we need something > like the attached. Thanks for the patch! Your changes look good to me. > I notice that execSRF.c also runs pgstat_init_function_usage and > pgstat_end_function_usage around each call. That's not too important > right now, but I wonder whether we should add it while we're looking > at this. It would perhaps be important once we support user-defined > withoutPortionProcs. I agree we should do that. Here is a patch with that added to your changes. I was curious why execSRF.c uses `rsinfo.isDone !=3D ExprMultipleResult` for the finalize parameter, because I don't think a SRF should ever return ExprSingleResult, right? So I guess it is just to be cautious. Makes sense. I followed that approach. Yours, --=20 Paul ~{:-) pj@illuminatedcomputing.com --000000000000d7263b064fd4abf6 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-Make-FOR-PORTION-OF-obey-SRF-protocol.patch" Content-Disposition: attachment; filename="v2-0001-Make-FOR-PORTION-OF-obey-SRF-protocol.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo64g1hq0 RnJvbSBlYmI1OGMxYWYzZWIyODBhYmVjOTg4ZDI1OGMzNDljYzkzNzdhZTY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFN1biwgMTkgQXByIDIwMjYgMTE6MzA6MTcgLTA3MDAKU3ViamVj dDogW1BBVENIIHYyXSBNYWtlIEZPUiBQT1JUSU9OIE9GIG9iZXkgU1JGIHByb3RvY29sCgpUaGlz IGZpeGVzIGEgQ292ZXJpdHkgZXJyb3IgYWJvdXQgcnNpLmlzRG9uZSBub3QgYmVpbmcgaW5pdGlh bGl6ZWQuIFRoZSBidWlsdC1pbgp7bXVsdGksfXJhbmdlX21pbnVzX211bHRpIGZ1bmN0aW9ucyBk b24ndCByZXR1cm4gd2l0aG91dCBzZXR0aW5nIGl0LCBidXQgYQp1c2VyLXN1cHBsaWVkIGZ1bmN0 aW9uIG1pZ2h0IG5vdCBiZSBhcyBhY2NvbW1vZGF0aW5nLgoKV2UgYWxzbyBhZGQgc3RhdGlzdGlj cyB0cmFja2luZyBhcm91bmQgdGhlIGZ1bmN0aW9uIGNhbGwuCi0tLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgfCAyMCArKysrKysrKysrKysrKysrKystLQogMSBmaWxl IGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCBlZjJhNmJjNmU5ZC4uMzUzYTA1Y2FkZmYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC02NSw2ICs2NSw3IEBACiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5j bHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgorI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1 ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVN YW5pcC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgpAQCAtMTQxOSw2ICsxNDIwLDcgQEAg RXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJ Q21kVHlwZQkJb2xkT3BlcmF0aW9uOwogCVRyYW5zaXRpb25DYXB0dXJlU3RhdGUgKm9sZFRjczsK IAlGbWdySW5mbwlmbGluZm87CisJUGdTdGF0X0Z1bmN0aW9uQ2FsbFVzYWdlIGZjdXNhZ2U7CiAJ UmV0dXJuU2V0SW5mbyByc2k7CiAJYm9vbAkJZGlkSW5pdCA9IGZhbHNlOwogCWJvb2wJCXNob3Vs ZEZyZWUgPSBmYWxzZTsKQEAgLTE1MTQsNiArMTUxNiw3IEBAIEV4ZWNGb3JQb3J0aW9uT2ZMZWZ0 b3ZlcnMoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCXJzaS5leHBlY3RlZERlc2MgPSBO VUxMOwogCXJzaS5hbGxvd2VkTW9kZXMgPSAoaW50KSAoU0ZSTV9WYWx1ZVBlckNhbGwpOwogCXJz aS5yZXR1cm5Nb2RlID0gU0ZSTV9WYWx1ZVBlckNhbGw7CisJLyogaXNEb25lIGlzIGZpbGxlZCBi ZWxvdyAqLwogCXJzaS5zZXRSZXN1bHQgPSBOVUxMOwogCXJzaS5zZXREZXNjID0gTlVMTDsKIApA QCAtMTUzNywxNCArMTU0MCwyNyBAQCBFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRh YmxlQ29udGV4dCAqY29udGV4dCwKIAkgKi8KIAl3aGlsZSAodHJ1ZSkKIAl7Ci0JCURhdHVtCQls ZWZ0b3ZlciA9IEZ1bmN0aW9uQ2FsbEludm9rZShmY2luZm8pOworCQlEYXR1bQkJbGVmdG92ZXI7 CisKKwkJcGdzdGF0X2luaXRfZnVuY3Rpb25fdXNhZ2UoZmNpbmZvLCAmZmN1c2FnZSk7CisKKwkJ LyogQ2FsbCB0aGUgZnVuY3Rpb24gb25lIHRpbWUgKi8KKwkJZmNpbmZvLT5pc251bGwgPSBmYWxz ZTsKKwkJcnNpLmlzRG9uZSA9IEV4cHJTaW5nbGVSZXN1bHQ7CisJCWxlZnRvdmVyID0gRnVuY3Rp b25DYWxsSW52b2tlKGZjaW5mbyk7CisKKwkJcGdzdGF0X2VuZF9mdW5jdGlvbl91c2FnZSgmZmN1 c2FnZSwKKwkJCQkJCQkJICByc2kuaXNEb25lICE9IEV4cHJNdWx0aXBsZVJlc3VsdCk7CisKKwkJ aWYgKHJzaS5yZXR1cm5Nb2RlICE9IFNGUk1fVmFsdWVQZXJDYWxsKQorCQkJZWxvZyhFUlJPUiwg IndpdGhvdXRfcG9ydGlvbiBmdW5jdGlvbiB2aW9sYXRlZCBmdW5jdGlvbiBjYWxsIHByb3RvY29s Iik7CiAKIAkJLyogQXJlIHdlIGRvbmU/ICovCiAJCWlmIChyc2kuaXNEb25lID09IEV4cHJFbmRS ZXN1bHQpCiAJCQlicmVhazsKIAogCQlpZiAoZmNpbmZvLT5pc251bGwpCi0JCQllbG9nKEVSUk9S LCAiR290IGEgbnVsbCBmcm9tIHdpdGhvdXRfcG9ydGlvbiBmdW5jdGlvbiIpOworCQkJZWxvZyhF UlJPUiwgImdvdCBhIG51bGwgZnJvbSB3aXRob3V0X3BvcnRpb24gZnVuY3Rpb24iKTsKIAogCQkv KgogCQkgKiBEb2VzIHRoZSBuZXcgRGF0dW0gdmlvbGF0ZSBkb21haW4gY2hlY2tzPyBSb3ctbGV2 ZWwgQ0hFQ0sKLS0gCjIuNDcuMwoK --000000000000d7263b064fd4abf6--