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 1sf3In-000lIL-4C for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Aug 2024 20:12:01 +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 1sf3Il-000bp2-1c for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Aug 2024 20:11:59 +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 1sf3Ik-000bou-OA for pgsql-hackers@lists.postgresql.org; Fri, 16 Aug 2024 20:11:59 +0000 Received: from mail-io1-xd36.google.com ([2607:f8b0:4864:20::d36]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sf3Ii-0000JV-0v for pgsql-hackers@lists.postgresql.org; Fri, 16 Aug 2024 20:11:58 +0000 Received: by mail-io1-xd36.google.com with SMTP id ca18e2360f4ac-81f9339e544so105421939f.0 for ; Fri, 16 Aug 2024 13:11:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723839114; x=1724443914; darn=lists.postgresql.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=rd9NtAoPvVjxyW+RqXQTIM8/GNKyrb6zA5bifHuTB0w=; b=WkQtuoNWpzVKffpcLa0pFVuAjKviaKpz5VHQ+brmOggvxfpoVarXc2xC05cDQHrYkF EaXih6QinvLd2qdbJXKIJmWSV/LUQtxEXNmDSouA4AfG7c5oqQzZ1EBPu+IfaYudJJhF Ab3cWv6U9bbQa5iA5I+9nBsi+SUmG0RrJeU3XlmIm9GwoPod5RYWzHEOz9Qf5GF/oxFc iuPH9E/b4vQxKbnezKVL6o+HVh+bbTbBKC/Bzh20hCLHAJjRLdm3fBBWvqoAsktmVf38 cqmeJ/oarCNC9HY+c3HDCh3ORn2b327jRl/Kw2cUYQ1g7jN496BlyfT2UiDeuctXhJJt 7W+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723839114; x=1724443914; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=rd9NtAoPvVjxyW+RqXQTIM8/GNKyrb6zA5bifHuTB0w=; b=CYOoaAQstNvxDFgRf745t3FsnciBeNOsL7ZDeBcEFihxd79prLEeN1kn/5QtQBB9L2 fiOZ4LOsa7tHKIssXk+0RHGZ++SxoIz9+nds1cWkLIglHZdGhUdIEperwVSpg4lklmUE 6tb8cY0zAjJtbewAkSThRDf6kDw8Q4/HCg/ltgplom0l+6+A1VARj1z0NDCm0+WG7KmM 9jS3kZ//wwg0c8jb06c1HouDSnBRsUR9k42bg2rpW5z2vtflyRr7MVGmlUlNmPzOdYIj medY+SbiIQeO8eqaRtO+8Cc+D6f6jKuzUqJE9MmRSKwXWvtds9AA8VrrgotIEYUuveg4 YP7g== X-Forwarded-Encrypted: i=1; AJvYcCXUicwDJRWs07b8ybocpicK4KWL5WvdBUP3KkDGQrDoa7G4HL1W/ct5R9M6/Ry7pt+CWIv5G/YB/hBe6A8J2trNnpqZ+1Z5ib7JAegVNSpJDFbm X-Gm-Message-State: AOJu0YzWHSzG4QG2gNu3rX+WwUTKBnwGYP7bV7GrcEh+HqjL3ORgWyrS rLOz+qEvGEklx0UafYz7RgwOb6ESsZe0a0R9a/ES3xYpAJXT+8rZDFlFAQ== X-Google-Smtp-Source: AGHT+IFW2NPy2TLulxowKAFcCuFzCTTXsBxoRKWX0/7hbX+Vb4uv5c3MTYMnb3WAj1A6a8FUymkYKw== X-Received: by 2002:a05:6e02:1fcf:b0:39b:ddc:f079 with SMTP id e9e14a558f8ab-39d26d046f4mr54923745ab.13.1723839114196; Fri, 16 Aug 2024 13:11:54 -0700 (PDT) Received: from nathan (162-195-168-172.lightspeed.stlsmo.sbcglobal.net. [162.195.168.172]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4ccd6f72176sm1425303173.122.2024.08.16.13.11.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Aug 2024 13:11:53 -0700 (PDT) Date: Fri, 16 Aug 2024 15:11:52 -0500 From: Nathan Bossart To: Alexander Lakhin Cc: Joseph Koshakow , jian he , Heikki Linnakangas , Matthew Kim , Tom Lane , PostgreSQL Hackers , Andres Freund Subject: Re: Remove dependence on integer wrapping Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Fri, Aug 16, 2024 at 01:35:01PM -0500, Nathan Bossart wrote: > On Fri, Aug 16, 2024 at 09:00:00PM +0300, Alexander Lakhin wrote: >> Sp it looks like jsonb_array_element_text() still needs the same >> treatment as jsonb_array_element(). > > D'oh. I added a test for that but didn't actually fix the code. I think > we just need something like the following. > > diff --git a/src/backend/utils/adt/jsonfuncs.c b/src/backend/utils/adt/jsonfuncs.c > index 1f8ea51e6a..69cdd84393 100644 > --- a/src/backend/utils/adt/jsonfuncs.c > +++ b/src/backend/utils/adt/jsonfuncs.c > @@ -990,7 +990,7 @@ jsonb_array_element_text(PG_FUNCTION_ARGS) > { > uint32 nelements = JB_ROOT_COUNT(jb); > > - if (-element > nelements) > + if (pg_abs_s32(element) > nelements) > PG_RETURN_NULL(); > else > element += nelements; I've committed this one. -- nathan