Re: Explicit psqlrc
David Christensen <david@endpoint.com>
From: David Christensen <david@endpoint.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Magnus Hagander <magnus@hagander.net>, Peter Eisentraut <peter_e@gmx.net>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-03-08T06:39:36Z
Lists: pgsql-hackers
Attachments
- psql_process_multiple_files.patch (application/octet-stream) patch
On Mar 7, 2010, at 9:22 AM, Tom Lane wrote: > Magnus Hagander <magnus@hagander.net> writes: >> 2010/3/6 Tom Lane <tgl@sss.pgh.pa.us>: >>> The analogy I was thinking about was psql -X, but I agree that it's >>> not obvious why this shouldn't be thought of as an additional -f >>> file. > >> Uh, I don't follow. When we use -f, we'll run the script and then >> exit. The whole point is to run it and *not* exit, since you are >> normally using it to set up the environment in psql. > > If we were going to support multiple -f options, it would be sensible > to interpret "-f -" as "read from stdin until EOF". Then you could > interleave prepared scripts and stdin, which could be pretty handy. > The default behavior would be equivalent to a single instance of "-f > -", > and what you are looking for would be "-X -f substitute-psqlrc -f -". Here's an initial stab at supporting multiple -f's (not counting the interpretation of "-f -" as STDIN). There are also a few pieces that are up for interpretation, such as the propagation of the return value of the MainLoop(). Also, while this patch supports the single- transaction mode, it does so in a way that will break if one of the scripts include explicit BEGIN/COMMIT statements (although it is no different than the existing code in this regard). Regards, David -- David Christensen End Point Corporation david@endpoint.com