Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cZoR1-0005Dd-Mn for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Feb 2017 00:42:35 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cZoR1-00057K-8H for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Feb 2017 00:42:35 +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_2) (envelope-from ) id 1cZoQz-00055s-DG; Sat, 04 Feb 2017 00:42:33 +0000 Received: from mail-sn1nam01on0077.outbound.protection.outlook.com ([104.47.32.77] helo=NAM01-SN1-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cZoQv-00080N-R3; Sat, 04 Feb 2017 00:42:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=BlueTreble.onmicrosoft.com; s=selector1-bluetreble-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=s6wYh2nj00ADxSf+L9C6Dit6eLo9rh8W/D0MDpKaM2Q=; b=SN1zJDzpOFTYRiJmKoijG+6RU+jul0Q4LmGqDoOOZSQr691uYJ18+d4+hKqrNRH2cmk3XEZvvfLePf39u9Psa21iVj6swUebiaZC3gdHd28yMTySerp/3oxo1oYQERyFM/mBNO8AinH4/NM+kE7toTSTmg0L7uYOhDHi5X1v9AA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jim.Nasby@bluetreble.com; Received: from decina.local (70.113.18.142) by DM5PR11MB1641.namprd11.prod.outlook.com (10.172.38.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Sat, 4 Feb 2017 00:42:27 +0000 Subject: Re: \if, \elseif, \else, \endif (was Re: PSQL commands: \quit_if, \quit_unless) To: Corey Huinker References: <1084.1485886511@sss.pgh.pa.us> CC: Fabien COELHO , Erik Rijkers , Tom Lane , Daniel Verite , PostgreSQL , From: Jim Nasby Message-ID: Date: Fri, 3 Feb 2017 18:42:18 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [70.113.18.142] X-ClientProxiedBy: DM5PR16CA0048.namprd16.prod.outlook.com (10.172.42.162) To DM5PR11MB1641.namprd11.prod.outlook.com (10.172.38.12) X-MS-Office365-Filtering-Correlation-Id: fbe0eb4e-5e4e-4890-e19a-08d44c96b1d2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR11MB1641; X-Microsoft-Exchange-Diagnostics: 1;DM5PR11MB1641;3:IUANhy4y0Bp1Jg0HvKvD0u2Y3Av764RqDsVCo383fEpnqQ1480eZjWlnGD91a4XvbZEzFRyxhjsSUqlmGse7s2t9W4JNKxoOCQh3hsLVFJR5Xs076MeqpKYWzCJ+WYxjCI3xZV99vtxHxeHvdns1re6+PhhbrfXrJUTfz25Nq7RJcTym4SumdWQbIk8i2jjWpC5BBTWTsmrgqb2PLBZ+ZybmbU8ptitatmjs8vK9G0ADlblcvow3Cis2bJbM12aDuGGNCfcBhP4Ub2ZQXvxahg==;25:LUEZYdmKNZ2Kj5m9iyaBxxXzhsTfp433OiVekqwhZqEe0OKhzmNHQVYcQy4yVdqjeVMDRA/J1mh1qOyeUQqZQWKnsqRQae/gAR08R0+NMtAEDM/xFTEr5Nb/AUK9dA/4YzeRHTTEkiloeyplnvytTUMaXtUS/dWIwf9T8I1bi553oBAYyEO3Do69+ZvMXqPZ2JYu1DqMa8fWKBzIit15xJmt8N5BVBXNaBvsP8T3eiZ8Fh0PJdGrsD6ermjKA7OlcWdvlRl+tM8D3oT2AO+NvkCodV7o58b+ghcGLSsQMMdqPGa+mOViMar3VTb2WjxFYu5sQintpEgujsj71sEMBXWRQBClVCmeFsLID/b6iyg4m5TmmYn5YVMepxOKCDBVvS6JxJ2/5tP/Eiy2uVm8SUQv7OOS8O8SEoVVABG1fWohetJsMi4fqU81FGyEXV9fT5fTrOQW3KS4OcUF7UpUnQ== X-Microsoft-Exchange-Diagnostics: 1;DM5PR11MB1641;31:nW849lAO7iL4dT2ABL+HTwY9YIXp0DHJsHqVuw2Rhr2oRuWRiZFaq41sa/OQZO8mmyGfuYPqrF7HIZlA8kdtVtX9ahOzcP39flSjXNqc9qWCbJmmx0n+m+p/evlMqw9yPuti4qOwcFd7V91gQkvSWwC5fgZS5QEJYyvHFXrRk/y2VtAeX3tUoFLSIvXkG9mcT2/KpDQkjdYNdtCVDgXiKI3BallK259PJ0fqOLP8VvomVxH4mjgE7IVS8RJeXqb6dvigpl3dDvdYlxDzqf45dJe4SsHaBQx9LymZ3De6LBI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(100405760836317); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123558025)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(2016111802025)(6072148)(6043046);SRVR:DM5PR11MB1641;BCL:0;PCL:0;RULEID:;SRVR:DM5PR11MB1641; X-Microsoft-Exchange-Diagnostics: 1;DM5PR11MB1641;4:/Hp+M/WmGDef1/icw5F8kzF98dwUv7s6jPky5FyYUruAQ9fybzPE/k6kgi+yTtIDr3JvqequIFajjmzEP4BRiqoIdXZ59PvlxBB3psiGp8pZtscbd8zqIUim0VYZAr4tYA8a/BYnvceIouXgolf8JgIwEzSFEqs/78rm93Xiqi6rUv9NWKndNM6TwZdP1RcWXrpDMz4oMQPwfTbcoqPPRp8Hs3molDK7tK299AUFESpjsH2LhBkseOlSbE2zkxAL68j/nyVuE2wPm4A2JgmUzVmaAfKia0nzOz2jMW4vyUtxpec8fLQrMs3vgYRRRa8m9SBhM7BNWoxbce0NsW0vbhsdhXxK7zTjw4SLNFS6os7aOD3Qw/5Kseve8GJBN7PQRm8EdZpfmfxktJV89WcbT6srZe0N7N5IAlVj2eR3jLkjvy68zk7vZlv5lrshPvx3RrB0tGWU6nLbtRxq3o5TmxltyUob6CkvZpCQ0e5ksgVyqQVP8N2t4/+hPKBYSkxjZaaYbESBxBYwdlGTAVd4DGd6OQiY5UR98XuZ6tfuK4cjOr19Jm22g/NnNA06gQjD0v98Ix3TMbbnHgSlJAyFhmz5A8z2pk0qZnTHN2sSaVrCefTknqK9zT31zxZBMvleIyXOiHKXRe4BrALECPzz98f57ceIu+SlLxZIczlzEBw2MHJOISNHHHJXRa3INcSB7ySE6abpiU3444Q+1k2l5w== X-Forefront-PRVS: 020877E0CB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39410400002)(39830400002)(39450400003)(24454002)(199003)(189002)(377454003)(5660300001)(93886004)(53546003)(7736002)(65806001)(42186005)(230700001)(6512007)(65826007)(31686004)(83506001)(64126003)(66066001)(65956001)(966004)(110136003)(2950100002)(6246003)(551934003)(68736007)(106356001)(47776003)(6916009)(105586002)(305945005)(23676002)(50466002)(189998001)(76176999)(3846002)(31696002)(36756003)(33646002)(2906002)(50986999)(54356999)(92566002)(86362001)(4001350100001)(25786008)(4326007)(53936002)(6666003)(16601075003)(97736004)(81156014)(81166006)(8676002)(6116002)(6486002)(229853002)(38730400001)(6506006)(54906002)(101416001)(6306002)(39060400001)(85282002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR11MB1641;H:decina.local;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: bluetreble.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjExTUIxNjQxOzIzOkRHSWROdXJEZjRCRGxURnpJZDVzb2s5d0tz?= =?utf-8?B?bVJjeSsrT1VINWhOQXlUanA2c1g2c1lIcWlKZ2RqbS9wYXFEUjErbi8vWEJk?= =?utf-8?B?QTRrbkVWYUdqMld0K0NsU0x6VDVGOEFCcnBWajlrSTlBZjNETEp5d0JLWG5v?= =?utf-8?B?azFvdUFPeWM1dHg1QmhhOUE3V0Mxc2VlazZNNE5zbDlnMmdlTnJRL3FxSWxY?= =?utf-8?B?eTVVVkp5cmZQellLSG5lMXdVbktMU254eDFTR1FnMnhrY295enVOSS9KLzVE?= =?utf-8?B?U3FTdjJVcGQ1ZTd1OEhTSGhOb3Uwdnl4YzEveXFsZmkrMi93RUlpSVFuQVU5?= =?utf-8?B?ZmhPc0lGTld1SXM5bUxQUVczQWV3TUxBa0NEVDJKYUFWcXZMOXNRNUl0NVc3?= =?utf-8?B?a0Noa0htbUt3K0VudkJkS09aYVd5bXFjbkxMdWhKTjhQUWpRSzhmYnFnb2xY?= =?utf-8?B?UUtKTTBIMFRhRmtTM05zL2V5MEtFYTdLWSthd2QvQmNvZnA4UWlhbkxZa0RB?= =?utf-8?B?Z0VqUkFFQWxPdERkdGZFVUJlcFJNNE1rUVdPZ0pQVU5uM0xTT2I3VkZmV2Rx?= =?utf-8?B?ZDljUmVjblJkSTF2TDBNMDNQc0pSZDBPZFdjbXdIYnlQU0F2MkduTmp1ZEdk?= =?utf-8?B?Wk82Z2Q5OHlzL3lXejgwMjBoK2wxNWFocWFqbU5ORmdpM0FXNlh4UkJhbVRo?= =?utf-8?B?SFgxZG4xZ1Y5R1lKV2hOMjVsZ2RnQVp0U3dvTkYwSEk4em12WHk2RmhHL015?= =?utf-8?B?RWxtQkk0Sm1ma0dkZG00T1V5YTdaRFBmcTd5ejdwblZsVU5ZcmUxTXpHVDhu?= =?utf-8?B?b1VmQWdJNkQ3UUZxRDNFL2ljSjl3QVVPN05lcktQOEJJM1VGSGszelEzNlNk?= =?utf-8?B?SERUNDdCQ0FMUDl4a2Y3NVorUEE4MFNSdEtwTWQ2TW4xemgwUzBOaU5SdHVG?= =?utf-8?B?ZVBha0lEYXdWbW16clExRmhyLzA5a1FOMTNzRXlYaGZwcHBjU0NSRzczblN2?= =?utf-8?B?RXk3bGk3VjkwZEhmeGdmUjNYVUw5UHhRdUNwbjlTR1R5NlNOQTc4YXBicEhZ?= =?utf-8?B?d0FuZDU0WjJ5NWNDK2U3eldnb21iaUxQSllFZ0hKWVBMZWtrYnRPSlFDZCsw?= =?utf-8?B?M25jN3Y2WFJWWGdSbHFaenQwV3VuaEcxSWJmemZiZ3V2RGRmU0k0WW9JZEJS?= =?utf-8?B?Wmp3Wk1sNFJjUDF1c3krdWRQamEzTVEvWlptVDZVcnNWaHZFN24vL2JkT2dx?= =?utf-8?B?UTdLcXV3NTBhcDR3UW1mS0J4cGNPSWhGREo4TTlDSnEwOEhKdERSbmVNR1hP?= =?utf-8?B?ZGE2bkxRQVZUaFBqRnJXdUpaSkZIeTA2bVNkTXNtNldHYmpmUGEzVmVLdGFE?= =?utf-8?B?N3VRRVM1dWFPUkVsTTl4alIzM2Y0Vkg3M2ROVEJnWVhURnQzVmtrTmN6aEg0?= =?utf-8?B?ZDE4NWVnTE9wMzZVaGh5eU5tajRRc0ozYUJaSmVCdDNDdkpjM2EwbEN6VE1S?= =?utf-8?B?ZTVualRHRGMvUThnQ3NqOHVqSU8vNVZDclNaMSttMjZXMGc4elR1UGRxQVVG?= =?utf-8?B?bkg2UzdYTDgyMG9UbllRdFpDeDZJRWo4WmVtc09RWDRGU2JiVG1jcWovTWR3?= =?utf-8?B?OVhWOXhJV2hncWhOQTl4aG9CWDNOdmdwSmtVVmdKdFRsbkhWTGNsMWs3enZ1?= =?utf-8?B?VzlVYnY2WHlGcldkeUxoV2preW5nWk9GKzd3dEZGMFNRZDV0dW9YWFNGRTBJ?= =?utf-8?B?clhUWlZ6ZWRpY0l3cE1WV2ZOV1U1NGZrYzdrK002WVZKaVZRclJKQjYxblBo?= =?utf-8?B?N2orUVBlTzhDMWU4K1AvQnhZMjRZVitMbWZ6dlFLVEVoYzdmKzBvaHoyaEdU?= =?utf-8?B?RTNNdU1pRnYza1c3N3Q2LzVUbUJMNDg5eStCK3FaTkROMFoxZjNObytscXEv?= =?utf-8?B?RmxJSWpaQkkrTXBGenNzRDVyU1Z4SjVzd3E2UVdidnBhd0dScUlkRUY0dEtv?= =?utf-8?B?SkJSYWJVQXVrUXp4U1NFWkFCbDJnRnArS3c2Q1pKTHJrNmFpSTNudVc0a2Fa?= =?utf-8?B?TEFnU0d1ckNha0RzZDR0SmIxVk9XcXJpQzVkOXExck5aaExnVUQyaVFheFEv?= =?utf-8?B?dnF0V2RYVlZ5MGZvRnorVTN5bjJRUnVtVkJPNnB6UGJTakpJWWZoWmpjTjI2?= =?utf-8?B?VWR3dUNhV3lKKzNiZmROZGpIQkFnPT0=?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR11MB1641;6:uH1ESRIIFtKy6GX4RvWwkSFtzOrTKSzG4LV248CHBX6/lNP8ypgSXc6T32nFHCay6jayl2oGo08zQ+8MG7i0KyPvxCBhDzfdnhZ7iMbaV/pA7Rik/X76zcG1ka9yksVWvdvQHZUd+dqDn6xXQwNeqs5C67y7VRIKE3LFGPWjVcDZ+ii8hLbUcUxUefqNS8oonbRSZS8v4iRLWbtZWDCXYhGnWrkO6QSYqxgVoaxOKO/66z51uA3MPsUEGfhdV9+KITfcA+eVVlVtpy0pBcRYX/EkVi6FOqY9UDxsXpKHhtbs4W09iXYDI+vyPpYndgNEEST2cEpmEUcbEFEje6j/iIc2uZsjnVFkmB071LQ5CXVxuhcdotnJTns5C/1w55ADlfFKY1kcgwI9P6wjBorK5A==;5:lFbsBf0wbRgt3RovjAaaINJIKmmoUR8TQdO7laTOm3f1nSp09Eten74IHCHHhzU0ebHkGkeK1YpzoTG4MvRjGts0aBa/XPcdSLsPsJY3PHPwXZCK7A1eOaBBHVj5SLJL3YmBDScjIi1GTKFe/VVdgg==;24:bqWmrlLBxTyfDnr0c66u82Ya4HNZs7IYp/lQ5kpVCSouSnsyjECwKjbENFxQgy0vu4s2vy2zdCsjesW7EisZWptI7ZNB5n7a+bIrtN/CRks= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR11MB1641;7:/gafnTgFTuomdrMaEbEb+rvS0d2K00bNYs6ppfOKCA8PfNaPX/Bc+6cnSlB7hhLytpQEUHR9MS2wIJEpkhYzlA8AIf/5UpNu0pqbNpMYWkbwHZcrl6S6S/Om85wc4axz1ntQYZSiCxVRYAtKDFlwCthKqBcCsjPlXXZ5vRsLCzJ4V2R7mo3ZU5wT60+03ixvaCZoSmt7ectzQvQjvXkREKjFj2hK3aOG8z3iCI3DWlfIT6sjV4gQHdjbKDFCQeyHnHYDsdZ0d4sNB+FPeQiZkW3xgJ3yEkRFiHZOTC7bQQEesXIscm3u00OksS4JTjPQ1SGopaZ3hbcVjW4BWvvobbwc3N02RyPlwlJEP/taLsL2D0Y80hc2iPQB9gOeV+wwdXnG2tWlyClRZ4es4sM4b1PWPWyX4u7IDqmQa2RizHfmxi0nQ28iXaiYq1Xl10hpRKGlqMziS4KdE374izft0omRwL5HjNqabJqGQeIgpQNzjBDNyWYmnfh4FMV3Pdk0F7kVrqNT/1WTKQNbGflKmw== X-OriginatorOrg: bluetreble.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2017 00:42:27.4822 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1641 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 On 2/2/17 4:39 PM, Corey Huinker wrote: > > On Wed, Feb 1, 2017 at 4:58 PM, Jim Nasby > wrote: > > I think the issue here is that the original case for this is a user > accidentally getting into an \if and then having no clue what's > going on. That's similar to what happens when you miss a quote or a > semicolon. We handle those cases with %R, and I think %R needs to > support if as well. > > Perhaps there's value to providing more info (active branch, etc), > but ISTM trying to do that will just confuse the original (%R) case. > > > Jim, > > After spending a few minutes to familiarize myself with %R, I'm in > agreement with your second statement (adding if-else to %R will just > confuse %R). However, your first statement seems to indicate the > opposite. Can you elaborate? My point was that we need a way for users to know if they're stuck in an \if block, and right now that's handled with %R (inside transaction, parens, etc). My other point is that adding all the extra info to %R would be folly. Since the current consensus is to be very verbose about \if, this is obviously a non-issue. Maybe worth adding a 'I' case to %R, but no big deal if that doesn't happen. -- 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 855-TREBLE2 (855-873-2532) -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers