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 1sPTyc-004qkB-Nm for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jul 2024 21:26:50 +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 1sPTyZ-003GHx-UD for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Jul 2024 21:26:48 +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.94.2) (envelope-from ) id 1sPTyZ-003GHh-Bh for pgsql-hackers@lists.postgresql.org; Thu, 04 Jul 2024 21:26:48 +0000 Received: from mail-yw1-x1136.google.com ([2607:f8b0:4864:20::1136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sPTyX-000QkB-Cz for pgsql-hackers@postgresql.org; Thu, 04 Jul 2024 21:26:46 +0000 Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-64f4fb6ce65so9014947b3.2 for ; Thu, 04 Jul 2024 14:26:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; t=1720128404; x=1720733204; darn=postgresql.org; h=user-agent: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=KaaOFDIFC61g5uXoU+kMNKauoa/p2KcWZdcGLm+qlYQ=; b=OpxnoHMikrhW03XVb3xu0pRsPcKfz7IaGq7qM7MqlnZDIKqJ2qKJeQIPe0a2DzMY5K gz2/KIyXNa3wMUMdNL030uY3EbMiS7g12vykjmzehUQ0wPpP1Y3E7uhoFlAeu80SFz8R bs2t46og2A4x+0zsoZMszQwqq5gGKd2bdO2L8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720128404; x=1720733204; h=user-agent: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=KaaOFDIFC61g5uXoU+kMNKauoa/p2KcWZdcGLm+qlYQ=; b=TJrkxGGGNGbqOjoJ0lGrjbLgOLKR1DXXZozBfyACVSA89hnYSGMPudoh08KcZsWcK3 NsIQDrOkpf5InuIb2x7TJvjeip5Ki07oDGgXdIn2cz7HfGic9txustDBxxDH1xig5TC0 dtqTKOvwl2xkZWxxfE7NYRQAlcDmOPpHijf/U2G7IC+8W4zP42KMk9mlWnwR4/DXIbAg 7cD7JbuNPBix215D77d0cLyA7CJkgwKL8DsR08ePfghl8VS9aoyvmEOpdaIAxlczhuAH 9KJUbMU+7X7aws5PYeKEnGznnDyB/n2+gA+LNHcB+AOHZtJN/FJxVhca91yfeoRq8KYv f0tA== X-Forwarded-Encrypted: i=1; AJvYcCXGoMPcW+JYa6OVjuXd7aQxCJO+wlhHKPCGZYz/sxaqLNyK8E6+aeXgjjOzLoyHuYi03e6vYexMMfgdyAykvQpeFgOj39f8AzDaztQa X-Gm-Message-State: AOJu0YwADwTxNUp4o3fnfriP/rr/DlMm8bWp+T1/FJx4f2fweUgaN4EO cm12qOSUc1AdQdAucyelWt73sAE+3vkMNYYvFpldscpfHcwc7g6r2zz6AVXdWg== X-Google-Smtp-Source: AGHT+IE/fQILGVi37H9qKDRYypiJA0CFN7GBpTlmBKaONBDZbZV0UxiHV1nkhTnTrAUE/nTZ9sfdMQ== X-Received: by 2002:a81:ae22:0:b0:61a:b54d:5925 with SMTP id 00721157ae682-652da44df8cmr27654627b3.38.1720128404594; Thu, 04 Jul 2024 14:26:44 -0700 (PDT) Received: from google.com ([2600:1702:a20:5750::48]) by smtp.gmail.com with ESMTPSA id 00721157ae682-6531bc11730sm2473437b3.23.2024.07.04.14.26.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jul 2024 14:26:44 -0700 (PDT) Date: Thu, 4 Jul 2024 14:26:41 -0700 From: Noah Misch To: Jeff Davis Cc: Peter Eisentraut , Daniel Verite , Robert Haas , Jeremy Schneider , pgsql-hackers@postgresql.org Subject: Re: Built-in CTYPE provider Message-ID: <20240704212641.c4.nmisch@google.com> References: <1f309153-8198-4efa-86dd-8c304ec0040c@eisentraut.org> <20240629220857.fb.nmisch@google.com> <1ecfeb4d2b1b7f119fa917d3052a3aecfaf4f425.camel@j-davis.com> <20240701230352.2c.nmisch@google.com> <20240702165145.af.nmisch@google.com> <1200e97b-3a52-43c6-8b16-20cf45f58249@eisentraut.org> <20240702230333.8d.nmisch@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.2.12 (2023-09-09) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, Jul 03, 2024 at 02:19:07PM -0700, Jeff Davis wrote: > * Unless I made a mistake, the last three releases of Unicode (14.0, > 15.0, and 15.1) all have the exact same behavior for UPPER() and > LOWER() -- even for unassigned code points. It would be silly to > promise to stay with 15.1 and then realize that moving to 16.0 doesn't > create any actual problem. I think you're saying that if some Unicode update changes the results of a STABLE function but does not change the result of any IMMUTABLE function, we may as well import that update. Is that about right? If so, I agree. In addition to the options I listed earlier (error in pg_upgrade or document that IMMUTABLE stands) I would be okay with a third option. Decide here that we'll not adopt a Unicode update in a way that changes a v17 IMMUTABLE function result of the new provider. We don't need to write that in the documentation, since it's implicit in IMMUTABLE. Delete the "stable within a Postgres major version" documentation text. > * While someone can pin libc+ICU to particular versions, it's > impossible when using the official packages, and additionally requires > using something like [1], which just became available last year. I > don't think it's reasonable to put it forth as a matter-of-fact > solution. > > * Let's keep some perspective: we've lived for a long time with ALL > text indexes at serious risk of breakage. In contrast, the concerns you > are raising now are about certain kinds of expression indexes over data > containing certain unassigned code points. I am not dismissing that > concern, but the builtin provider moves us in the right direction and > let's not lose sight of that. I see you're trying to help users get less breakage, and that's a good goal. I agree $SUBJECT eliminates libc+ICU breakage, and libc+ICU breakage has hurt plenty. However, you proposed to update Unicode data and give REINDEX as the solution to breakage this causes. Unlike libc+ICU breakage, the packager has no escape from that. That's a different kind of breakage proposition, and no new PostgreSQL feature should do that. It's on a different axis from helping users avoid libc+ICU breakage, and a feature doesn't get to credit helping on one axis against a regression on the other axis. What am I missing here? > Given that no code changes for v17 are proposed, I suggest that we > refrain from making any declarations until the next version of Unicode > is released. If the pattern holds, that will be around September, which > still leaves time to make reasonable decisions for v18. Soon enough, a Unicode release will add one character to regexp [[:alpha:]]. PostgreSQL will then need to decide what IMMUTABLE is going to mean. How does that get easier in September? Thanks, nm > [1] https://github.com/awslabs/compat-collation-for-glibc