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 1spFMw-00069z-Hl for pgsql-sql@arkaria.postgresql.org; Fri, 13 Sep 2024 23:06:27 +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 1spFMu-00EiI7-30 for pgsql-sql@arkaria.postgresql.org; Fri, 13 Sep 2024 23:06:24 +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 1spFMs-00EiHy-45 for pgsql-sql@lists.postgresql.org; Fri, 13 Sep 2024 23:06:23 +0000 Received: from mx0a-00151a02.pphosted.com ([67.231.148.69] helo=mx0b-00151a02.pphosted.com) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1spFMm-0013qh-L8 for pgsql-sql@lists.postgresql.org; Fri, 13 Sep 2024 23:06:20 +0000 Received: from pps.filterd (m0099558.ppops.net [127.0.0.1]) by mx0a-.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 48DI2u74030260 for ; Fri, 13 Sep 2024 16:06:14 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maps.com; h= content-type:date:from:message-id:mime-version:subject:to; s= pod05172024; bh=7pudGDkocQF4SfjqMtC6A/bx91SvQhx97QX60/Gw3ac=; b= qVQrbNXSNx3oDNQxCoKWZNvDtwqoC8Zj4t9YNXE8M77fg5OyvB6SC+g/IdUYv95L GfguJ55t25skoFFV5rPyrPqWWmPmt2m0jn+7FHg1+fb+ipMRd7V0teALA3TVmsxw rqFsGHM0X788wqWCVHxBj1Zbi5ECkXmSihQwF9Apg4ISRnJDYqPJob99mpBLlVe/ KL6x+TFW6tPxRBdkblITcIsHKFmtajpBQ6O2kea4EwHJaUsxefyIh97G1yE2+I+x zzT/GzFs+rWchdc3sgwc86TBXy8KXabs0rPkxth/Kmz9/qToqOWL21Y52r2H8168 Q8VQTscyA/cFVbRPNJQM/w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=esri.com; h= content-type:date:from:message-id:mime-version:subject:to; s= pps62018; bh=7pudGDkocQF4SfjqMtC6A/bx91SvQhx97QX60/Gw3ac=; b=FLm 87D8CY7q36hrVfdVHP55bEo7e9GMuGp4BYEolsvD9Q8LRVvsQ11VaJxR8mWW3VDQ SSLpZGii337ekspyX/ddqcQIzaFktbCSW/Ys0H74fYNrIN4J7INyoQjpA4UGTGT1 RoMYm9NZmXapLUOu37jM8NYAg1XO3T7l4RzF9C12+Ecwvd1okEgFpjlV+yz7keDJ draxGuQ0b/Oq1DGdSKvKMFYU5s2lrfULJ/C5QXdi04YDQ3zfTFnP+7A+iP1vL2s7 FTjdYbTIzcjEHbEsGqqqgV8jWQCjS5uBwU+4++Wt/4if4alCPVIMahazdtmcwHvh QY/qIlgu84w9x1XCSvQ== Received: from cy4pr05cu001.outbound.protection.outlook.com (mail-westcentralusazlp17010006.outbound.protection.outlook.com [40.93.6.6]) by mx0a-.pphosted.com (PPS) with ESMTPS id 41j310t2jb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 13 Sep 2024 16:06:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wjt5DSKbBBYReKfeQV7xabkOzf7JdVpugxbuagJ7h3AcopoeeUyaI7w1qZgdg6gUzXshj/Y4ps/39Dz2syEMtYMyH0DNb/kh7EtJ69pOyMmiKR1M+SNXq07NBo+Qi0Lp02I3PS8Dp2LJFXok5NbmXdaGoFNxMsyXUSrlGVZ7hAiGHnwCi5P91yUjWJaqD6qoRnxDJFkS9ia9Gi+Aryq/OuCpcCCFQXegcQFeeYfxrsVtBeeJiFZ20i4d7NNtG3HD5HbwO0ado3kP2Xmyxmirb7k3KX0jix38guTipJgK6UTHZEXdV2hKMxYTg2oCo9wpnmA0YJ0xi8Vi5xI8bpDkEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7pudGDkocQF4SfjqMtC6A/bx91SvQhx97QX60/Gw3ac=; b=lblROMnnGbTyaJWjvMiP89mbZcDMSqiMpfjRm/eKydOu6eFpOpKK93y3QG6ZNA5EASmftGFmfjNEsDC6iyRy5rn/Q4113ca7Y2elikBRJCKJHWBhRnhzzDQJk8NY+52u2Gz0h7OhPGWph8Vc8V67Q7YdQ/W+wBmYj0vvFdZzq/Z97VDtZ9EBZWi/PdypezNC4n6ZlfyAMv1HKFNYH8YqyXXLaWJOyCsGuhh8VyWhSt4jpKHQRiwLCv2bT3XzQPw2MrebarLElewP9XcFgR0Jnb+ovUVoUFl/PBLSgNj7xe+1gBxujVoTi3F865F8q1GcRLgZ62Yo5u866Lj/3wl4bw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=esri.com; dmarc=pass action=none header.from=esri.com; dkim=pass header.d=esri.com; arc=none Received: from BY3PR05MB7985.namprd05.prod.outlook.com (2603:10b6:a03:357::16) by CO1PR05MB8040.namprd05.prod.outlook.com (2603:10b6:303:fa::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.20; Fri, 13 Sep 2024 23:06:11 +0000 Received: from BY3PR05MB7985.namprd05.prod.outlook.com ([fe80::1136:1f2f:3710:e295]) by BY3PR05MB7985.namprd05.prod.outlook.com ([fe80::1136:1f2f:3710:e295%3]) with mapi id 15.20.7962.016; Fri, 13 Sep 2024 23:06:11 +0000 From: Michael Downey To: "pgsql-sql@lists.postgresql.org" Subject: PostgreSQL implicitly double-quoting identifier name with umlaut Thread-Topic: PostgreSQL implicitly double-quoting identifier name with umlaut Thread-Index: AdsGLnHVnGdm0oISQoqxFlMAEyZJDA== Date: Fri, 13 Sep 2024 23:06:11 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY3PR05MB7985:EE_|CO1PR05MB8040:EE_ x-ms-office365-filtering-correlation-id: 0ac93cba-52f8-4a07-abe5-08dcd448a892 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?vQFyiSWZJya5NjJCbyjJ0aaS/9g85RBLPxnH9NI+7u0rHvUE4RNvDMNIvR?= =?iso-8859-1?Q?Awh5t3BhuII2KA6w8L40eZtasHxPBbu1D0AIY+tzQoaWFCPd3S2SRNBJ23?= =?iso-8859-1?Q?CDfgMv8f/41sP53d0NhxM+fThVIwto0Q3T1HkOpUtY9ilI0U9rsQuOTd0n?= =?iso-8859-1?Q?bJ9VWG+XFLxeXIFfn8DkR7/ErRl8G1Xkk+bxK7m29S9lhOdiIgsdu1XYaN?= =?iso-8859-1?Q?PSnCgH2aycavaFuVczBZ3jl1+yb0yXgcwHOht/vnr0+t02AGLuXCZ2qKsC?= =?iso-8859-1?Q?791/CfZ1RUm04nS2iGmzjCBvNI5fyOFD1aVeDIXDJ3gcAQd+0xfWta0YkY?= =?iso-8859-1?Q?zCcDhbud2rbS9LRaYtGjWUhq5RMtrWGGTfPkSLW2Ep/mICym1JYbGb+gl7?= =?iso-8859-1?Q?mcSpdxLT1fSDn0RBodj4lZzI590hdy2VAvufPxPoWIpnR5ki/2BV8aywVH?= =?iso-8859-1?Q?8vEl/N5YANin/HHU61swy5L4eqdqbZJr2OrCR/wM4zMPBRiVJAUM8WcGYP?= =?iso-8859-1?Q?aGPzoAlEux5zQNfbEM8AI5JBO1oBYRGH6DTd1xpSGrj63mH+xsA65pcYrr?= =?iso-8859-1?Q?csE62FLYHGOyVPDEE7nYL5tSPVz/6tnsiJfbrMol5d9WZBl2Vc27OcL9Jr?= =?iso-8859-1?Q?uuVvyrr+WIti6UH7s7h3RFsP3HHRLvb/ed82HKgU2jtqLR213hx9ivzrZ4?= =?iso-8859-1?Q?8+0WWMoMQDS04t0M8OjcCnoWr6D9ezXa/ciE8vvFROCghXgx+RMvNSOsY1?= =?iso-8859-1?Q?qVYEC7XLeUIZLzBrPUjLByPf0tYbI2oK7dLjxW9mqYgNbmBRkhdOaxKJ12?= =?iso-8859-1?Q?ctL8DgoDLoqzJmaU8kj0T6gRhz8C8LyCl/eyq1E2v5aJQji3L+fWBFVQVM?= =?iso-8859-1?Q?970pBQk9hznHROZbohJ6+NBe6dRIyhD5jzLL9lpGzApj9MIJBV7xVXDThW?= =?iso-8859-1?Q?ncn1iBe2CIl4GKx1YmoDPyZ85Td8X3LT6kLvtyNeq9EyOAPvEL/t5OfeYE?= =?iso-8859-1?Q?PVuQxH+slWkc5V9QoyHO6ynHsiNF+hl4w2wm/2IxTMrlbi/CDkzvan60dL?= =?iso-8859-1?Q?GFXhiDJdYcLRDhRUbu+D8EB8MM4YH4EyuiqKxRc1kIqrFykuwfZ5AulUIV?= =?iso-8859-1?Q?BEeN5J9f6B9AbCCmq68yT4b5VdIgOodEqnvu5nsVc/k/kPln6t6nPN1+VD?= =?iso-8859-1?Q?E9nZI7DNqs0EJALSK+PQqR7aq4XGm4wI6Lnh8mEW79XHlq3G/oaKPHeNOv?= =?iso-8859-1?Q?XTLYmGCpeuRojjEfdLVXG6DHc/PAYMsYG4UEMET4xBVBjd8LYNNb3YO4h4?= =?iso-8859-1?Q?88aUi+YxUn1yFsGBehHpH08Mv+R5tjMaE9Sc5M8RUobqg/MvQZkFcUGyME?= =?iso-8859-1?Q?1ASesmfTlpVHmiYTYRrc/170Js3cJT9Q=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY3PR05MB7985.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?eSfIcUpvGS+m3IH9II/hsRNaLwyyGajbLL4hPgnuxuJjTYQu7NntnM+qhj?= =?iso-8859-1?Q?D9Ue7zBIqe5sMVXHeayneD2Av+jEfduW1W8LQ4FOdxJVti/PolAeTGayEd?= =?iso-8859-1?Q?bBK6YeDc2ckrVhDE5VVtT80knH2AFt/r7cP9QJ7GHFvSRb/iu4zQdjkPMP?= =?iso-8859-1?Q?zqvyAvwCs49dpIxpQApAkM0DGcNL7HGd2Lyj/sxFOOhO21uQ3N82Gp1ssS?= =?iso-8859-1?Q?UIlpLO8qo9jlYrm6zMHCuup3tKJPx10HKBsUnExsv0WwT+edVzufpbk5gX?= =?iso-8859-1?Q?/5D4WsPHkOJh28EFA+jTHPNx11QcLdUe+0aPIqZpN3OuTeqeWbuCKaQ3ak?= =?iso-8859-1?Q?ka8gQauYrDEbFPbtMMqR3GjVj//dloayi6Wa2WKm2TEvMSMNgrLzvz0A+P?= =?iso-8859-1?Q?ppkoDXbcZFO2ufDDUdV4T92aajqQJYIeFQMmZj8yplxgA6uGvCpMI8JkTm?= =?iso-8859-1?Q?H8YGg4gBHWoysk4vE+eYMYl9ERRiVjHSBcqGb1BLwibB+nrHbJ3eifJqe9?= =?iso-8859-1?Q?qvqfKYLrS4MVaIygZ2BLWO312/zulKofM4Ei6/oMpHSiC7NZ/h4gf/ExCp?= =?iso-8859-1?Q?IZpxWRuwP6oNYCchhquBhVP4kXUBoW4qlmlW1Oo80ni/KqXpy1KIWzPsuR?= =?iso-8859-1?Q?wVv+tg0/hz3DOk2iz4axaxK0hvVigmV90YZdKCtk7GBelQBK3gzCUZkX3n?= =?iso-8859-1?Q?8Vi2LcmnU7dB+zoefR9CwKDS34ITnDKr2MQsioW8qi5Hiveikkw4NSIJcG?= =?iso-8859-1?Q?tsZnl9trEza4xSWATzA3Se/zQv3xGgHUlxTr7bKOpdWBgFXVZtwHxRxVqO?= =?iso-8859-1?Q?nBh6YCvXAsSg+/SAfuzf8kcMbsZw3dCiy+iw8uTwKAMy7cIs2ziL0JTT5F?= =?iso-8859-1?Q?lpiMB275KauzUllVycBbuYcnVoVt0i0Eih6tkgRNikvs1BUKjky1vE0QLg?= =?iso-8859-1?Q?VHL2pQ0jFnuSFgtYKANDNDAs44jgzqUsEQbrp2XvuR6a3jZRhznDn6rkHH?= =?iso-8859-1?Q?05u1uBYTVI44JEv48MUge0/B3EcQBQnTP+Q3kOJjy62Mw84ZBApj+W7YZS?= =?iso-8859-1?Q?NMioDWFqjAbYy4n6+rYdcQK+r1q4B8aJmcj5de0oWdXZaHiL39vqpCSUba?= =?iso-8859-1?Q?DeZSTmth8yuaxzZvCSgyQgPiVTqGjYY76jpe886mKmfW6eWvLhtPZ8iupO?= =?iso-8859-1?Q?Ml/UCOwI9IwoaWuduVD298Ix8gVnSMtINhQhxA3ZeHyMQw8l6//xcwaJzh?= =?iso-8859-1?Q?ugN9XIwiCjevUdIBpSdO8ir2WS7rmhJLg+LbxlBoeeREIbqhj+0ny4EnlW?= =?iso-8859-1?Q?/sPF1CvSb51BcrF2WTAaKzbDwAaMLsF/bVnJzFK682yAapkuXNMz8WsXON?= =?iso-8859-1?Q?/OzZmwhBXPxGyiu+1T59aj4+7uQs2g3yE2NGL/XmcYC2Cnmi1S5BC5kl96?= =?iso-8859-1?Q?nXj5CHP2DMJWo/JdU1VZLNccx4VRbKyePWkIRKfnp91VOeFw0m91FtBYfm?= =?iso-8859-1?Q?18jdjePfseXYKr3BvUEuakgh1WoPtgh6umfHPe9Eo2Jl9PjSIFpzWYPOCZ?= =?iso-8859-1?Q?7db+5QdwPV8O7OSA3CcLXB+q8gscEJzDa8dbhwCOr5bEJHeEg9KGpAseMF?= =?iso-8859-1?Q?352IC5z/fNbnQ=3D?= Content-Type: multipart/alternative; boundary="_000_BY3PR05MB7985A889E17333E35AF6B110DB652BY3PR05MB7985namp_" MIME-Version: 1.0 X-OriginatorOrg: esri.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY3PR05MB7985.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ac93cba-52f8-4a07-abe5-08dcd448a892 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Sep 2024 23:06:11.0620 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: aee6e3c9-711e-4c7c-bd27-04f2307db20d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +iKHVfR5lH2n5xXOi4Kc8ryK2179ULk8sCVNqsQE361GPwBFw9+cwGJ2TsF4khMz7QeKPntx0oGaeOai3uKJyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR05MB8040 X-Proofpoint-GUID: aUJhljH_XQAB49-skjjAXwfJRSSIhICl X-Proofpoint-ORIG-GUID: aUJhljH_XQAB49-skjjAXwfJRSSIhICl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 clxscore=1011 adultscore=0 spamscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 mlxlogscore=899 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2408220000 definitions=main-2409130164 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_000_BY3PR05MB7985A889E17333E35AF6B110DB652BY3PR05MB7985namp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable PostgreSQL implicitly double-quoting identifier name with umlaut I an understand this behavior, just trying to find documentation to confirm= it. Server and client encoding are UTF8. One of our internal users, using our tools, added a column called =D6rtscha= ft. We anticipated it would be folded to lower case. So we inserted our metadata for the column in our metadata with the name = =F6rtschaft. With the system query for metadata, we ended up seeing query mismatches involving this column as we found the actu= al column name is =D6rtschaft in the database. I looked at the "SQL" of the table in pgadmin and saw this: "CREATE TABLE IF NOT EXISTS map.mytable2 ( oid bigint, name1 smallint, "=D6rtschaft" integer ) TABLESPACE pg_default; ALTER TABLE IF EXISTS map.mytable2 OWNER to map;" I thought our code might be adding the double quotes inadvertently, but the= statement in the Postgres log had the alter table statement with =D6rtschaft without double quotes. After experimenting in SQL, I was able to find that in I could reproduce th= is in psql and Pgadmin sql. Ex In SQL: alter table map.mytable2 add column =D6rtschaft7 integer; PGADMIN interface output (I could not find the exact query statement to pro= duce this) CREATE TABLE IF NOT EXISTS map.mytable2 ( oid bigint, name1 smallint, "=D6rtschaft" integer, ortschaft2 integer, "(tm)rtschaft3" integer, "=D6rtschaft4" integer, "=C3-rtschaft5" integer, "=C3-rtschaft6" integer, "=D6rtschaft7" integer ) TABLESPACE pg_default; ALTER TABLE IF EXISTS map.mytable2 OWNER to map; This behavior seems like an exception to the lower-case folding behavior ex= pectation. Is this expected? Is this documented someplace? Thanks, Michael --_000_BY3PR05MB7985A889E17333E35AF6B110DB652BY3PR05MB7985namp_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

PostgreSQL implicitly double-quoting identifier name= with umlaut

 

I an understand this behavior, just trying to find d= ocumentation to confirm it.

 

Server and client encoding are UTF8.

 

One of our internal users, using our tools, added a = column called =D6rtschaft. We anticipated it would be folded to lower case.=

So we inserted our metadata for the column in our me= tadata with the name =F6rtschaft. With the system query for metadata, we

ended up seeing query mismatches involving this colu= mn as we found the actual column name is =D6rtschaft

in the database.

 

I looked at the “SQL” of the table in pg= admin and saw this:

 

“CREATE TABLE IF NOT EXISTS map.mytable2<= /o:p>

(

    oid bigint,

    name1 smallint,

    "=D6rtschaft" integer

)

 

TABLESPACE pg_default;

 

ALTER TABLE IF EXISTS map.mytable2

    OWNER to map;”

 

I thought our code might be adding the double quotes= inadvertently, but the statement in the Postgres log had the alter table s= tatement with

=D6rtschaft without double quotes.

 

After experimenting in SQL, I was able to find that = in I could reproduce this in psql and Pgadmin sql.

 

Ex

In SQL:

alter table map.mytable2 add column =D6rtschaft7 int= eger;

 

PGADMIN interface output (I could not find the exact= query statement to produce this)

CREATE TABLE IF NOT EXISTS map.mytable2

(

    oid bigint,

    name1 smallint,

    "=D6rtschaft" integer,<= o:p>

    ortschaft2 integer,

    "™rtschaft3" inte= ger,

    "=D6rtschaft4" integer,=

    "=C3–rtschaft5" i= nteger,

    "=C3–rtschaft6" i= nteger,

    "=D6rtschaft7" integer<= o:p>

)

 

TABLESPACE pg_default;

 

ALTER TABLE IF EXISTS map.mytable2

    OWNER to map;

 

This behavior seems like an exception to the lower-c= ase folding behavior expectation.

 

Is this expected?

Is this documented someplace?

 

Thanks,

Michael

--_000_BY3PR05MB7985A889E17333E35AF6B110DB652BY3PR05MB7985namp_--