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 1sbpPM-001hXu-U0 for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Aug 2024 22:45:28 +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 1sbpPK-00AXux-Tx for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Aug 2024 22:45:26 +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 1sbpPK-00AXup-Ch for pgsql-hackers@lists.postgresql.org; Wed, 07 Aug 2024 22:45:26 +0000 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sbpPH-003hZB-QO for pgsql-hackers@postgresql.org; Wed, 07 Aug 2024 22:45:25 +0000 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-7104f939aa7so353286b3a.1 for ; Wed, 07 Aug 2024 15:45:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1723070721; x=1723675521; darn=postgresql.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=ELk3MDjETr4csDndPINZYjhdG9gicoO4wkvds7AzntA=; b=iaXqTRKJGHUDUsfbuDVBg1T5R8dhHw5QEc+3dpmPBidJau2C3MsCIA72+tHE+8pcwX r3n5Gx+fZFwyEF8D4TcDslSLR5VqjFf9I2zcQ3XDEu9ppjAHPGDb50JKv3/fzkVuPUvv AuEqhim71LUPqvzyfFGOX3QOJJ2xX/l+zr6H7xMd1Z+bkcwCy6wNjAeoobswiBr/EpK8 3OSGQ0aP50Xuo29apleBw01uzEDdU5Wcl+eDAQYCl6O72XiesCf2teZfq38UxPvKBCcZ lLbhhMXU8os72U9tyLgtBrAOILLlvGAMcl9ou3VNXD+H2aIveYhVwAi0tl3H1HZ+obAi RnBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723070721; x=1723675521; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ELk3MDjETr4csDndPINZYjhdG9gicoO4wkvds7AzntA=; b=AYrJWx/Rj0CfHxxIMKhvGKO7QCa5StptH6Q1h/XBnF23feyRtMsJ+D0yXYmRl10gjJ m940T59ZmOSPIB/fufL+3nTU0g3o5/mWfdguWzQ6wS0honq4Ze24gufypOvIvvaQaPSJ NvTeHV8VaFYk+yck/v67OeWWqJKp+tyi0GgBw8aYKX8ukOYU200AL5F6hBcEsspeRaDI CdcxJPScR62rK+pzwFtbCMZfrHRPXt+KOQh41K+l/Xbc4aMCXfqaHG5jlR5CVx0tvGAu F3dYr2bYqRFdUPLDcXrXf7yS/3ZxIaJh+IwsSmaSbBuEyit01Vz104igM6j9uBvKhJIG UAQA== X-Gm-Message-State: AOJu0YyPMHR1gRuvNaxAEDxy1bDrMVWEXtlUEUMbjBPMq7AA0/ch6eOD LkZ1miaM4hA0MgmfatalKpUJwiC4X5l8q3nu3a3PX6iMSOKe3sp/tET4Inpd+w== X-Google-Smtp-Source: AGHT+IECxUX0/IP1m1Ts6k6Ocf1lYivTEron6QTvTVNoJm1nQ2TJg/escR9dWFegNhEfhixwjvLWww== X-Received: by 2002:a05:6a21:3384:b0:1c0:f1cb:c4b2 with SMTP id adf61e73a8af0-1c699551226mr28842178637.4.1723070721181; Wed, 07 Aug 2024 15:45:21 -0700 (PDT) Received: from jeff-laptop.lan (c-76-102-242-158.hsd1.ca.comcast.net. [76.102.242.158]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7b763562989sm8953078a12.34.2024.08.07.15.45.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Aug 2024 15:45:20 -0700 (PDT) Message-ID: <45fcc802c66fdf52f4420b8cbe09e4fe26cd84fe.camel@j-davis.com> Subject: Re: Remaining dependency on setlocale() From: Jeff Davis To: Joe Conway , Thomas Munro , Tom Lane Cc: pgsql-hackers@postgresql.org Date: Wed, 07 Aug 2024 15:45:19 -0700 In-Reply-To: <57a3f214-41bc-4954-ac09-8eae039137e8@joeconway.com> References: <4c5da86af36a0d5e430eee3f60ce5e06f1b5cd34.camel@j-davis.com> <1841102.1722982989@sss.pgh.pa.us> <5b169990d1f602c3aa778a27f8516032ed899c99.camel@j-davis.com> <57a3f214-41bc-4954-ac09-8eae039137e8@joeconway.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, 2024-08-07 at 13:28 -0400, Joe Conway wrote: > FWIW I see all of these in glibc: >=20 > isalnum_l, isalpha_l, isascii_l, isblank_l, iscntrl_l, isdigit_l,=20 > isgraph_l,=C2=A0 islower_l, isprint_l, ispunct_l, isspace_l, isupper_l,= =20 > isxdigit_l My point was just that there are a lot of those call sites (especially for isspace()) in various parsers. It feels like a lot of code churn to change all of them, when a lot of them seem to be intended for ascii anyway. And where do we get the locale_t structure from? We can create our own at database connection time, and supply it to each of those call sites, but I'm not sure that's a huge advantage over just using uselocale(). Regards, Jeff Davis