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 1sR5m4-00DGPu-Mn for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Jul 2024 08:00:32 +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 1sR5m2-00E6qv-L6 for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Jul 2024 08:00:30 +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 1sR5m2-00E6qn-6h for pgsql-hackers@lists.postgresql.org; Tue, 09 Jul 2024 08:00:30 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sR5lz-001AVc-Iu for pgsql-hackers@postgresql.org; Tue, 09 Jul 2024 08:00:28 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-58ef19aa6c4so4960218a12.2 for ; Tue, 09 Jul 2024 01:00:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20230601.gappssmtp.com; s=20230601; t=1720512026; x=1721116826; darn=postgresql.org; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:cc:to:from:subject:message-id:from:to :cc:subject:date:message-id:reply-to; bh=dOh0S5gqg020DIG4pyuenZv+wzTcr1JBxrJHpE+kKto=; b=HI3ln1pe+AjSlBSWpcIFVJ4ES1vgodwLUa1XnamvJgMYfdlAOuq+EG3TxvQ9XqmrAc b15k3Gv2QNkmMCE2SXgxzDienllYJjLq2TyaV+i3ph4rlab3aKGWw2XJjVOxUuYhFO9k qmU7lX193c7URhqrwwu/T2UGnc2PHLL4/36ndhKnVseSabu1ZuRYI4mWj/xYxZKi5gbX cP331t498Tv9OZQJUw0vnOFmeg8B8V1REWCfzy33jcsbFkVGKlcXpu/Ou+vCK82y0Pd4 zf+Kf4WjGb3x5yJvhD+GweXj061oLrv0ehebJanabjhw3dHiXVfxu12tzQDVMlvdsEIR bdlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720512026; x=1721116826; h=mime-version:user-agent:content-transfer-encoding:autocrypt :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=dOh0S5gqg020DIG4pyuenZv+wzTcr1JBxrJHpE+kKto=; b=BjO6ry5RAFaIyYnRiY9+EVbFDm9R/FE89FM7jW42LDdGD2b857E9xTsuXGDR+zJ6RU 7R9KflYpgYVZmlYmbDkViVUfg55iq2GHAJmRTwoI8iBIaJZ82wC9hv0ew8s7jo9baOk5 8naEQbLAqhEoYqmjPFHx9YhydbmVH1Qj6Hh1D1WUM+TgfyRsgkxDlCjpmgYIomOqt/Op ukKaikjH0vE6l7YqFCVBMk6FXYeDWCk9xYP+WuGJoemsTa/4oAeGE7FY+44BXPoWss2z pvAfMJ+38/WBalnsNZSM4JJzjfNtYuTR+YMLQVXCaKIrI65Jd33ZsSRBhxzqjZ4jr3O7 GkPw== X-Forwarded-Encrypted: i=1; AJvYcCWMBmvTxhzJTv5CPQwi0X3a/WDltP2XrJ8EIE1/ECLAnMtdqbrPYUdFKYtZ6gG1lCMKUgutKK4veLjuPq8igtNmux69x6WE0eHfI0+l X-Gm-Message-State: AOJu0YwtMQ5RuGJ+tJ6TTwZRqAu0C9oZN4TeBhngLWZDG/4cPnYY3Yro 77fL/1sWBhCozyGSz49pO3h/Xy40CeHRIvUegP1BcwILW2MKoEnzJwXwPC0NxOqaW0pJk0AMwWT slG4= X-Google-Smtp-Source: AGHT+IEG/0wIbuyGcnqgD5opSXYrBcMcU3MoU96KorUtNzs2d4L+WdIpxvofg3R2kQANZ6VaaZ7tLg== X-Received: by 2002:a05:6402:2742:b0:57c:610a:6e7f with SMTP id 4fb4d7f45d1cf-594baf8719fmr1518601a12.11.1720512025873; Tue, 09 Jul 2024 01:00:25 -0700 (PDT) Received: from localhost.localdomain ([88.116.133.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-594bba548f3sm764143a12.10.2024.07.09.01.00.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jul 2024 01:00:25 -0700 (PDT) Message-ID: Subject: Re: Built-in CTYPE provider From: Laurenz Albe To: Noah Misch , Tom Lane Cc: Jeff Davis , Peter Eisentraut , Daniel Verite , Robert Haas , Jeremy Schneider , pgsql-hackers@postgresql.org Date: Tue, 09 Jul 2024 10:00:24 +0200 In-Reply-To: <20240709010545.8c.nmisch@google.com> References: <20240701230352.2c.nmisch@google.com> <20240702165145.af.nmisch@google.com> <1200e97b-3a52-43c6-8b16-20cf45f58249@eisentraut.org> <20240702230333.8d.nmisch@google.com> <20240704212641.c4.nmisch@google.com> <1d178eb1bbd61da1bcfe4a11d6545e9cdcede1d1.camel@j-davis.com> <20240706195129.fd@rfd.leadboat.com> <564325.1720297161@sss.pgh.pa.us> <20240709010545.8c.nmisch@google.com> Autocrypt: addr=laurenz.albe@cybertec.at; prefer-encrypt=mutual; keydata=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 +AnW5l0HsQcY9ntFL/zEBOaonjdJf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.4 (3.50.4-1.fc39) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Mon, 2024-07-08 at 18:05 -0700, Noah Misch wrote: > > I do not think it is realistic to define "IMMUTABLE" as meaning that > > the function will never change behavior until the heat death of the > > universe.=C2=A0 As a counterexample, we've not worried about applying > > bug fixes or algorithm improvements that change the behavior of > > "immutable" numeric computations. >=20 > True.=C2=A0 There's a continuum from "releases can change any IMMUTABLE f= unction" > to "index integrity always wins, even if a function is as wrong as 1+1=3D= 3". > I'm less concerned about the recent "Incorrect results from numeric round= " > thread, even though it's proposing to back-patch.=C2=A0 I'm thinking abou= t these > aggravating factors for $SUBJECT: >=20 > - $SUBJECT is planning an annual cadence of this kind of change. >=20 > - We already have ICU providing collation support for the same functions. > =C2=A0 Unlike $SUBJECT, ICU integration gives packagers control over when= to accept > =C2=A0 corruption at pg_upgrade time. >=20 > - SQL Server, DB2 and Oracle do their Unicode updates in a non-corrupting= way. > =C2=A0 (See Jeremy Schneider's reply concerning DB2 and Oracle.) >=20 > - lower() and regexp are more popular in index expressions than > =C2=A0 high-digit-count numeric calculations. My personal exprience is that very few users are aware of or care about the strict accuracy of the collation sort order and other locale aspects. But they care a lot about index corruption. So I'd argue that we should not have any breaking changes at all, even in cases where the provider is clearly wrong. Yours, Laurenz Albe