My coworker Dan suggested that some people copy and paste scripts. However I feel that that is an orthogonal problem and if there is a very high rate of input psql should detect that and turn interactive off. And I still strongly feel that on_error_rollback=interactive should be the default.
Until then, I've included this as a PSA at the start of any postgres talks I've given, because it's simply not widely known. On Mon, Nov 14, 2011 at 2:19 PM, Ross Reedstrom <reeds...@rice.edu> wrote: > On Wed, Sep 28, 2011 at 11:47:51AM -0700, David Fetter wrote: > > On Wed, Sep 28, 2011 at 02:25:44PM -0400, Gurjeet Singh wrote: > > > On Wed, Sep 28, 2011 at 1:51 PM, Kevin Grittner < > kevin.gritt...@wicourts.gov > > > > wrote: > > > > > > > Alvaro Herrera <alvhe...@commandprompt.com> wrote: > > > > > > > > > See ON_ERROR_ROLLBACK > > > > > http://www.postgresql.org/docs/9.0/static/app-psql.html > > > > > > > > I had missed that. Dang, this database product is rich with nice > > > > features! :-) > > > > > > > > > > +1 > > > > > > I would like it to be on/interactive by default, though. > > > > You can have it by putting it in your .psqlrc. > > > > If we were just starting out, I'd be all for changing the defaults, > > but we're not. We'd break things unnecessarily if we changed this > > default. > > > > This discussion died out with a plea for better documentation, and perhaps > some > form of discoverability. I've scanned ahead and see no further discussion. > However, I'm wondering, what use-cases would be broken by setting the > default > to 'interactive'? Running a non-interactive script by piping it to psql? > Reading the code, I see that case is covered: the definition of > 'interactive' > includes both stdin and stdout are a tty, and the source of commands is > stdin. > Seems this functionality appeared in version 8.1. Was there discussion re: > making it the default at that time? I'm all for backward compatibility, > but I'm > having trouble seeing what would break. > > I see that Peter blogged about this from a different angle over a year ago > ( > http://petereisentraut.blogspot.com/2010/03/running-sql-scripts-with-psql.html > ) > which drew a comment from Tom Lane that perhaps we need a better/different > tool > for running scripts. That would argue the defaults for psql proper should > favor > safe interactive use (autocommit off, anyone?) Peter mentioned the > traditional > method unix shells use to handle this: different config files are read for > interactive vs. non-interactive startup. Seems we have that, just for the > one > setting ON_ERROR_ROLLBACK. > > Ross > -- > Ross Reedstrom, Ph.D. reeds...@rice.edu > Systems Engineer & Admin, Research Scientist phone: 713-348-6166 > Connexions http://cnx.org fax: 713-348-3665 > Rice University MS-375, Houston, TX 77005 > GPG Key fingerprint = F023 82C8 9B0E 2CC6 0D8E F888 D3AE 810E 88F0 BEDE >