Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aFW45-0007bg-Re for pgsql-hackers@arkaria.postgresql.org; Sat, 02 Jan 2016 23:58:30 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aFW44-0003Ee-Bg for pgsql-hackers@arkaria.postgresql.org; Sat, 02 Jan 2016 23:58:28 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aFW42-0003EL-4S for pgsql-hackers@postgresql.org; Sat, 02 Jan 2016 23:58:26 +0000 Received: from mail-by2on0085.outbound.protection.outlook.com ([207.46.100.85] helo=na01-by2-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aFW3t-000861-Cn for pgsql-hackers@postgresql.org; Sat, 02 Jan 2016 23:58:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=BlueTreble.onmicrosoft.com; s=selector1-bluetreble-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8/6GdTf1UlZS2e+QKXFBn3ZwyD4Ek89vBE4VWgErVk4=; b=HzJy30fOc41+0VheUxvSZPOm3HpC9YKm3VbK4bXURwNlHT0h5GNDERktTn5gTyLFjRFs1Ta6sbIka5OrBrrQldoLajiGn9fucYDA2wdOpKH+R2n99qnOuiISf1s0HKMAJ0RdQEi3LFRqC7asXFcDADfTfnRh81+nT3bvbOHyuow= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jim.Nasby@bluetreble.com; Received: from decina.att.net (108.74.146.176) by CY1PR11MB0684.namprd11.prod.outlook.com (10.163.236.22) with Microsoft SMTP Server (TLS) id 15.1.361.13; Sat, 2 Jan 2016 23:58:10 +0000 To: Pg Hackers From: Jim Nasby Subject: Improved error reporting in format() Message-ID: <568863FC.9030209@BlueTreble.com> Date: Sat, 2 Jan 2016 17:57:48 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080206000409070000020809" X-Originating-IP: [108.74.146.176] X-ClientProxiedBy: BY1PR0501CA0014.namprd05.prod.outlook.com (25.162.139.24) To CY1PR11MB0684.namprd11.prod.outlook.com (25.163.236.22) X-Microsoft-Exchange-Diagnostics: 1; CY1PR11MB0684; 2:TvmoVrzU6vLhBt04jcMxnJCzcvM7T/8NHeCkxj6YBFN6ZG/u5Q1SdFWIYgElk9j2VyuGZdDZFfCY242MEnnWRR2hfp9hyIXFID+3rKraM8wNNBLJdMmE4+sKFhWJlE8gzDkq778nJBqxQXOEAUiv2g==; 3:Biq21UTyvBGqtr4hfO+a8i2KMPriXtexYyguDQfQnnmeW6QZ3kkCHFJii6JTTuIrIvm8Xnao3L47vwDQLWPxCYkQhYcQRhFwcV7XnZR5cAKYbcw9fAKvnMkApnHBmCF+; 25:hmKQfvrcSgS9ou+e2luHgEbdnreAryVjGDmViWyJWvjKQUFje/x07Q0YDm8WuAiUziWplJfN7mUDftWRa4IOHzmuIOIxEOorXGizNhd9nF/LJBm0OBNG1iTAidIpOgDA/KEFW+Yy42y5mjQwodvcVmj1Hwt424Wj1Dcewuk65Nop8oU3cZB/3rDVyfsR2w5I84mMDCqFud832Nfz6RjFNwlA7gbjRUfIQsd8kGiIEd83TAW2kirhDA11mAM2f2fTXEIshTY5vlDlTXmMnuTzwg==; 20:qAdoiudh1Pimzq9ERzm+WpQ89SgYSr0o1GRDSUElFzF8a4uK3xTdknxkN5qL6V963q4katJWS1MG8BZBc1E+J9ym0T21DgjyXOHHlnNa37afC/MTXBJ90xC+R9M/5LaqJjK+1jrTosuwNURAmx4zA4yswPLwZ6VvWvd71pCxrik= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR11MB0684; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(10201501046)(3002001); SRVR:CY1PR11MB0684; BCL:0; PCL:0; RULEID:; SRVR:CY1PR11MB0684; X-Microsoft-Exchange-Diagnostics: 1; CY1PR11MB0684; 4:PuZJfnxWYedDmjJ/0tG7AlQJbUTPVCITm6E/GaHHfULeyMlmVBPXXw8ziyqDkwsTxSenjGRdxuZztactwgsgDQY+8n5c2vUHh9m5wGHDGm8ptaVoN+nYLFr27Hym3NyGEhu0bqWkN8GNsdMCayc0jA21h+rfrl+Vk/NjzlteIej2pH/GLQtqHNG2XglIxnZR325gBGmyehJJkTfWHGAQjCMF80vXlL/lhTHXe+OrQ9Y0KaIAtybkckqDKaurLfn/RarVxZgB1ur+y/Spuj0TJ4xelNS0C31BXvPpD/OHdgeYtm1bX6wHw9HNmWdiemBOJh/4utqkFIpv2uTRr4OMQX3QRtN/DXD5Kcj6RA055DFJWgcl+E1ht8h+6nmcf4rK X-Forefront-PRVS: 0809C12563 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(189002)(199003)(21490400002)(59896002)(5004730100002)(87976001)(50986999)(5890100001)(36756003)(92566002)(101416001)(110136002)(3846002)(99136001)(54356999)(19580395003)(65806001)(65956001)(270700001)(512874002)(33656002)(66066001)(84326002)(2476003)(5000100001)(87266999)(229853001)(4610100001)(122386002)(5008740100001)(6116002)(16601075003)(450100001)(1096002)(106356001)(64126003)(53416004)(107886002)(77096005)(586003)(97736004)(80316001)(83506001)(189998001)(42186005)(86362001)(15975445007)(65816999)(105586002)(40100003)(568964002)(4001350100001)(85282002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR11MB0684; H:decina.att.net; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: bluetreble.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR11MB0684; 23:t39dpdlGlaweAzYPGNydan8gS0aw0DQr0ezDD6aSh?= =?us-ascii?Q?aLegKz1t8NhseUlQQ4zDf8+tgFHKWO+BtDDQA0WjHc/Xqb7uxmVLWjP7aV5c?= =?us-ascii?Q?1i/3Cfgwbnr+UWXRUJyMK3DXQiG8Y65IvmL/JZhg5PG8KwhDwJVbbgkLmBa3?= =?us-ascii?Q?Cobj5iZxqaBrAwQaBD42Tq8dCBkNGEQ7s5aR649bCyH8rSByZ3vtzHOmDjLm?= =?us-ascii?Q?P2SUKcrebZc0P5maYXVYTTShxnGQRcFka8xcMYEPoPY/vYu+uX2COKk1ulh0?= =?us-ascii?Q?Okyds5j7u178ArXLzbhWVIZig9FPwkuTMUvR7I53rLf1sxDaV0QinnyKcMgQ?= =?us-ascii?Q?K70Sm+rR4JXynGWB9jWGB79aZ0VpK/nRmlxwHHbPgB4m8B4DIbi4KvuEYUsb?= =?us-ascii?Q?6CjRnVmesN5nwZaQcEFUKqaWwtGDuZp7jlzO1NJsYSyUCQAW7lpAZoP5g0gi?= =?us-ascii?Q?LAg5txVLSrtwEtWQSTjAUnrrAk+D6px48vK9j8KdMUyDVm4i/+iqo+ms0p9I?= =?us-ascii?Q?ayjaydV/TErYiMEdBTIwKT2cwhutUGa/SvHMw9FEo1qGQdTD6VhF3e2LhtKd?= =?us-ascii?Q?ENwOO0tH0wzmMUKdi4vCyQ3cpuOF/dUb9m8eApg/nok+rAt6W7Rbq2fSQVap?= =?us-ascii?Q?oNlPf5Z+TWN9+F9R3GPNacdbM8sTRDWU4yjzhe0zvp0IAcQiCRL0ck00+zTA?= =?us-ascii?Q?x7QTV1wOn8N61p8MM5SKDai5vcqeqcApvh8L88iO5IFWVX/Xhw6XFQL/B4yE?= =?us-ascii?Q?pILX4biGanleh0B2DCi6//PHeRpYEc/qJfu9Y7PENAla342qOfaZ3WQRozfJ?= =?us-ascii?Q?L8cDAEzD1E0BKEKAL/7QCseLO5aUoN0bFYUcyV1un7FoJsolSMN2yda6kZaM?= =?us-ascii?Q?vfVGmVxtTlSWxXTdVf/m9AaVeRiYKRJzFcONJb/XPw6d6s93fDz2KD5bAg22?= =?us-ascii?Q?zXrg7POzji/vzspE7eSGUM2jOVOaB4Rz157H3tHi/NP1PJEfnRNwMxIR+Ck/?= =?us-ascii?Q?1DDZv+v0Y1byNRTLTGJ0FQSTXV0bMmJSZtbZHdZsE0caYRleKKigJ+4izMFt?= =?us-ascii?Q?04gTRBEhkNIbL4ON2kb1fT4wPdl8FrtQOow14Q/GTvkPKoABMqH9wJDin1CT?= =?us-ascii?Q?cFx/g4VUpoQ/pd0KaE0yy0eweF1i3LHQqBas3rW91d+eSUFJe3akVs/H3+gi?= =?us-ascii?Q?RrdCU1VZ8IN6S6qyY+L5+3c3fbJvMSL0iUV1S4KkfTZMOSE9FEnrWTXzoEgo?= =?us-ascii?Q?4UHxlunkrfzY2bPwvR488LRRQpn2hkQFebfQakj1w8n0h10jMk9OHmmKueG3?= =?us-ascii?Q?/vN8LJXrz1FWPTgHUwgB/D680IMwlZUPtnu54GxrOUzAoIpxu+u0V1ERYo61?= =?us-ascii?Q?60f8pbbL82LReMFqIbWvB8Xc2U=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR11MB0684; 5:hOADr+9iELgjjbDO5f1GIHMNo5dWqY2CL+qRXkeI01LjdGHBNlKMutTj92OL/UGgRffLbiHH/3LVNiOyAycqGP3thXjW1z4fzuU4xrZVt+V9QCUlLAhmQtw+81asnzwWhHZNnjMX7GQuy89r59Vg0A==; 24:oMYRrBc7tAsPHOF21X3tcfdOLXr4bP8q6q4q7LkIXtFu4/M3Ji54S/3feJNmssctqJArXOiVCSGIYZ2O8Eo/nl7s1yWzV/VPozatj/DMncI= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bluetreble.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jan 2016 23:58:10.9317 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR11MB0684 X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org --------------080206000409070000020809 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit The current error message for an invalid format conversion type is extremely confusing except in the simplest of uses: select format( '% moo'); ERROR: unrecognized conversion type specifier " " Obviously in that example you can figure out what's going on, but frequently format() is used in a complex context where it's not at all obvious that format is the problem. Even worse, "conversion" makes it sound like a localization issue. Attached patch clarifies that %-related error messages with hints as well as (IMHO) improving the clarity of the message: select format( '% moo'); ERROR: unrecognized format() type specifier " " HINT: For a single "%" use "%%" I also made the use of "format()" consistent in all the other error messages. -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com --------------080206000409070000020809 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="patch.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch.diff" ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IGE4OWY1 ODYuLmE0NTUyYWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zhcmxl bmEuYwpAQCAtNDY0Nyw3ICs0NjQ3LDggQEAgdGV4dF9yZXZlcnNlKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCWlmICgrKyhwdHIpID49IChlbmRfcHRyKSkgXAog CQkJZXJlcG9ydChFUlJPUiwgXAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwgXAotCQkJCQkgZXJybXNnKCJ1bnRl cm1pbmF0ZWQgZm9ybWF0IHNwZWNpZmllciIpKSk7IFwKKwkJCQkJIGVycm1z ZygidW50ZXJtaW5hdGVkIGZvcm1hdCgpIHR5cGUgc3BlY2lmaWVyIiksIFwK KwkJCQkJIGVycmhpbnQoIkZvciBhIHNpbmdsZSBcIiUlXCIgdXNlIFwiJSUl JVwiLiIpKSk7IFwKIAl9IHdoaWxlICgwKQogCiAvKgpAQCAtNDc3OSw4ICs0 NzgwLDkgQEAgdGV4dF9mb3JtYXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYg KHN0cmNocigic0lMIiwgKmNwKSA9PSBOVUxMKQogCQkJZXJlcG9ydChFUlJP UiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9W QUxVRSksCi0JCQkJCSBlcnJtc2coInVucmVjb2duaXplZCBjb252ZXJzaW9u IHR5cGUgc3BlY2lmaWVyIFwiJWNcIiIsCi0JCQkJCQkJKmNwKSkpOworCQkJ CQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgZm9ybWF0KCkgdHlwZSBzcGVjaWZp ZXIgXCIlY1wiIiwKKwkJCQkJCQkqY3ApLAorCQkJCQkgZXJyaGludCgiRm9y IGEgc2luZ2xlIFwiJSVcIiB1c2UgXCIlJSUlXCIuIikpKTsKIAogCQkvKiBJ ZiBpbmRpcmVjdCB3aWR0aCB3YXMgc3BlY2lmaWVkLCBnZXQgaXRzIHZhbHVl ICovCiAJCWlmICh3aWR0aHBvcyA+PSAwKQpAQCAtNDc5MSw3ICs0NzkzLDcg QEAgdGV4dF9mb3JtYXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWlmIChhcmcg Pj0gbmFyZ3MpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkJIGVy cm1zZygidG9vIGZldyBhcmd1bWVudHMgZm9yIGZvcm1hdCIpKSk7CisJCQkJ CQkgZXJybXNnKCJ0b28gZmV3IGFyZ3VtZW50cyBmb3IgZm9ybWF0KCkiKSkp OwogCiAJCQkvKiBHZXQgdGhlIHZhbHVlIGFuZCB0eXBlIG9mIHRoZSBzZWxl Y3RlZCBhcmd1bWVudCAqLwogCQkJaWYgKCFmdW5jdmFyaWFkaWMpCkBAIC00 ODk5LDggKzQ5MDEsOSBAQCB0ZXh0X2Zvcm1hdChQR19GVU5DVElPTl9BUkdT KQogCQkJCS8qIHNob3VsZCBub3QgZ2V0IGhlcmUsIGJlY2F1c2Ugb2YgcHJl dmlvdXMgY2hlY2sgKi8KIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJ CSAgZXJybXNnKCJ1bnJlY29nbml6ZWQgY29udmVyc2lvbiB0eXBlIHNwZWNp ZmllciBcIiVjXCIiLAotCQkJCQkJCSAqY3ApKSk7CisJCQkJCSAgZXJybXNn KCJ1bnJlY29nbml6ZWQgZm9ybWF0KCkgdHlwZSBzcGVjaWZpZXIgXCIlY1wi IiwKKwkJCQkJCQkgKmNwKSwKKwkJCQkJICBlcnJoaW50KCJGb3IgYSBzaW5n bGUgXCIlJVwiIHVzZSBcIiUlJSVcIi4iKSkpOwogCQkJCWJyZWFrOwogCQl9 CiAJfQo= --------------080206000409070000020809 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------080206000409070000020809--