Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFt0n-0001r4-OV for pgsql-jdbc@arkaria.postgresql.org; Thu, 12 Jan 2023 08:32:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pFt0m-00052I-I9 for pgsql-jdbc@arkaria.postgresql.org; Thu, 12 Jan 2023 08:32:36 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFt0m-000514-0c for pgsql-jdbc@lists.postgresql.org; Thu, 12 Jan 2023 08:32:36 +0000 Received: from mail-am0eur02on2106.outbound.protection.outlook.com ([40.107.247.106] helo=EUR02-AM0-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFt0i-00014v-C8 for pgsql-jdbc@lists.postgresql.org; Thu, 12 Jan 2023 08:32:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JOBwwhQicXdRzW6WoOwZsc/Q3OEMoGW0LB9qTkUebBuJwJx6TwIBkgJ+5RnKytDqRfRvpzYdmHoyeMIToSvpXLa39Ia9dAaFjaYCyyE0Amgy1lZ6FvgC7ui5KRI4VAhzrPOXNlo86xJS6VfgE+pZkIsvhC94WbTTMArFwSWGAgCyRu6ZhH9Yhwp+5RtANYpNHVzocfT/LPA7C/gyaDcFAvpBCzovZVuEG/ndwwXblzf66sliBF3G+Yvn39Uu2CBQ4lDHLKyyRLR/FRKiVY8j0U4Vy2NwHX6UD+wY4f3q7JD6bMcEV/3NlxraecgCmhPiPbMBJMOeU+e9hdisaQtUvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=pcqvULSCAiThtMYxRKjE4iVbcqEJq2aIOOJoUacG1mw=; b=ePkQWkAyML00xu0rt8pWUCcQdtcJVJOajqfvNH6ooBZJufcxvqwsL5lmRN2VPxYSUaPi0tC6CDZrYMtqW/erEPFxtC/RCFj+ewO2ehk6FqVs3U0/+wYsfXaAlPSWUkJcx+3qbpwIleZ5gBpCkMtgRBywsYHrc87XcxtkIdfubM4GVpHNAniAlZ7q/I+7vUdFplcshpdcehwPsnlVhtpxWZe5xcjoinR14Abv/IANRI77d06eedz6GPSzyhPkvhP81uID/ywm17LkOGI62XDAB88zAIKfiPzTBTJdTY9v27ydoZJ6HI71oar68SAsgvIvx2vrsoIvEd7k23cBQCB0VA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sibvisions.com; dmarc=pass action=none header.from=sibvisions.com; dkim=pass header.d=sibvisions.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sibvisions.onmicrosoft.com; s=selector2-sibvisions-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pcqvULSCAiThtMYxRKjE4iVbcqEJq2aIOOJoUacG1mw=; b=IqZs5c9mmFZyzPub9qasTyc9un5AnUkf5GHqd7mV35ir/PMvUTB5NAk1N9wwDIWDzQTk3dEr+nNdcET41VIQRVOnqXsMAk6ZT+A8M0L+7AdN7aTG4w0jgUrVq3VodO1qs9bBK07at/pk8zNjPJB6Q3Blv3BR6xntXsHzvo58zs4= Received: from VI1PR1001MB1423.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:800:dc::13) by AS4PR10MB5576.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4cf::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.13; Thu, 12 Jan 2023 08:32:29 +0000 Received: from VI1PR1001MB1423.EURPRD10.PROD.OUTLOOK.COM ([fe80::ddf0:d339:c87f:6be5]) by VI1PR1001MB1423.EURPRD10.PROD.OUTLOOK.COM ([fe80::ddf0:d339:c87f:6be5%10]) with mapi id 15.20.5986.018; Thu, 12 Jan 2023 08:32:29 +0000 From: Martin Handsteiner To: Tom Lane , "David G. Johnston" CC: "pgsql-jdbc@lists.postgresql.org" Subject: AW: stringtype=unspecified is null check problem Thread-Topic: stringtype=unspecified is null check problem Thread-Index: AdklFfsFLHgEZ0o5QRejFv2odQbTIAABTL2AACCisKAAIHtkAAABkD8AAADq/oAAAo7CgAAKy3Mw Date: Thu, 12 Jan 2023 08:32:29 +0000 Message-ID: References: <784915.1673487222@sss.pgh.pa.us> <865715.1673493193@sss.pgh.pa.us> In-Reply-To: <865715.1673493193@sss.pgh.pa.us> Accept-Language: de-AT, en-US Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=sibvisions.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VI1PR1001MB1423:EE_|AS4PR10MB5576:EE_ x-ms-office365-filtering-correlation-id: c3febf3e-8127-412c-e42f-08daf4778ae2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /eAlRO4Gqs1P9gmzsM1k/vt7c0EToikumorrbdz9IlG6qWGbLMJ/y8U1xPtupa+fOTMQIE/LeULft7B4ZKrnROHnaL47ora3+AUZmwe7kK0PO1moZiGhAzXo9YuYEMjJqx0IaaWrUIPPsCY9/JLxTPFG+N9lh+mGktao5r6swJiNFTAh5efESb97lav41A4qT6fkTEVcTtGoLmEgK8rjLzK+X0ktP/vzGFqvhst2xVEahAdZb6lC+av8Y+GQ803geYw+rjNb/OnSDnTRU3p0wO6pvCJSuWz1NYJ5aHKYQ2CuzebkP1z01Pl8hXF3EguV5eDZv6S5xUPPOH/c57Pubo7c32rAPF+cioiOozOhwxw47up3RaDBn3LP/9ZlV0IKbg8lvbH44OHlrrne7Vkr8Y50TcCWQMZpM+e9Tx4/KLAqdazNV7IeqehaDlpyxxMThjlf/WXqVU+pgxYcTvqkuU5y+iwIpAA6ir2MSO8SqHZnCuGHVvTuxzHUGXIvsvrDicDr1suITRPlkOfcSaQY+3CSofe8N2MTT9jerYRtM4kgMtBEneA1u6LkTp2cTHhdsL8XWcuVa+oejzlMv4HJ2fCnEWLKp+on7EiM4G6TLYk+0MMdaaYALzxn/BbubzhyoM84aph97CR7nCFMkaVcOQoHUI0ZgbCHnpDXTL4pQoECy2GcE10d+Wtv+QVZuKCnceNmLSf+9hKtz4Bs0uvXtg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR1001MB1423.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230022)(376002)(366004)(136003)(396003)(42606007)(346002)(39830400003)(451199015)(478600001)(38070700005)(41300700001)(33656002)(38100700002)(71200400001)(86362001)(316002)(110136005)(26005)(66556008)(66946007)(76116006)(186003)(7696005)(55016003)(66476007)(4326008)(55236004)(5660300002)(6506007)(2906002)(44832011)(4744005)(66446008)(9686003)(8676002)(64756008)(52536014)(8936002)(122000001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?TE69fBKQwMNP+Ul3mJ/J3ix6jj/BxoBwrOppZbIXi1rg/jUUCOvdqDtXUAnG?= =?us-ascii?Q?xHAwZkF07rQcl+Ftekc34UF/m+8SUMrQCzJhF4sIayqrDiyz2hHYsGqbUJ4D?= =?us-ascii?Q?h/PyL4MKaxYNUePwulaOmfbY94R29WeDCXN9PrLNegY2AHMKWUIR6vwPmdJK?= =?us-ascii?Q?4HzW5cCHlQey1LKxhCZmh271Gs+bRh9oHg+lcR8fgCnJPzxLgWu4EaPJq7bP?= =?us-ascii?Q?tcRs3fYi5FG+vur1tT7I+yJWUtEvU0a5bHWsYUJdwT1b6729uGLvbgMjrLsw?= =?us-ascii?Q?IVhwYEke4CvPPMfWuWRA/NXB2FRBs5Ka10+7MOdqmG+VTiCnd4rAmfJ1/Prd?= =?us-ascii?Q?WQu2jp+S+4nsJZDIhduhsHzEAE6IvuZEWilP6kd1wTv5EDQpSk7M/MkRy/iR?= =?us-ascii?Q?un+q0OwoUKBXEFrpRRHIaZfGByoem2UnLKNK9KdllEmi+EzRr5votp0IjNSn?= =?us-ascii?Q?WI/YaiKRghGfgYp0PGKBQfKWAh7JYU8RIw27AvW50MSML5tW4/OseztqeTQG?= =?us-ascii?Q?lgkYIBPzZ+4IyVmqInU+VNJ78vCiYTLglYINm9qzVrsCMCjKfFbjhA56AMVi?= =?us-ascii?Q?wlMlPHX7XvjRc482O7U+akh99fFIDUDUAQZqqr4/uYkKDjFgGmzx/1B/UQa7?= =?us-ascii?Q?WAFfAh97NfV2uGiUezp7NyZkea66P+lUdN7a827eixkYupbwvKEOmcRA71dK?= =?us-ascii?Q?65puPloryYZ4jW5+XDMvz4VYLXLflk8bKG/Ndr7QfoGNj4KqiSxKq/ytcEfK?= =?us-ascii?Q?C7MPeHkFvDytglq9/IwSir88vB6oVDueGUpEpMaDQjuMH+yn3nsEfb4GGPjh?= =?us-ascii?Q?YhkBgiErNw0Cb7OzAuZoQUrRB+jNE59FYfOi5y/l5K2g/9buD50S8bZdsspo?= =?us-ascii?Q?1HSD1Uw4Git2QZFyONqobXGUpZDJpauYLWtTHypJOn+n7easCRbMXo6CgceS?= =?us-ascii?Q?DXeCgrM4UPZAAQ7mW2h4vWFsfTF2fBnUfkbx+ZkM5/hTCR16zwfQ2CNAqNu8?= =?us-ascii?Q?WbM4FlqzcmTwDzVvxALG5z0bKeEuZmsXauHx7pZiVRVKP9Ml8XxgvdvKA6hw?= =?us-ascii?Q?rwzyZInO6b3BpiNi0sbWwl7sl+PO+/ac4arLD/dEpT6Nv5k9MeNlBAIjoqfE?= =?us-ascii?Q?iYo/Nfu8qdd0syYeiW9zF3QZcvk7tfdRI+7HXRWhkkSgo2u+SOBgB6bUDWOK?= =?us-ascii?Q?rplD3NKK7ebkj9mNGRCF5haNck/B6WJR3v9HzlM/6gFHwEY6EHDvxUiLjY1w?= =?us-ascii?Q?9oYAgRp3qhjihtXrDCsIwC0ZprtB3QaVxpUDT6fIcf+Iy0s+HNvQxWC/vTFH?= =?us-ascii?Q?RStWpr53BVF+mmf7xhsenisAr2Sg3tSso7veMuDK63094vYmYBJgRKjoC6mX?= =?us-ascii?Q?Nmla+s7eRWCGTQb2LwjmLNrVrG8WF31+cVWgIy2yd50JzBJ/uK72nfTVi1XI?= =?us-ascii?Q?JEDUzWAdT2ufSfNsVA5udfEVBLbD+z89PZ3kchkKNcmhhObChbfY+r42jQgx?= =?us-ascii?Q?XLcsnqoer53Ha5YfTfG+eYOyGF6fjoTQbX5dYsU/eADznJW8jcVUPEF66JeY?= =?us-ascii?Q?WAi60wmz6r9Z+g9kXLRL/XKVmuWWCcBC0Hl+a3H6bZv3h42o21gy05/PLcHJ?= =?us-ascii?Q?Jut+9nif95SiBpZV/CO473c=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: sibvisions.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR1001MB1423.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: c3febf3e-8127-412c-e42f-08daf4778ae2 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2023 08:32:29.4444 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: beb1b6aa-9998-4674-9056-cbc4fe8c7cad X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: owRTx05uBkEGTcCHu7HzifMOWmIsKa99Qld8QoZxuOy0giqDEcVvSjYFiM5OS9o9GbB6zxI00fN1pOjw8ytdRr6abMUZ257iNSfCu2YRoBomgXIrKr+VSl7YHqEDzS+z X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5576 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Thanks a lot, I think, this will help a lot of (java) users, and makes the = usage of PostgreSQL DB a way better! I had yesterday an idea for a solution on java side. As we have already a p= reprocessing with a jdbc wrapper, for function and procedure calls (in/out = parameters are not working with postgres jdbc), I'll added preprocessing fo= r the parameters. I'll search the statement for all question marks (?) that are not inside a = comment (-- \n, /* */), not in quotes (" ") and not in strings (' '), check= the parameter, if it is null, and replace the ? by null, and reduce the pa= rameter list. I can link the code if you want, as it is Apache License 2.0.