Solaris - psql returns 0 instead of 1 for file not found.

Lists: pgsql-bugspgsql-patchespgsql-ports
From: "Clark, Andrew" <Andrew(dot)Clark(at)fnf(dot)com>
To: <pgsql-ports(at)postgresql(dot)org>
Subject: Solaris - psql returns 0 instead of 1 for file not found.
Date: 2005-09-19 18:01:03
Message-ID: 74825F195D477C4995425A1313D646B114A923@smbfisyyz01.FNFIS.COM
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs pgsql-patches pgsql-ports

Hi all,

I've found the when psql is used with the -f flag and the specified file
doesn't exist the rc value is 0.

$ uname -a
SunOS bld 5.8 Generic_108528-29 sun4u sparc SUNW,Sun-Fire-V440

$ psql -V
psql (PostgreSQL) 8.0.2

$ ls foo
foo: No such file or directory

$ psql -f foo
foo: No such file or directory

$ echo $?
0

However, in the man page for psql it says:

EXIT STATUS
psql returns 0 to the shell if it finished normally, 1 if a
fatal error of its own (out of memory, file not found)
occurs, ...

I'm assuming this is the same with other platforms, but I only use
PostgreSQL on Solaris.

Has this been fix in 8.0.3?

Cheers,
Andrew


From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: "Clark, Andrew" <Andrew(dot)Clark(at)fnf(dot)com>
Cc: pgsql-ports(at)postgresql(dot)org, PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: [PORTS] Solaris - psql returns 0 instead of 1 for file not found.
Date: 2005-09-20 19:00:56
Message-ID: 200509201900.j8KJ0uh11335@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs pgsql-patches pgsql-ports


I have applied the following patch to 8.1beta and 8.0.X to return the
proper failure value for a psql -f filename open failure.

The bug was that process_file() was returning false for failure, while
the call site expected MainLoop() return values, meaning false/0 was
success.

---------------------------------------------------------------------------

Clark, Andrew wrote:
> Hi all,
>
> I've found the when psql is used with the -f flag and the specified file
> doesn't exist the rc value is 0.
>
> $ uname -a
> SunOS bld 5.8 Generic_108528-29 sun4u sparc SUNW,Sun-Fire-V440
>
> $ psql -V
> psql (PostgreSQL) 8.0.2
>
> $ ls foo
> foo: No such file or directory
>
> $ psql -f foo
> foo: No such file or directory
>
> $ echo $?
> 0
>
> However, in the man page for psql it says:
>
> EXIT STATUS
> psql returns 0 to the shell if it finished normally, 1 if a
> fatal error of its own (out of memory, file not found)
> occurs, ...
>
> I'm assuming this is the same with other platforms, but I only use
> PostgreSQL on Solaris.
>
> Has this been fix in 8.0.3?
>
> Cheers,
> Andrew

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

Attachment Content-Type Size
unknown_filename text/plain 2.2 KB

From: Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>
To: pgsql-ports(at)postgresql(dot)org, pgsql-bugs(at)postgresql(dot)org
Cc: "Clark, Andrew" <Andrew(dot)Clark(at)fnf(dot)com>
Subject: Re: [PORTS] Solaris - psql returns 0 instead of 1 for file not found.
Date: 2005-09-22 16:00:08
Message-ID: 200509221200.08227.xzilla@users.sourceforge.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs pgsql-patches pgsql-ports

On Monday 19 September 2005 14:01, Clark, Andrew wrote:
> Hi all,
>
> I've found the when psql is used with the -f flag and the specified file
> doesn't exist the rc value is 0.
>
> $ uname -a
> SunOS bld 5.8 Generic_108528-29 sun4u sparc SUNW,Sun-Fire-V440
>
> $ psql -V
> psql (PostgreSQL) 8.0.2
>
> $ ls foo
> foo: No such file or directory
>
> $ psql -f foo
> foo: No such file or directory
>
> $ echo $?
> 0
>
> However, in the man page for psql it says:
>
> EXIT STATUS
> psql returns 0 to the shell if it finished normally, 1 if a
> fatal error of its own (out of memory, file not found)
> occurs, ...
>
> I'm assuming this is the same with other platforms, but I only use
> PostgreSQL on Solaris.
>
> Has this been fix in 8.0.3?
>

Redirecting to -bugs since I've confirmed this behavior on Slackware Linux 10
with psql version 8.1beta1 and there does seem to be something wrong with the
above situation (perhaps the man page needs to be reworded?)

--
Robert Treat
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL


From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: pgsql-bugs(at)postgresql(dot)org
Cc: pgsql-ports(at)postgresql(dot)org, "Clark, Andrew" <Andrew(dot)Clark(at)fnf(dot)com>
Subject: Re: [PORTS] Solaris - psql returns 0 instead of 1 for file not found.
Date: 2005-09-22 16:03:51
Message-ID: 200509221603.j8MG3pr22924@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs pgsql-patches pgsql-ports


A patch has been applied and this will be fixed in 8.0.4 and 8.1beta3.

---------------------------------------------------------------------------

Robert Treat wrote:
> On Monday 19 September 2005 14:01, Clark, Andrew wrote:
> > Hi all,
> >
> > I've found the when psql is used with the -f flag and the specified file
> > doesn't exist the rc value is 0.
> >
> > $ uname -a
> > SunOS bld 5.8 Generic_108528-29 sun4u sparc SUNW,Sun-Fire-V440
> >
> > $ psql -V
> > psql (PostgreSQL) 8.0.2
> >
> > $ ls foo
> > foo: No such file or directory
> >
> > $ psql -f foo
> > foo: No such file or directory
> >
> > $ echo $?
> > 0
> >
> > However, in the man page for psql it says:
> >
> > EXIT STATUS
> > psql returns 0 to the shell if it finished normally, 1 if a
> > fatal error of its own (out of memory, file not found)
> > occurs, ...
> >
> > I'm assuming this is the same with other platforms, but I only use
> > PostgreSQL on Solaris.
> >
> > Has this been fix in 8.0.3?
> >
>
> Redirecting to -bugs since I've confirmed this behavior on Slackware Linux 10
> with psql version 8.1beta1 and there does seem to be something wrong with the
> above situation (perhaps the man page needs to be reworded?)
>
> --
> Robert Treat
> Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073