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 1wDD16-002jMD-26 for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Apr 2026 03:03:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDD15-003PNQ-2Y for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Apr 2026 03:03:43 +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 1wDD15-003PNF-1D for pgsql-hackers@lists.postgresql.org; Thu, 16 Apr 2026 03:03:43 +0000 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDD12-00000001FOP-3z3w for pgsql-hackers@lists.postgresql.org; Thu, 16 Apr 2026 03:03:42 +0000 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-35d94f4ee36so4403520a91.3 for ; Wed, 15 Apr 2026 20:03:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776308620; cv=none; d=google.com; s=arc-20240605; b=PHCKab4DE9CCnauUseu11+nQ/VoFC5uOfwldiUDLvUpg0dfmXXZTeFBmjxOuVR4aEQ hk/2lRm6PIs+XhUuSslajx3aNoezUkzj5MsO6hapjFsp8gxoUxMu3wqLBcMV3NYosFbK F5ZgeQdymOb5IX8qsc5EjpW7Hr+IU5LgmccOkAE6e/Pxo48mwox5pXwGiZakj/ZG/MOv SvJihHsIZxtqnObwKkezVUwsWT4pCv8Z8uo5SJbmN0TKxONZC38OlUxjBqDey2+u+xCn ND6iq9QgNz7TFd60UyjGxADjV5/JWOE5bFMFIgflN4LoZmIyxSPV0ftxvwg4maFw8rNb +i/Q== 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=rGjTnloBhuoLZ42SxlQOuU4Eu6cSRSlc734Qnr9HdKw=; fh=mrl88g4J4BcDsfGVddeNNqGOt477C1KPZe7rZy5dHlU=; b=T3l4y05OxzFG7yfU2qvmOk7Se9tpVwejplJqN5qe9Thl4++BS0EGVbyYjLaEi7Kq0y S5j8n7FpXAcN5v7yB1TFnyewgTfjblSVNvhXfx48BtpoO6eDfLuIIDoPT5/L5VGP+qF+ DuDP3uLHJ8JVgLh6eUhKDoHQWaM28yhYxDrhzV3HfthnJSL8HPZOukwZPyuiHxqew1WW 2WM8mIoX5VbtoFkkAFWSfQXrz8CTejgOFhLc60A+fzmarjflJ/aumqkxc0dLM+VnEqpG 0E2H0OpzXzwhT+aKDEAytltCDfZpYt1cg/BF4PlZEctLgqVm18purzP4rx2QiTzTgqD6 fY6Q==; 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=20251104; t=1776308620; x=1776913420; 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=rGjTnloBhuoLZ42SxlQOuU4Eu6cSRSlc734Qnr9HdKw=; b=PNeL9rwFTN7keiJXdYPecn19MXw/zFRFf2WBH0illsuwFO1QOOvTeHFA2R2rS/JZN2 CNcOJDxRoBmX9gdKL38KPCTUEtOjOymyizsc3EZccSENHtrzLf3lsfBMxIe9YFraBU+e fAeipZFSzh2E4d4UgJnhSHtdFOSDgjScERUVHIRKSjcC+HWCOxrQkuWtXEZhRAaW70kV RMZi34t9tzYtNCyBT9p8P6d0oin9CZ9IKbFUisqGVzjRPS6KWx70/AedZsiWU7RqLW4k ZXggZxWeT53c4mA81CiFIA1M17QCzOwpiICnJ+1ke8zXk0SY01oQQP1LDtwjAUw2yxyU e+lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776308620; x=1776913420; 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=rGjTnloBhuoLZ42SxlQOuU4Eu6cSRSlc734Qnr9HdKw=; b=oksHHox+ZBcYeaGpz4l50K0EdCb4RxumORsr2FgyO4XDVz3dtpXrtzhg34zlqhEgcQ jSdAmbf0UpUThw7TF3maJxNfWEnYOfI44tEXyIVcCCulXJ3Z7wK7k9bS+JiM60xjC4pa ZIHOd6sTrKvM9CAbKK8vlpFpPRgPRLl7r/4P36ymUfQQv6ymdmrR1ycXAjvd36L3p1zo LzAxiQx5fKZmgUA+nRIROD1trCtz8twnZypBeQMvgBVcu+1/ojNIHZ2JXs6HhkYSEFx4 AI2FgnuUdJu8tDuCOty/O3sJO2gpDxK0YQuBjROLt8OZRdV2qWGKZFWB0L3C+AYTy7q6 mkAA== X-Forwarded-Encrypted: i=1; AFNElJ8hrzRpgJ9KRM44G57fy72AZQLjULOfADpM751QAligppkRDDNf/b92baZp7G1PespeuDJeq2Wr/JOzG9UY@lists.postgresql.org X-Gm-Message-State: AOJu0YymlFEmCAdySTKoRPzFRyn7PMkSpTMbJn2qv7Eq2ha1KtVI7fgE QEQeS1uFd9oLMCk95cL5lKazKWila3rZ18jk3xMbIGdBM32vxTZaPXIQ/CEduawhw/xFN89Fz/V a/vmODQBVW3fhXsDRDZBmTlKZ/c6vHOs= X-Gm-Gg: AeBDiesC37jyHrS0fcHvxjFqA4FnAsrhhfk1lwH3Q3QFm33bD5Q0r9kK3zJG9OLrWbU rXq5VlinKW6A926ZCPV5vL0w2uKy6N5+CJfQmn/VKZVQxM8v/9olMRY/WTLEshfYT1qu8tpbD+f 2tEJlDzRjinyb3K3zJUBscC9wF3ynsDlMw7WP4CJ/C7Vs52lAmK26I49P5RaQvyYWrPoUJmI93x q40WAJYO96JcaL9UNiiqulLXRR+/4i4zn1i9PR9BPRk56qzfralOW9xurXOurn9ZEof51JQ4fPr wM5OA/xEQ9RQpkTgoPXAS16xxGEAJ+NGi9XcStTCDQMIWWbLYPlyrPgz6VQK79/1 X-Received: by 2002:a17:90b:388c:b0:35f:b572:ece3 with SMTP id 98e67ed59e1d1-35fb572ef32mr14101342a91.6.1776308620232; Wed, 15 Apr 2026 20:03:40 -0700 (PDT) MIME-Version: 1.0 References: <9EE922BD-29B2-40AF-A50E-03D7E89C10DB@gmail.com> In-Reply-To: <9EE922BD-29B2-40AF-A50E-03D7E89C10DB@gmail.com> From: Amit Langote Date: Thu, 16 Apr 2026 12:03:22 +0900 X-Gm-Features: AQROBzBrv4UbN-ym9fwYw6v6ESZVVuruYqT5FJQZ_NKDqe9HHreq_dRW7mfO1Bw Message-ID: Subject: Re: [PATCH] Fix wrong comment in JsonTablePlanJoinNextRow() To: Chao Li Cc: =?UTF-8?B?6IOh5Lyg5paH?= <463945512@qq.com>, pgsql-hackers Content-Type: multipart/mixed; boundary="000000000000522593064f8b1496" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000522593064f8b1496 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Thu, Apr 16, 2026 at 11:05=E2=80=AFAM Chao Li w= rote: > > On Apr 15, 2026, at 16:28, =E8=83=A1=E4=BC=A0=E6=96=87 <463945512@qq.co= m> wrote: > > > > Hi, > > Found a misleading comment in JsonTablePlanJoinNextRow() while reading > > the JSON_TABLE execution code. > > The function returns false when both siblings are exhausted (meaning no > > more rows), but the comment says "there are more rows" =E2=80=94 the ex= act > > opposite of what's happening. The code itself is correct. > > if (!JsonTablePlanNextRow(planstate->right)) > > { > > /* Right sibling ran out of row, so there are more rows. */ /* wrong */ > > return false; > > } > > A reader might reasonably treat this as a bug and flip the return value= , > > which would cause JSON_TABLE UNION plans to loop indefinitely. > > Patch attached. Thanks for the report and the patch. > The fix looks correct to me. I guess =E2=80=9Cno=E2=80=9D was just uninte= ntionally missed. > > A small comment, I just feel =E2=80=9Ctoo=E2=80=9D you newly added might = not be needed. Actually, I'd keep it, because it ties the comment to the left-sibling check just above. Will push the attached down to v17. --=20 Thanks, Amit Langote --000000000000522593064f8b1496 Content-Type: application/octet-stream; name="v1-0001-Fix-incorrect-comment-in-JsonTablePlanJoinNextRow.patch" Content-Disposition: attachment; filename="v1-0001-Fix-incorrect-comment-in-JsonTablePlanJoinNextRow.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo0w7tjs0 RnJvbSBiMDY3NzE3OWUxMTZmZDkxYmI1ZDgzYTI0YjUxN2U4NWM1NDQ2YTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IExhbmdvdGUgPGFtaXRsYW5AcG9zdGdyZXNxbC5vcmc+ CkRhdGU6IFRodSwgMTYgQXByIDIwMjYgMTE6NTI6MTYgKzA5MDAKU3ViamVjdDogW1BBVENIIHYx XSBGaXggaW5jb3JyZWN0IGNvbW1lbnQgaW4gSnNvblRhYmxlUGxhbkpvaW5OZXh0Um93KCkKClRo ZSBjb21tZW50IG9uIHRoZSByZXR1cm4tZmFsc2UgcGF0aCB3aGVuIGJvdGggVU5JT04gc2libGlu Z3MgYXJlCmV4aGF1c3RlZCBzYWlkICJ0aGVyZSBhcmUgbW9yZSByb3dzLCIgd2hpY2ggaXMgdGhl IG9wcG9zaXRlIG9mIHdoYXQKdGhlIGNvZGUgZG9lcy4gVGhlIGNvZGUgaXRzZWxmIGlzIGNvcnJl Y3QsIHJldHVybmluZyBmYWxzZSB0byBzaWduYWwKbm8gbW9yZSByb3dzLCBidXQgdGhlIG1pc2xl YWRpbmcgY29tbWVudCBjb3VsZCB0ZW1wdCBhIHJlYWRlciBpbnRvCiJmaXhpbmciIHRoZSByZXR1 cm4gdmFsdWUsIHdoaWNoIHdvdWxkIGNhdXNlIFVOSU9OIHBsYW5zIHRvIGxvb3AKaW5kZWZpbml0 ZWx5LgoKQmFjay1wYXRjaCB0byAxNywgd2hlcmUgSlNPTl9UQUJMRSB3YXMgaW50cm9kdWNlZC4K CkF1dGhvcjogQ2h1YW53ZW4gSHUgPDQ2Mzk0NTUxMkBxcS5jb20+ClJldmlld2VkLWJ5OiBDaGFv IExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5l cy9tL3RlbmNlbnRfNENDNjMxNkYwMkRFQ0E2MUFDQ0YyMkY5MzNGRUE1QzEyODA2QHFxLmNvbQpC YWNrcGF0Y2gtdGhyb3VnaDogMTcKLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhf ZXhlYy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoX2V4ZWMuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9leGVjLmMKaW5kZXggNzcwODQwYTA2MTEu LjBlYzliNGRmMmVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhf ZXhlYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9leGVjLmMKQEAgLTQ3 MjksNyArNDcyOSw3IEBAIEpzb25UYWJsZVBsYW5Kb2luTmV4dFJvdyhKc29uVGFibGVQbGFuU3Rh dGUgKnBsYW5zdGF0ZSkKIAkJICovCiAJCWlmICghSnNvblRhYmxlUGxhbk5leHRSb3cocGxhbnN0 YXRlLT5yaWdodCkpCiAJCXsKLQkJCS8qIFJpZ2h0IHNpYmxpbmcgcmFuIG91dCBvZiByb3csIHNv IHRoZXJlIGFyZSBtb3JlIHJvd3MuICovCisJCQkvKiBSaWdodCBzaWJsaW5nIHJhbiBvdXQgb2Yg cm93cyB0b28sIHNvIHRoZXJlIGFyZSBubyBtb3JlIHJvd3MuICovCiAJCQlyZXR1cm4gZmFsc2U7 CiAJCX0KIAl9Ci0tIAoyLjQ3LjMKCg== --000000000000522593064f8b1496--