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 1u5LMZ-00GIl2-QY for pgsql-general@arkaria.postgresql.org; Thu, 17 Apr 2025 09:16:52 +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 1u5LMX-002Rzk-RI for pgsql-general@arkaria.postgresql.org; Thu, 17 Apr 2025 09:16:50 +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 1u5Hcy-00F2fl-NO for pgsql-general@lists.postgresql.org; Thu, 17 Apr 2025 05:17:33 +0000 Received: from mail-japaneastazon11020127.outbound.protection.outlook.com ([52.101.229.127] helo=TY3P286CU002.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1u5Hcw-000UG8-0G for pgsql-general@lists.postgresql.org; Thu, 17 Apr 2025 05:17:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kUnvblVundwGWdJsOjBjCyAE3LIhq0nRZzJphAIKeW323nO8LY6GeeI1vOMVdTiWEg+07brf/HKW80ZGYz9i6SEjM4fb8qP96MiVxTnK4El/htl0mJMt+eTCtFE3hGL9AxJCoikywYcdklm3Ec4EykCpS2ywfcdkleJOsewuuoMuLDP1YowzekbaiTaIonyflqjwlj5ZmMRlYpyeUqPfLDoSOG0e9twE0DnCM504dGdUwX2KZxPGPoiB9/rBcp/8Es0qgqMIuD/8+ps0GwmqE8aLyZhktcrmFvrvHhIvLqhkAWOe8+W4aLx7bYe9GstyFgT0MMob6MXO4DDp/0mQtA== 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=w6GmYIxwEuyQjRvV/T/ZkeuP6wExkOPvn67oaWJdZrI=; b=pZDO+5kWUPyerBUWkA/z/ClZyu0yvmsMuyOxrnbDbpAsmbG0BFTvqij5cexDDCqaeXnWdCNnLWs33g7ldkVxT4a82fv3UFmv0Raygh3SUl2QY2u3Q5ELFuUb081UUD05csA5QfhQTZ6+KLwaznWHgN0TfVdywfES7DQVSJ2kLz9SyPyzQqHtxcQFyYL6Ce12zGq9ofS3LaUe7GZTU8UjGT9/EWYwBRVltKdMwFHFLOud15YefEiLvqVZfEMEraBwGV77SoKAVfaiyOpA4w0Hr+Mje923RtZUkPRTl/dvgTCHjvEqx2z2WSf7LKPjbtnlByXAj+MhJ62Kg7HzRho3AQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=infortech.co.jp; dmarc=pass action=none header.from=infortech.co.jp; dkim=pass header.d=infortech.co.jp; arc=none Received: from TYCP286MB3620.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3ac::12) by TYWP286MB2511.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:230::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Thu, 17 Apr 2025 05:17:19 +0000 Received: from TYCP286MB3620.JPNP286.PROD.OUTLOOK.COM ([fe80::424b:9661:9a3:1e95]) by TYCP286MB3620.JPNP286.PROD.OUTLOOK.COM ([fe80::424b:9661:9a3:1e95%2]) with mapi id 15.20.8632.036; Thu, 17 Apr 2025 05:17:18 +0000 From: =?iso-2022-jp?B?GyRCMiYhIUduGyhC?= To: "pgsql-general@lists.postgresql.org" CC: =?iso-2022-jp?B?GyRCTXshITlAGyhC?= Subject: Request for official clarification on SQL parameter parsing changes in PostgreSQL 15 and 16 Thread-Topic: Request for official clarification on SQL parameter parsing changes in PostgreSQL 15 and 16 Thread-Index: AduvVvNQyjDJcbPmTwmwOC/31ImN8w== Date: Thu, 17 Apr 2025 05:17:18 +0000 Message-ID: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=infortech.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYCP286MB3620:EE_|TYWP286MB2511:EE_ x-ms-office365-filtering-correlation-id: 8a215b06-7e6d-413d-cb9f-08dd7d6f1ff0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|8096899003|38070700018; x-microsoft-antispam-message-info: =?iso-2022-jp?B?ZDFWT1ByRXpnVHBYRlJiQVNvVXZWOE5ZenhSMkVOWExOdEhsV0hRaE93?= =?iso-2022-jp?B?bWJpek5jU3Z4c29tLzZ5RDlNaW5pY2pZWEdWNFFKL1UreXJVM1prNENi?= =?iso-2022-jp?B?K0tJQjdzdWtxdlUxUUtNRFc1dTZqbmlCaGZRTnVEcUcvNkpicnhndmN5?= =?iso-2022-jp?B?ZGR2NHNIdnhENWRsTlIwcEFGNTBsVnhNYlBzUWRnUEtCOC9NNENsKzVp?= =?iso-2022-jp?B?RTZCYk1iNHJuWGkwdi9pc29pSVB0ak05MW9sUThlenRlSmRmSHZFK1A0?= =?iso-2022-jp?B?ZmRRTEtmaVhMUjBFQnVIWDRLTzEwZ1MzaXRlTEc3WkJyNnRCVUxycFZB?= =?iso-2022-jp?B?ZnZ2Zlg5ZTh4M202ME1UMUY0S1d5Ykhmc2RTQmthK2Y1V3RncENvUEFF?= =?iso-2022-jp?B?Ym83dzNTd3dSSkJCWlBUNkVMRnZtdmp5dStYcERjdThmNmtUSjJMUU1Z?= =?iso-2022-jp?B?NUpxQk5Id0U3cEFhYzMwWENjOXFDSFdyRVZQVTZpckRLNEZsa0FEcFBY?= =?iso-2022-jp?B?Z1dqR2pQclRGSGZFbDRsUVdlNVdKaml2RFAzUjJ3Zlg2THpNdERsc2x4?= =?iso-2022-jp?B?WnlJZnlRMHhlZytZaWVNZDlXbnlXYnNRQlVXYmpwazgvUndjaUdzM1NL?= =?iso-2022-jp?B?SU5pWXJDdWFiZlJVdXhWK1Jhc0JuY1RXamhmei9rVkNvY3pXQ3FGbEQ1?= =?iso-2022-jp?B?ZzVXQ3NJVWZaQm5keVptMkx0SXRreG9NUU93M281TE04RFZOMG1OLzMx?= =?iso-2022-jp?B?ZnRuRkF1TDBZRWgxaWxVOHNOR3JOdkw4Qlc4KzBMLzlJK0wzaVVtaUdI?= =?iso-2022-jp?B?WE1YS0dBeW5DbHQ2RzJWVTZEWXc3YXo0ZThBeUtIWG03dysxQTVsTTBS?= =?iso-2022-jp?B?M1c5akpYRmI4NTNncFdVYjJTNDVCV2o0M3lCak51b1FwbFZEVEhEdmpY?= =?iso-2022-jp?B?RjZkbys5a0kyMmUwbG9kVXZMK1lVaitmT0dtZEVZMUJzbnBJVGJER1NV?= =?iso-2022-jp?B?ak9RcVkwb3Y1WGNYTmpWczB1QlpwaGhTMnJwaHp5c0kzRGt6SHc0K0tL?= =?iso-2022-jp?B?dXRWdWNGUlFSbkVpcVBrQVhEK09uUGNVeU9EUlNIbFhSd1dOVmVtNkky?= =?iso-2022-jp?B?Nko0dlBqUGFORHdiOVZoaGppKzUvVzlFc2tLNHp6TklmanhGblg5ZGhl?= =?iso-2022-jp?B?WFh4Ukp1aERZTUVZQ2hpdnBHTU1BZm1rTFdBbVFScDRySE5MUlljc01q?= =?iso-2022-jp?B?aFZyWEFnWEMxUXMyWGtnUWZBelVDZ3pLSkcxcG83U2h1cTVsWndKdTJa?= =?iso-2022-jp?B?dTd6YTF3ZkZZV3pYM01nUTVwVnJjVkw4ZFhZQ3duQjNjNWpxWFNTV3Js?= =?iso-2022-jp?B?Z0JqRDJ6U3l5R0FmMEppcVoya0YwdE5acGhoaVNrWk5NbUdBOXdSSCsv?= =?iso-2022-jp?B?cTNzZlNrMmJuN2ROZkhYeStCUm9SSzZYcUJCbmk2Mk03Q29vSjFITTV5?= =?iso-2022-jp?B?b1Y5VlVzNmZXbm9QRUtsQzFwUTk3QTFTZktFS0NNV1ZCNFVubXBKL1Zx?= =?iso-2022-jp?B?TXVYUllFeUhEOFdlNjU3eUp2c3VzVm1WT1g2SEJIUGR2ZDJGS2VXM3cr?= =?iso-2022-jp?B?TmI4dGFXR0NuOGFIbFB1UzRoR0xnSVptVFpGV01HZGNVWnhHNzNHK1Bv?= =?iso-2022-jp?B?Q29aMkwyYmJCKzdwQUJpU0d5S0lBNkR4OWU4QVhvREcvcEtHNmRtdzlG?= =?iso-2022-jp?B?VlYwR2FBWlMvaW9FSTR0czA5MlNsTlBtQXNOVXFLVlVXeURld0psbTJj?= =?iso-2022-jp?B?K2RWbWtSOHBaa0oybU9pZHoxN1ZDTGJxUTZTSlI4dUcwcXd6eEdyRDBi?= =?iso-2022-jp?B?MVBOWUtQWHJBZDlqSWJXR1diWDhzYTlocnY4b2ZTQXJOWnJUNlA4VzZU?= =?iso-2022-jp?B?MTdLWjVHQkJkZ0F2RzNEUEJOMnhzSkVERWFDSmJlNEhTem1MOTlvMVhH?= =?iso-2022-jp?B?d0M1U254cE0xWFBNWS9waXhuNXNZZktsbW5Rd1h2ZDFybVBSZ09tUlkz?= =?iso-2022-jp?B?U05hZG5KSTdRNitBOFpRaGRLWXdVMnMzOElVVkloRG9BSUM5VjJZZzli?= =?iso-2022-jp?B?T1ZRMFRra1lLYmJLaUdIdis1c0tlbTAveFNrQWhCSG1lRW1oekc1Q2xt?= =?iso-2022-jp?B?clM4PQ==?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCP286MB3620.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(8096899003)(38070700018);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?OEJFT0hRaUJiTnMvUEpWZmg2cTJFdk82VXRNR094MDJkQ2JIZGJzR0Fz?= =?iso-2022-jp?B?Z1RlUndTOW5uLzk3YUJ4VitmVUR2NTk0TE56dmJJSEJTWU9YbjBhM3R4?= =?iso-2022-jp?B?ZHhUakNuREE5MFlycHZacm0rc3ZqOExKV0NiQU9XSW9nWVdaVXVpK1Y3?= =?iso-2022-jp?B?dlA0VHFvWFVWcm5zU2JQeW9sUmdjT0pmMSt3dTJXdVhNWkZpZlU0eEQ4?= =?iso-2022-jp?B?OUZKVmpUVlFBaTFiUUpmeUZoUStHYkIyZlAzaW0wN1NvR2FmRnRMMjli?= =?iso-2022-jp?B?eUlkVFVGVGIrM1NEUVpRWlA0NGFrMVVHUGp5SmdLQlN3bVhTVUFjSVJD?= =?iso-2022-jp?B?dVFicjQ5YnZkNWdma3pwbFM2UGNvVWZRc3pRWitza0ZLcEhDb2ZONytw?= =?iso-2022-jp?B?NnFVdWZrVlNEMWpZVWJvVk93NzE1SFJPdWkyVHJTRFRMQ0FDa1lITENH?= =?iso-2022-jp?B?eVNiOThnNzVNT3VNeUpncUJHS2ZtT1JxY3JJK0JyamRkR2ZSMGxycGE3?= =?iso-2022-jp?B?MEhBMlJRNndwZVNtV2F5WkY2MGdWbWZkLzN2T3Nwb2Q3dXBYNHlLNFpR?= =?iso-2022-jp?B?a1BmRmdPaDNndkttVmxldkhrMUJ6ZC8xaGlOWE1xNG4wU1l6MnRjUnp1?= =?iso-2022-jp?B?RjVnQlJ0NGFzNXJveE9aNGJXNU9MZW9CRzA5U1NldDVGRUdzeFR1Q2k0?= =?iso-2022-jp?B?Z2NZcGNWcWtmaE5PSWtUcURYSThCRzhtNHpDWE1zSTNIUjJuVkpWSG51?= =?iso-2022-jp?B?bVl6Nm5wbUpxNFJoRy92OXpUZ3lXTmwxdk5FMkx3eHpjejBKeGo5RmEr?= =?iso-2022-jp?B?N2pud29HNEliQXRSUklQVHJ3NTN0d0szTTF6TWxWNGxidmV3UzRUV3U3?= =?iso-2022-jp?B?eWlkU3hUWjAvVWFoTnNqZUJjL2tQVWttbXpoMkRFN2x2ZStjNjRlMzdl?= =?iso-2022-jp?B?RS94WEV5WEtGOW9OSi9qZncxNVErVU51SkFvdUhjMS9CTE5GUnNJdGht?= =?iso-2022-jp?B?bVF6bmNlK3g3UERWQzZYMDQxUHErYXBQL1Vtd3NDVkswRkkrS3hBb0tB?= =?iso-2022-jp?B?bVVEZkpVSDhHY3lOaEFBSXpnSFJPdGx0N29XdFNRYVpqTVNyTmxqTTZO?= =?iso-2022-jp?B?aFo4NmRFZmFuRFBBQ2ZENEU4L0Z3L29oOW9hQktScHZ5bE9uRzloeU1P?= =?iso-2022-jp?B?Z0puSUZxTm00eWtIYXFjY0pmcTR5clhNNEFjMDZNYVQ4MEJnajBwa1VK?= =?iso-2022-jp?B?UXRMeVFTaVc4QnJUbTQycUYzbnI4ZFFCRmhjV1BEZlhVc3E2YXduWkJa?= =?iso-2022-jp?B?bnRuTWg0N2hJRjdteGpQWElVa3VRSU16NVJQcGRhbm1idUwwYmZ6S1Rw?= =?iso-2022-jp?B?dXZMRkU3aFExNHRBMGFZOGkvSGNuZHF4OVRHajg1Rm1MaDZZNXZyRnYv?= =?iso-2022-jp?B?RVNSdUx1Y0IvRlVYem5NRVliK0wyTmk5eXFqNDEvYWlTa1BoWVd6NEwr?= =?iso-2022-jp?B?UUtId1J3QUlxdC92MFJLOE1YekQrVStmQkszKzJWeVRtLy82aW1VcXZX?= =?iso-2022-jp?B?dEk3QUE4cFgvZ2w5YWE3Yzl4b3dLdUNWRC9CelBENnlIbzNtNCszU3E2?= =?iso-2022-jp?B?ZnRHbzBYVWpFWkViME1EZE9oTHVMcmlDZjRMQnhyVmxDZXhvWUFlV0lW?= =?iso-2022-jp?B?RUJPWkRyREVTTW5TTUhWTzQvczFORUpHQXVaSktNOWhVclNmVjcvU0pY?= =?iso-2022-jp?B?WVAxNjgvRU1oRE9BUHFodnpQMEV6UFVFWmJjSTc1bTFoMXZZb1NxcFp6?= =?iso-2022-jp?B?cTU1OVVxMldEbmdWdDUwcFJ2MjNybC81RmRDcFhsREQ5c2Qrc2xGaW1i?= =?iso-2022-jp?B?R2pLekNVdDZqQnNWTzZjY2R4K241bU9qOUJPcC9RVFdLd2hhdlowQlVM?= =?iso-2022-jp?B?d0RCL2hQTUMzQnQxaEkxalBJcE5jNXVldXRqdEdsZTlwQ2hvQmxpN2NL?= =?iso-2022-jp?B?N2tHa1hXVmlNWjdvZUxKanZjU21STEZHUy9nQXFpWW8yZ1l6cDE3bEht?= =?iso-2022-jp?B?THN0dmxqOEdGWDBydVl4OWlxQmhTbU1ZZkU1U2pTUkRHVW11RGl1ejJS?= =?iso-2022-jp?B?ZEFsc1dhZDdzUkNzM3o3QkJPSzJqNmVHRVJyTnZWck1zQnhXazRJLzB6?= =?iso-2022-jp?B?RjZXRDNkMHI5WUFIcVlkNnlFendDd052cUVXOFIrckFYYXRXWGJleWZI?= =?iso-2022-jp?B?QlI5SENwWUlRTHBpSkM0Mm9OcXk5UzltYXZ6M2R4bHh3MGV4blhsanUr?= =?iso-2022-jp?B?VlRUbg==?= Content-Type: multipart/alternative; boundary="_000_TYCP286MB3620D4D19E3793CFA106CCBFB6BC2TYCP286MB3620JPNP_" MIME-Version: 1.0 X-OriginatorOrg: infortech.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYCP286MB3620.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 8a215b06-7e6d-413d-cb9f-08dd7d6f1ff0 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2025 05:17:18.6882 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: cc1bbf89-9cf9-42a6-93f2-da6406d0b117 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dpsDhHhDbmUXcaoDUjQRPGLgDqr4y2PEx7vrGD6lluFgoVT2Lfz6mwgHxBL/vcbVTQ2rG0myeEJxPTGBgCIFHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWP286MB2511 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_000_TYCP286MB3620D4D19E3793CFA106CCBFB6BC2TYCP286MB3620JPNP_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Hello PostgreSQL Community, We have encountered unexpected SQL parsing errors during application upgrad= es from PostgreSQL 14 to 15 and 16, related to the use of JDBC-style parame= ter placeholders (`?`) in our legacy applications. Specifically: 1. In PostgreSQL 15 and later: The following SQL causes a syntax error unless a space is added after th= e `?`: SELECT * FROM table WHERE a =3D ?AND b =3D 123; =1B$B"*=1B(B Adding a space (`? AND`) resolves the issue. This did not cause an error in PostgreSQL 14. 2. In PostgreSQL 16: The following SQL causes a syntax error: SELECT * FROM table WHERE a =3D ?ORDER BY b; =1B$B"*=1B(B This query runs in PostgreSQL 15, but causes an error in 16= unless a space is added after `?`. We understand that this behavior may stem from changes to the parser to mak= e it more strict and SQL-compliant. However, we were unable to find any exp= licit mention of these changes in the official release notes of PostgreSQL = 15 or 16. Our client is asking for official documentation or a statement confirming w= hether this behavior change was intentional and when it was introduced. Could anyone kindly point us to: - Relevant release note sections, commits, or discussions on this change - Confirmation that these are intentional parser changes (and not regressio= ns) Any help or references would be greatly appreciated. Best regards, Wang Bo --_000_TYCP286MB3620D4D19E3793CFA106CCBFB6BC2TYCP286MB3620JPNP_ Content-Type: text/html; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable

Hell= o PostgreSQL Community,

 

We h= ave encountered unexpected SQL parsing errors during application upgrades f= rom PostgreSQL 14 to 15 and 16, related to the use of JDBC-style parameter = placeholders (`?`) in our legacy applications.

 

Spec= ifically:

 

1. I= n PostgreSQL 15 and later:

&nbs= p;  The following SQL causes a syntax error unless a space is added af= ter the `?`:

&nbs= p;    SELECT * FROM table WHERE a =3D ?AND b =3D 123;

&nbs= p;  =1B$B"*=1B(B Adding a space (`? AND`) resolves the issue.

&nbs= p;  This did not cause an error in PostgreSQL 14.

 

2. I= n PostgreSQL 16:

&nbs= p;  The following SQL causes a syntax error:

&nbs= p;    SELECT * FROM table WHERE a =3D ?ORDER BY b;

&nbs= p;  =1B$B"*=1B(B This query runs in PostgreSQL 15, but causes an error= in 16 unless a space is added after `?`.

 

We u= nderstand that this behavior may stem from changes to the parser to make it= more strict and SQL-compliant. However, we were unable to find any explici= t mention of these changes in the official release notes of PostgreSQL 15 or 16.

 

Our = client is asking for official documentation or a statement confirming wheth= er this behavior change was intentional and when it was introduced.

 

Coul= d anyone kindly point us to:

- Re= levant release note sections, commits, or discussions on this change

- Co= nfirmation that these are intentional parser changes (and not regressions)<= o:p>

 

Any = help or references would be greatly appreciated.

 

Best= regards,  =
Wang Bo

--_000_TYCP286MB3620D4D19E3793CFA106CCBFB6BC2TYCP286MB3620JPNP_--