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.98.2) (envelope-from ) id 1xAWub-00000002hXH-2mLB for pgsql-bugs@arkaria.postgresql.org; Sat, 26 Sep 2026 18:14:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1xAWua-00000004yKP-3pgf for pgsql-bugs@arkaria.postgresql.org; Sat, 26 Sep 2026 18:14:12 +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.98.2) (envelope-from ) id 1xAWua-00000004yKG-1z4V for pgsql-bugs@lists.postgresql.org; Sat, 26 Sep 2026 18:14:12 +0000 Received: from mail-vs2-x2a.google.com ([2a00:1450:4864:3a::2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1xAWuX-00000001O9x-3HlH for pgsql-bugs@lists.postgresql.org; Sat, 26 Sep 2026 18:14:11 +0000 Received: by mail-vs2-x2a.google.com with SMTP id 71dfb90a1353d-5cd61ac1d29so54632e0c.0 for ; Sat, 26 Sep 2026 11:14:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790446449; x=1791051249; darn=lists.postgresql.org; h=content-type:mime-version:references:in-reply-to:message-id:date :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to :content-type; bh=4z//nhWJN9sC5SdzFybi5yXOO0UN77GGPeoF+TNBpBE=; b=JWJJ1K09D7e6fGMGsL+CYkGfHDdcnxev5nlVDJX4ZAcDKRxlfDMd+KZWUD9FzcMPL9 m1gDUDgnmCXPziTEk+J3eZTOQA0g4u2WsSsQcushMKvB89kNlS7VH6q7da3wzF2oJLyp 2VLT/gKrg+0f0ufMgU1cwwOVhXwsmlL0UiE8lGXhz0ZpfhqOTtwhh9mRD0hV9wrlnkUV Wu4I5FtfXjnipnViPHF/umX1RREuniM2R+H6dzUOv96V/KyAOn56wkd9PHPrPmd3Ufeb uiFChByg+1EnD5kVU2xOOAAuLozc/fUqLwhR44hB/KadcVnputTBMXSeaHtU+oR2ptr8 bdlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790446449; x=1791051249; h=content-type:mime-version:references:in-reply-to:message-id:date :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to:content-type; bh=4z//nhWJN9sC5SdzFybi5yXOO0UN77GGPeoF+TNBpBE=; b=kvppCNcmGwzrjy5Ki0JZBMX9YqqU666UZgTahpoR8reKIOgNBGAp8XtKX7DmgP9CRJ COpwiAiscAO57KSjAliHxxip4PR2C6PwQU+2PphT4F1HX4qPuLL+nUF2u7X5D7asQ3NO btLKnE8vEV7rNqfQKD+4qkhGRsN//b+vaTCYtnD6TaWUoniYQiuIcTWxCKwf6xHkSq7X dv6sPl1FMFB6wgbOPZYzU3dxmIH1/6n0MpLnzFZBaa3UozgtTi6pALJMOb9xVALsPbT9 dkjT99wQkHi3PYOpTbrC9wIb6LMD3SDQ8RoIk9IWW9nGYtWeERCmt95/D6Ky5/5HM1PI nFzQ== X-Forwarded-Encrypted: i=1; AKwUvBw0fPcnUx6BXhvTUBlcclbb7EEPCyZ1npdgcwlcTlQRWvno1SqAqc+FhWWrRTW2RioPr1aVwtjfkGmb@lists.postgresql.org X-Gm-Message-State: AFuF++nk+Vfj8ziRkk6MO/lAR1tqtisK9DMjWvshz+qQAu9cHoce56// AGNpGIyMvtS2sE07euELgcVZJbNX3BJt6i5UHbAmx6geJkLgeMTL8Vdx X-Gm-Gg: AYBFou380iLDlsb8S7WweEbvi/dKG+k3I7TR2SRzrfvH/aljYoHIQTv0CTpaiOLhgdy Uv1KTw6blqcG/uzkNr8Gw0l+dW+vM7lJhJiJYpw4iekfNClVuUI4UXwtEcyi76KuwHToRJK1wlG kNMhp8JizIpQWSXiN0H96CqgLVVDhtrn3XSa5fWDzCQa9QR6cGXAfkprM5HOL28aBMpQ3AyZbGN KB8WJnuoIjuUYe3UAOpCi9QCyLLHHQydtxOIfR2l03WuuhmQQf1sehnKOGgIrW7IBEJIruvgkre T5NMtiAtwEuzBj+DH//7nQUdr4hHXLw5mlRNOsm3zxv+HBlPaiqSMqec5NY9freMWHGqwg4rs5P UMOyI7WdXqDrt1xeN45E2Y+RAZQb3MhzB4kXh8dQczNOUhpwMTg5sl3p+xslPyasN+m7QBm4esY AkAFBEcvSmkvFMz8htPSNBPWU3uvlwFbK1aitgz8XM/wYYHSiXF8u7bVqONEMWMV57NRBfoqbaX pNRW6JLK0zv+2GwNbkabtO+OwwC4xEPRssApR7d0lsXVvmYSJn8/ufaW5Q4NwNgYeQwAsaGpqek AnYsK73Om57Pmd603hP0cPMkZg== X-Received: by 2002:a05:6122:e26a:b0:5c9:f6b0:e5e0 with SMTP id 71dfb90a1353d-5cc4b5c998amr1832977e0c.3.1790446449018; Sat, 26 Sep 2026 11:14:09 -0700 (PDT) Received: from 192.168.1.109 ([2803:3c90:cee:ea00:5c3c:7e70:29e3:7a55]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-5cde6650f04sm2652812e0c.17.2026.09.26.11.14.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 26 Sep 2026 11:14:08 -0700 (PDT) From: Manu To: jian he Cc: Andrey Rachitskiy , zengman , syzhong16 , pgsql-bugs , Amit Langote Subject: Re: BUG #19621: Unexpected results of JSON_VALUE with DEFAULT ON EMPTY Date: Sat, 26 Sep 2026 15:14:04 -0300 Message-ID: <179044644489.113031.11832692369228086606@gmail.com> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1084577088404425683==" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --===============1084577088404425683== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hi jian, > This seems unnecessary. > In EEOP_JSONEXPR_PATH, we can > if document or jsonpath is NULL, we can just go to jump_end (return > NULL) or jump_eval_coercion (NULL need coerce to constrainted domain), > no need to worry about ON ERROR, ON EMPTY. That also takes care of the back-branch concern I raised on v2: with no new opcode, v3 does not change any header, so the ExprEvalOp values stay as they are. v3 applies cleanly to master, REL_18_STABLE and REL_17_STABLE, builds without warnings, and the main regression suite passes on all three. Since the bug is state leaking from one row to the next, I also checked it with a differential test (attached): every row of a two-row query must give the same result as that row evaluated alone. It covers json_value (RETURNING int, a NOT NULL domain and a CHECK domain), json_query and json_exists, with every ON EMPTY / ON ERROR combination, over every ordered pair of rows built from five documents ('{}', '{"a":1}', '{"a":"x"}', '{"a":[1,2]}', NULL) and three paths ('$.a', 'strict $.a', NULL). That is 9675 cases: - unpatched master (09a579abaca): 567 mismatches (497 json_value, 56 json_query, 14 json_exists) - v3 on master, REL_18_STABLE and REL_17_STABLE: 0 The single-row answers do not change: all 645 of them are the same with and without v3, including NULL input into the NOT NULL domain. With Srinath's fix for #19695 on top, its case is right too (1, NULL, 2). As before, I could not exercise JIT here. Regards, Manu --===============1084577088404425683== Content-Type: text/plain Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rows_oracle.sql.txt" MIME-Version: 1.0 LS0gRGlmZmVyZW50aWFsIGNoZWNrIGZvciBKc29uRXhwciBzdGF0ZSBsZWFraW5nIGZyb20gb25l IHJvdyB0byB0aGUgbmV4dAotLSAoIzE5NjIxLCAjMTk2NTQpLiAgT3JhY2xlOiBpbiBhIG11bHRp LXJvdyBxdWVyeSwgdGhlIHJlc3VsdCBmb3IgZWFjaCByb3cKLS0gbXVzdCBiZSB0aGUgb25lIHRo YXQgc2FtZSByb3cgZ2l2ZXMgd2hlbiBldmFsdWF0ZWQgYWxvbmUuICBJZiBhbnkgcm93Ci0tIGVy cm9ycyB3aGVuIGFsb25lLCB0aGUgbXVsdGktcm93IHF1ZXJ5IG11c3QgZmFpbCB3aXRoIHRoZSBm aXJzdCBzdWNoCi0tIGVycm9yIChWQUxVRVMgaXMgc2Nhbm5lZCBpbiBvcmRlcikuCi0tCi0tIE1h dHJpeDoganNvbl92YWx1ZSAoUkVUVVJOSU5HIGludCwgYSBOT1QgTlVMTCBkb21haW4sIGEgQ0hF Q0sgZG9tYWluKSB4Ci0tIE9OIEVNUFRZIHggT04gRVJST1IsIGpzb25fcXVlcnkgeCBPTiBFTVBU WSB4IE9OIEVSUk9SLCBqc29uX2V4aXN0cyB4Ci0tIE9OIEVSUk9SOyBvdmVyIGV2ZXJ5IG9yZGVy ZWQgcGFpciBvZiByb3dzLCB3aGVyZSBhIHJvdyBpcyBhIGRvY3VtZW50Ci0tICgne30nLCAneyJh IjoxfScsICd7ImEiOiJ4In0nLCAneyJhIjpbMSwyXX0nLCBOVUxMKSBhbmQgYSBwYXRoCi0tICgn JC5hJywgJ3N0cmljdCAkLmEnLCBOVUxMKS4KXHNldCBRVUlFVCBvbgpTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9IHdhcm5pbmc7CkRST1AgRE9NQUlOIElGIEVYSVNUUyBvX25uLCBvX3BvcyBDQVND QURFOwpDUkVBVEUgRE9NQUlOIG9fbm4gQVMgaW50IE5PVCBOVUxMOwpDUkVBVEUgRE9NQUlOIG9f cG9zIEFTIGludCBDSEVDSyAoVkFMVUUgPiAwKTsKCkNSRUFURSBURU1QIFRBQkxFIG9faXRlbSAo aSBpbnQsIGQgdGV4dCwgcCB0ZXh0KTsKSU5TRVJUIElOVE8gb19pdGVtClNFTEVDVCByb3dfbnVt YmVyKCkgT1ZFUiAoKSwgZCwgcAogIEZST00gdW5uZXN0KEFSUkFZWycnJ3t9JycnLCAnJyd7ImEi OjF9JycnLCAnJyd7ImEiOiJ4In0nJycsICcnJ3siYSI6WzEsMl19JycnLCAnTlVMTCddKSBkLAog ICAgICAgdW5uZXN0KEFSUkFZWycnJyQuYScnJywgJycnc3RyaWN0ICQuYScnJywgJ05VTEwnXSkg cDsKCkNSRUFURSBURU1QIFRBQkxFIG9fZXhwciAoZSB0ZXh0KTsKSU5TRVJUIElOVE8gb19leHBy ClNFTEVDVCBmb3JtYXQoJ2pzb25fdmFsdWUoeCwgcCBSRVRVUk5JTkcgJXMgJXMgT04gRU1QVFkg JXMgT04gRVJST1IpJywgdCwgb2UsIG9lcikKICBGUk9NIHVubmVzdChBUlJBWVsnaW50JywgJ29f bm4nLCAnb19wb3MnXSkgdCwKICAgICAgIHVubmVzdChBUlJBWVsnTlVMTCcsICdERUZBVUxUIDQy JywgJ0VSUk9SJ10pIG9lLAogICAgICAgdW5uZXN0KEFSUkFZWydOVUxMJywgJ0RFRkFVTFQgNycs ICdFUlJPUiddKSBvZXIKVU5JT04gQUxMClNFTEVDVCBmb3JtYXQoJ2pzb25fcXVlcnkoeCwgcCAl cyBPTiBFTVBUWSAlcyBPTiBFUlJPUiknLCBvZSwgb2VyKQogIEZST00gdW5uZXN0KEFSUkFZWydO VUxMJywgJ0VNUFRZIEFSUkFZJywgJ0RFRkFVTFQgJyciZCInJycsICdFUlJPUiddKSBvZSwKICAg ICAgIHVubmVzdChBUlJBWVsnTlVMTCcsICdFTVBUWSBPQkpFQ1QnLCAnRVJST1InXSkgb2VyClVO SU9OIEFMTApTRUxFQ1QgZm9ybWF0KCdqc29uX2V4aXN0cyh4LCBwICVzIE9OIEVSUk9SKScsIG9l cikKICBGUk9NIHVubmVzdChBUlJBWVsnRkFMU0UnLCAnVFJVRScsICdVTktOT1dOJywgJ0VSUk9S J10pIG9lcjsKCkNSRUFURSBURU1QIFRBQkxFIG9fcmVzdWx0IChlIHRleHQsIHJvd3MgdGV4dCwg YWxvbmUgdGV4dCwgdG9nZXRoZXIgdGV4dCk7CgpETyAkJApERUNMQVJFCiAgZXggcmVjb3JkOyBh IHJlY29yZDsgYiByZWNvcmQ7CiAgcjEgdGV4dDsgcjIgdGV4dDsgdG9nZXRoZXIgdGV4dDsgYWxv bmUgdGV4dDsKICBxIHRleHQ7CkJFR0lOCiAgRk9SIGV4IElOIFNFTEVDVCBlIEZST00gb19leHBy IExPT1AKICAgIEZPUiBhIElOIFNFTEVDVCAqIEZST00gb19pdGVtIExPT1AKICAgICAgRk9SIGIg SU4gU0VMRUNUICogRlJPTSBvX2l0ZW0gTE9PUAogICAgICAgIC0tIGVhY2ggcm93IGFsb25lCiAg ICAgICAgQkVHSU4KICAgICAgICAgIEVYRUNVVEUgZm9ybWF0KCdTRUxFQ1QgY29hbGVzY2UoKCVz KTo6dGV4dCwgJydOVUxMJycpIEZST00gKFZBTFVFUyAoJXM6Ompzb25iLCAlczo6anNvbnBhdGgp KSB2KHgsIHApJywKICAgICAgICAgICAgICAgICAgICAgICAgIGV4LmUsIGEuZCwgYS5wKSBJTlRP IHIxOwogICAgICAgIEVYQ0VQVElPTiBXSEVOIE9USEVSUyBUSEVOIHIxIDo9ICdFUlJPUjogJyB8 fCBTUUxFUlJNOwogICAgICAgIEVORDsKICAgICAgICBCRUdJTgogICAgICAgICAgRVhFQ1VURSBm b3JtYXQoJ1NFTEVDVCBjb2FsZXNjZSgoJXMpOjp0ZXh0LCAnJ05VTEwnJykgRlJPTSAoVkFMVUVT ICglczo6anNvbmIsICVzOjpqc29ucGF0aCkpIHYoeCwgcCknLAogICAgICAgICAgICAgICAgICAg ICAgICAgZXguZSwgYi5kLCBiLnApIElOVE8gcjI7CiAgICAgICAgRVhDRVBUSU9OIFdIRU4gT1RI RVJTIFRIRU4gcjIgOj0gJ0VSUk9SOiAnIHx8IFNRTEVSUk07CiAgICAgICAgRU5EOwogICAgICAg IGFsb25lIDo9IENBU0UgV0hFTiByMSBMSUtFICdFUlJPUjolJyBUSEVOIHIxCiAgICAgICAgICAg ICAgICAgICAgICBXSEVOIHIyIExJS0UgJ0VSUk9SOiUnIFRIRU4gcjIKICAgICAgICAgICAgICAg ICAgICAgIEVMU0UgcjEgfHwgJyB8ICcgfHwgcjIgRU5EOwogICAgICAgIC0tIGJvdGggcm93cyBp biBvbmUgcXVlcnksIGluIG9yZGVyCiAgICAgICAgcSA6PSBmb3JtYXQoJ1NFTEVDVCBzdHJpbmdf YWdnKGNvYWxlc2NlKCglcyk6OnRleHQsICcnTlVMTCcnKSwgJycgfCAnJyBPUkRFUiBCWSBvKQog ICAgICAgICAgICAgICAgICAgICAgIEZST00gKFZBTFVFUyAoMSwgJXM6Ompzb25iLCAlczo6anNv bnBhdGgpLCAoMiwgJXM6Ompzb25iLCAlczo6anNvbnBhdGgpKSB2KG8sIHgsIHApJywKICAgICAg ICAgICAgICAgICAgICBleC5lLCBhLmQsIGEucCwgYi5kLCBiLnApOwogICAgICAgIEJFR0lOCiAg ICAgICAgICBFWEVDVVRFIHEgSU5UTyB0b2dldGhlcjsKICAgICAgICBFWENFUFRJT04gV0hFTiBP VEhFUlMgVEhFTiB0b2dldGhlciA6PSAnRVJST1I6ICcgfHwgU1FMRVJSTTsKICAgICAgICBFTkQ7 CiAgICAgICAgSU5TRVJUIElOVE8gb19yZXN1bHQgVkFMVUVTIChleC5lLCBhLmQgfHwgJywnIHx8 IGEucCB8fCAnICB0aGVuICAnIHx8IGIuZCB8fCAnLCcgfHwgYi5wLCBhbG9uZSwgdG9nZXRoZXIp OwogICAgICBFTkQgTE9PUDsKICAgIEVORCBMT09QOwogIEVORCBMT09QOwpFTkQgJCQ7CgpTRUxF Q1QgJ2Nhc2VzPScgfHwgY291bnQoKikgfHwgJyBtaXNtYXRjaGVzPScgfHwgY291bnQoKikgRklM VEVSIChXSEVSRSBhbG9uZSBJUyBESVNUSU5DVCBGUk9NIHRvZ2V0aGVyKQogIEZST00gb19yZXN1 bHQ7ClNFTEVDVCBzcGxpdF9wYXJ0KGUsICcoJywgMSkgQVMgZnVuYywgY291bnQoKikgRklMVEVS IChXSEVSRSBhbG9uZSBJUyBESVNUSU5DVCBGUk9NIHRvZ2V0aGVyKSBBUyBtaXNtYXRjaGVzLCBj b3VudCgqKSBBUyBjYXNlcwogIEZST00gb19yZXN1bHQgR1JPVVAgQlkgMSBPUkRFUiBCWSAxOwpT RUxFQ1QgZSwgcm93cywgYWxvbmUsIHRvZ2V0aGVyCiAgRlJPTSBvX3Jlc3VsdCBXSEVSRSBhbG9u ZSBJUyBESVNUSU5DVCBGUk9NIHRvZ2V0aGVyCiBPUkRFUiBCWSBlLCByb3dzIExJTUlUIDg7Cg== --===============1084577088404425683==--