On Mon, Mar 8, 2010 at 1:39 AM, David Christensen <david@endpoint.com> wrote:
>
> 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).
I have added to this to the next CommitFest.
...Robert