Skip site navigation (1) Skip section navigation (2)

Re: BUG #2459: psql 8.1.4 vs 8.0.x behaves differently with

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Silvio Macedo <smacedo(at)calmetric(dot)pt>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #2459: psql 8.1.4 vs 8.0.x behaves differently with
Date: 2006-05-29 17:20:14
Message-ID: 200605291720.k4THKEF28096@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-bugs
Unix always prompted from /dev/tty, but on Win32 we didn't have that
working until 8.1.4.  It should be that way.

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

Silvio Macedo wrote:
> 
> The following bug has been logged online:
> 
> Bug reference:      2459
> Logged by:          Silvio Macedo
> Email address:      smacedo(at)calmetric(dot)pt
> PostgreSQL version: 8.1.4
> Operating system:   Windows XP SP2
> Description:        psql 8.1.4 vs 8.0.x behaves differently with  tty / con
> / stdin recent fixes
> Details: 
> 
> Hi,
> 
> I've been using stdin/stdout of psql on Windows to run a script, without
> messing with "expect".
> 
> Before v8.1.4, one could include the password in the string fed to psql via
> stdin to authenticate the connection.
> 
> With 8.1.4, it doesn't work.
> 
> All of this *seems* to be related to patch introduced by Bruce:
> http://archives.postgresql.org/pgsql-patches/2006-03/msg00051.php
> to avoid relying  on /dev/con on Msys.
> 
> Is this a BUG or a design decision? If it's by design, people should be
> warned about this different behaviour (getting a password on the stdin
> doesn't work in 8.1.4)
> If it's a bug, correction should be on file
> \src\port\sprompt.c:69
> This, together with what is in file port.h, seems to be wrong :
> #ifdef WIN32
> 		/* See DEVTTY comment for msys */
> 		|| (getenv("OSTYPE") && strcmp(getenv("OSTYPE"), "msys") == 0)
> #endif
> 
> 
> Below, reference material with relevant excerpts of different versions of
> \src\include\port.h and \src\port\sprompt.c
> 
> Thanks for any tip or feedback!
> Silvio
> calmetric.pt
> 
> \postgresql-8.0.7\src\include\port.h:81 to 85
> 
> #if defined(WIN32) && !defined(__CYGWIN__)
> #define DEVNULL "nul"
> 
> 
> #else
> #define DEVNULL "/dev/null"
> 
> #endif
> 
> 
> 
> \postgresql-8.1.4\src\include\port.h:85 to 92
> 
> #if defined(WIN32) && !defined(__CYGWIN__)
> #define DEVNULL "nul"
> /* "con" does not work from the Msys 1.0.10 console (part of MinGW). */
> #define DEVTTY	"con"
> #else
> #define DEVNULL "/dev/null"
> #define DEVTTY "/dev/tty"
> #endif
> 
> 
> 
> 
> 
> 
> \postgresql-8.0.7\src\port\sprompt.c:64 to 78
> 
> 	 * Do not try to collapse these into one "w+" mode file. Doesn't work
> 	 * on some platforms (eg, HPUX 10.20).
> 	 */
> 	termin = fopen("/dev/tty", "r");
> 	termout = fopen("/dev/tty", "w");
> 	if (!termin || !termout)
> 
> 
> 
> 
> 
> 	{
> 		if (termin)
> 			fclose(termin);
> 		if (termout)
> 			fclose(termout);
> 		termin = stdin;
> 		termout = stderr;
> 	}
> 
> 
> 
> 
> \postgresql-8.1.4\src\port\sprompt.c:63 to 82
> 	 * Do not try to collapse these into one "w+" mode file. Doesn't work on
> 	 * some platforms (eg, HPUX 10.20).
> 	 */
> 	termin = fopen(DEVTTY, "r");
> 	termout = fopen(DEVTTY, "w");
> 	if (!termin || !termout
> #ifdef WIN32
> 		/* See DEVTTY comment for msys */
> 		|| (getenv("OSTYPE") && strcmp(getenv("OSTYPE"), "msys") == 0)
> #endif
> 		)
> 	{
> 		if (termin)
> 			fclose(termin);
> 		if (termout)
> 			fclose(termout);
> 		termin = stdin;
> 		termout = stderr;
> 	}
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
> 

-- 
  Bruce Momjian   http://candle.pha.pa.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

In response to

pgsql-bugs by date

Next:From: Silvio MacedoDate: 2006-05-29 18:21:50
Subject: Re: BUG #2459: psql 8.1.4 vs 8.0.x behaves differently with tty / con / stdin recent fixes
Previous:From: Tom LaneDate: 2006-05-29 17:15:59
Subject: Re: BUG #2459: psql 8.1.4 vs 8.0.x behaves differently with tty / con / stdin recent fixes

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group