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.94.2) (envelope-from ) id 1rQQqy-001D5P-IM for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jan 2024 11:46:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rQQqv-0026fi-2m for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jan 2024 11:46:33 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rQQqu-0026fa-83 for pgsql-hackers@lists.postgresql.org; Thu, 18 Jan 2024 11:46:32 +0000 Received: from out4-smtp.messagingengine.com ([66.111.4.28]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rQQqr-002SKg-0O for pgsql-hackers@postgresql.org; Thu, 18 Jan 2024 11:46:31 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id E1EEC5C0066; Thu, 18 Jan 2024 06:46:26 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Thu, 18 Jan 2024 06:46:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1705578386; x= 1705664786; bh=SiSH4uxMqTrqIWnL9pwfe1xfcFGm3vZUNX9U3mimY9w=; b=K vXUK/L8518O0xJpM6Kn2zWNBeO184B29hw3KL82sMbkPYA1unMvEgQR4AyBMCJdp if6v+65RVFWNB+n48tGgm5yAA2FOiolwlKTleUMz3GbLSPKMpGOfgCZ9xmw5aG2d P6AGbAJQOeSYaAKi5BjMUCUBzCxhDMzFdmoyVaAX3UnR7sQ1lAqJ79jrwQP5V2BN vrC4uJVCWl+yLQIfjjY5xJ2paMnXnF1Saaxtyp4awtATdyS7URTAck8g+0PLTV9s UEFYdARb/sEXDs9IT/xopzwkpfjkhECsSerGHJ+kMHwt8xssOxL4p5d2+cAtqX4X R4w1xGxW1G4jLoZzDhiBQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdejkedgtdekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvfevuffkgggtugfgjgesthekredttddtjeenucfhrhhomheptehlvhgr rhhoucfjvghrrhgvrhgruceorghlvhhhvghrrhgvsegrlhhvhhdrnhhoqdhiphdrohhrgh eqnecuggftrfgrthhtvghrnhepvdektdffudfftdffffehfffhjeejhffgieeuueekjeek fffgudffhfduffffueevnecuffhomhgrihhnpegvnhhtvghrphhrihhsvggusgdrtghomh enucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrlhhv hhgvrhhrvgesrghlvhhhrdhnohdqihhprdhorhhg X-ME-Proxy: Feedback-ID: ia2694551:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 18 Jan 2024 06:46:26 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alvh.no-ip.org; s=schmee; t=1705578384; bh=eJVojcZdUhrw7tKFtZUA+fQsuLwGOP35EhPwF5/Feoo=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=E6Zji2/plTs9q1rIEgq78ZhKjCy51OoGHFkZfqcQDZHlHT2tf/OUfCqDEBBqYcAVd JDiMj3Pn0YZw5gqybPr6g4vTC+2xYGsq4HkMXja2IAkRI6/Emeg1oJkNrMfLJ7pXKc 93e6gs5GFl3b+syj/T1FGr+ywsQxs2oiG+GiKWF0KMZgsvvP1+q32ErJJG1H3EKNua d9f1PXTEnJdb85NN/TahKhR681pT8gRxP2I0z59std4fH533O5bP855GCXhJDbh8K+ C91QxuLwX+ZsTv1GDWA7M6YxHmjyXDfXtCbnkhq2SPrP/dMkdS9oDBy1vDUnrfCU8n QIg6n5e9v/p4A== Received: by schmee.alvh.no-ip.org (Postfix, from userid 1000) id 4F9B891; Thu, 18 Jan 2024 12:46:24 +0100 (CET) Date: Thu, 18 Jan 2024 12:46:24 +0100 From: Alvaro Herrera To: Amit Langote Cc: Andres Freund , Erik Rijkers , jian he , Andrew Dunstan , PostgreSQL-development Subject: Re: remaining sql/json patches Message-ID: <202401181146.fuoeskfzriq7@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk I've been eyeballing the coverage report generated after applying all patches (but I only checked the code added by the 0008 patch). AFAICS the coverage is pretty good. Some uncovered paths: commands/explain.c (Hmm, I think this is a preexisting bug actually) 3893 18 : case T_TableFuncScan: 3894 18 : Assert(rte->rtekind == RTE_TABLEFUNC); 3895 18 : if (rte->tablefunc) 3896 0 : if (rte->tablefunc->functype == TFT_XMLTABLE) 3897 0 : objectname = "xmltable"; 3898 : else /* Must be TFT_JSON_TABLE */ 3899 0 : objectname = "json_table"; 3900 : else 3901 18 : objectname = NULL; 3902 18 : objecttag = "Table Function Name"; 3903 18 : break; parser/gram.y: 16940 : json_table_plan_cross: 16941 : json_table_plan_primary CROSS json_table_plan_primary 16942 39 : { $$ = makeJsonTableJoinedPlan(JSTPJ_CROSS, $1, $3, @1); } 16943 : | json_table_plan_cross CROSS json_table_plan_primary 16944 0 : { $$ = makeJsonTableJoinedPlan(JSTPJ_CROSS, $1, $3, @1); } Not really sure how critical this one is TBH. utils/adt/jsonpath_exec.c: 3492 : /* Recursively reset scan and its child nodes */ 3493 : static void 3494 120 : JsonTableRescanRecursive(JsonTablePlanState * state) 3495 : { 3496 120 : if (state->type == JSON_TABLE_JOIN_STATE) 3497 : { 3498 0 : JsonTableJoinState *join = (JsonTableJoinState *) state; 3499 : 3500 0 : JsonTableRescanRecursive(join->left); 3501 0 : JsonTableRescanRecursive(join->right); 3502 0 : join->advanceRight = false; 3503 : } I think this one had better be covered. -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/ "The saddest aspect of life right now is that science gathers knowledge faster than society gathers wisdom." (Isaac Asimov)