Received: from maia.hub.org (maia-2.hub.org [200.46.204.251]) by mail.postgresql.org (Postfix) with ESMTP id 26BA4B5DBFF for ; Mon, 13 Jun 2011 12:01:50 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.251]) (amavisd-maia, port 10024) with ESMTP id 21018-01 for ; Mon, 13 Jun 2011 15:01:44 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-ew0-f46.google.com (mail-ew0-f46.google.com [209.85.215.46]) by mail.postgresql.org (Postfix) with ESMTP id AF897B5DBD6 for ; Mon, 13 Jun 2011 12:01:43 -0300 (ADT) Received: by ewy4 with SMTP id 4so1630153ewy.19 for ; Mon, 13 Jun 2011 08:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=xDOuG5hDXd8MwRgInpUlyS2f9TPd5hLiwJRRhbT6TPw=; b=CpQaPLnrpOO4RbY/LADIQnBg2KqNVi1AZy5q3hkRgmlpa/IBYUO2SmNQb/1n95WQrw wBtNS3STqhdg/18IiSpJy5Bo1/QUsfjDsVt9IQVYn+H5AFM/LivCc9kRD5f5aQT/XVxS MAwb9mbApIaQaJAFwU5xp0Vuz/dx3vobqJnJ0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=SukFfhqXeXdslTXbxx9u/Kz9FhKMsPWVI4YKSCiCSOtafYDgsghc6/nKOe4MnC8WWR amQnnkmGs6k3JoFcQsSnUXcik9cZNY244aX7aG6KXIpMaDQzBy6muFxDGV+Aj78nqLex +b+xessR3pqQLkdTACEKOOKOZvzrJMm1Ttlzw= MIME-Version: 1.0 Received: by 10.14.101.14 with SMTP id a14mr2350403eeg.55.1307977299538; Mon, 13 Jun 2011 08:01:39 -0700 (PDT) Received: by 10.14.96.4 with HTTP; Mon, 13 Jun 2011 08:01:39 -0700 (PDT) In-Reply-To: <4087.1304608809@sss.pgh.pa.us> References: <4087.1304608809@sss.pgh.pa.us> Date: Mon, 13 Jun 2011 11:01:39 -0400 Message-ID: Subject: Re: psql's ON_ERROR_STOP is misdocumented From: Robert Haas To: Tom Lane Cc: pgsql-docs@postgresql.org Content-Type: multipart/mixed; boundary=bcaec52be6d550341604a59932b2 X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.002 tagged_above=-5 required=5 tests=FREEMAIL_FROM=0.001, RFC_ABUSE_POST=0.001 X-Spam-Level: X-Archive-Number: 201106/34 X-Sequence-Number: 6808 --bcaec52be6d550341604a59932b2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Thu, May 5, 2011 at 11:20 AM, Tom Lane wrote: > The documentation for ON_ERROR_STOP states, or at least implies by > omission, that it only affects the behavior in non-interactive scripts: > > =A0 =A0 =A0 =A0By default, if non-interactive scripts encounter an error,= such > =A0 =A0 =A0 =A0as a malformed SQL command or internal meta-command, proce= ssing > =A0 =A0 =A0 =A0continues. This has been the traditional behavior of psql = but it > =A0 =A0 =A0 =A0is sometimes not desirable. If this variable is set, scrip= t > =A0 =A0 =A0 =A0processing will immediately terminate. If the script was c= alled > =A0 =A0 =A0 =A0from another script it will terminate in the same fashion.= If > =A0 =A0 =A0 =A0the outermost script was not called from an interactive ps= ql > =A0 =A0 =A0 =A0session but rather using the -f option, psql will return e= rror > =A0 =A0 =A0 =A0code 3, to distinguish this case from fatal error conditio= ns > =A0 =A0 =A0 =A0(error code 1). > > However, it is easily proven that it *does* affect interactive commands; > just try two commands on one line: > > regression=3D# select 1/0; select 2; > ERROR: =A0division by zero > =A0?column? > ---------- > =A0 =A0 =A0 =A02 > (1 row) > > regression=3D# \set ON_ERROR_STOP 1 > regression=3D# select 1/0; select 2; > ERROR: =A0division by zero > regression=3D# > > Can we get the docs changed to reflect reality? Here's an attempt at some suitable word-smithing. --=20 Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --bcaec52be6d550341604a59932b2 Content-Type: application/octet-stream; name="on-error-stop.patch" Content-Disposition: attachment; filename="on-error-stop.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_govjw3qk0 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCBlYWY5MDFkLi5kNzdhMWFhIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3Fs LXJlZi5zZ21sCkBAIC0yNzcwLDE4ICsyNzcwLDE2IEBAIGJhcgogICAgICAgICA8dGVybT48dmFy bmFtZT5PTl9FUlJPUl9TVE9QPC92YXJuYW1lPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgog ICAgICAgICA8cGFyYT4KLSAgICAgICAgQnkgZGVmYXVsdCwgaWYgbm9uLWludGVyYWN0aXZlIHNj cmlwdHMgZW5jb3VudGVyIGFuIGVycm9yLCBzdWNoCi0gICAgICAgIGFzIGEgbWFsZm9ybWVkIDxh Y3JvbnltPlNRTDwvYWNyb255bT4gY29tbWFuZCBvciBpbnRlcm5hbAotICAgICAgICBtZXRhLWNv bW1hbmQsIHByb2Nlc3NpbmcgY29udGludWVzLiBUaGlzIGhhcyBiZWVuIHRoZQotICAgICAgICB0 cmFkaXRpb25hbCBiZWhhdmlvciBvZiA8YXBwbGljYXRpb24+cHNxbDwvYXBwbGljYXRpb24+IGJ1 dCBpdAotICAgICAgICBpcyBzb21ldGltZXMgbm90IGRlc2lyYWJsZS4gSWYgdGhpcyB2YXJpYWJs ZSBpcyBzZXQsIHNjcmlwdAotICAgICAgICBwcm9jZXNzaW5nIHdpbGwgaW1tZWRpYXRlbHkgdGVy bWluYXRlLiBJZiB0aGUgc2NyaXB0IHdhcyBjYWxsZWQKLSAgICAgICAgZnJvbSBhbm90aGVyIHNj cmlwdCBpdCB3aWxsIHRlcm1pbmF0ZSBpbiB0aGUgc2FtZSBmYXNoaW9uLiBJZgotICAgICAgICB0 aGUgb3V0ZXJtb3N0IHNjcmlwdCB3YXMgbm90IGNhbGxlZCBmcm9tIGFuIGludGVyYWN0aXZlCi0g ICAgICAgIDxhcHBsaWNhdGlvbj5wc3FsPC9hcHBsaWNhdGlvbj4gc2Vzc2lvbiBidXQgcmF0aGVy IHVzaW5nIHRoZQotICAgICAgICA8b3B0aW9uPi1mPC9vcHRpb24+IG9wdGlvbiwgPGFwcGxpY2F0 aW9uPnBzcWw8L2FwcGxpY2F0aW9uPiB3aWxsCi0gICAgICAgIHJldHVybiBlcnJvciBjb2RlIDMs IHRvIGRpc3Rpbmd1aXNoIHRoaXMgY2FzZSBmcm9tIGZhdGFsIGVycm9yCi0gICAgICAgIGNvbmRp dGlvbnMgKGVycm9yIGNvZGUgMSkuCisgICAgICAgIEJ5IGRlZmF1bHQsIGNvbW1hbmQgcHJvY2Vz c2luZyBjb250aW51ZXMgYWZ0ZXIgYW4gZXJyb3IuICBXaGVuIHRoaXMKKyAgICAgICAgdmFyaWFs ZSBpcyBzZXQsIGl0IHdpbGwgaW5zdGVhZCBzdG9wIGltbWVkaWF0ZWx5LiAgSW4gaW50ZXJhY3Rp dmUgbW9kZSwKKyAgICAgICAgPGFwcGxpY2F0aW9uPnBzcWw8L2FwcGxpY2F0aW9uPiB3aWxsIHJl dHVybiB0byB0aGUgY29tbWFuZCBwcm9tcHQ7CisgICAgICAgIG90aGVyd2lzZSwgPGFwcGxpY2F0 aW9uPnBzcWw8L2FwcGxpY2F0aW9uPiB3aWxsIGV4aXQsIHJldHVybmluZworICAgICAgICBlcnJv ciBjb2RlIDMgdG8gZGlzdGluZ3Vpc2ggdGhpcyBjYXNlIGZyb20gZmF0YWwgZXJyb3IKKyAgICAg ICAgY29uZGl0aW9ucywgd2hpY2ggYXJlIHJlcG9ydGVkIHVzaW5nIGVycm9yIGNvZGUgMS4gIElu IGVpdGhlciBjYXNlLAorICAgICAgICBhbnkgY3VycmVudGx5IHJ1bm5pbmcgc2NyaXB0cyAodGhl IHRvcGxldmVsIHNjcmlwdCwgaWYgYW55LCBhbmQgYW55CisgICAgICAgIG90aGVyIHNjcmlwdHMg d2hpY2ggaXQgbWF5IGhhdmUgaW4gaW52b2tlZCkgd2lsbCBiZSB0ZXJtaW5hdGVkCisgICAgICAg IGltbWVkaWF0ZWx5LiAgSWYgdGhlIHRvcGxldmVsIGNvbW1hbmQgc3RyaW5nIGNvbnRhaW5lZCBt dWx0aXBsZSBTUUwKKyAgICAgICAgY29tbWFuZHMsIHByb2Nlc3Npbmcgd2lsbCBzdG9wIHdpdGgg dGhlIGN1cnJlbnQgY29tbWFuZC4KICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVt PgogICAgICAgPC92YXJsaXN0ZW50cnk+Cg== --bcaec52be6d550341604a59932b2--