Re: [PATCHES] [psql] Setting the PROMPT on command line

2004-10-08 Thread Neil Conway
On Thu, 2004-10-07 at 15:15, Neil Conway wrote:
 Indeed, that is true -- that's the better fix IMHO. Barring any
 objections I'll commit this fix before end-of-day today.

Patch applied -- apologies for the delay.

-Neil



---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] [psql] Setting the PROMPT on command line

2004-10-07 Thread Neil Conway
On Thu, 2004-10-07 at 13:46, Tom Lane wrote:
 [ eyeballs that... ]  So a much simpler fix for Ingo's complaint would
 be to move the default settings of PROMPT1 et al (lines 303-306) to the
 vicinity of line 141.

Indeed, that is true -- that's the better fix IMHO. Barring any
objections I'll commit this fix before end-of-day today.

  On looking at the code closer though, I do see one related problem: we
  process command-line args before we read psqlrc, so psqlrc settings can
  override what was specified on the command-line. Shouldn't this happen
  in reverse?
[...]
 Would it be simple to change?

The main complication is that there is a command-line argument that
instructs psql not to read psqlrc; that means the easy fix of just
reading psqlrc before processing command-line arguments won't work.
Still shouldn't be too complicated to fix (e.g. postpone the -v settings
until we've processed psqlrc but do the rest of the command-line arg
processing immediately), but I'm content to leave it for 8.1

-Neil



---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


[PATCHES] [psql] Setting the PROMPT on command line

2004-10-06 Thread Ingo van Lil
Hi there,

I wrote a tiny patch to prevent psql from overwriting the PROMPT[1-3]
variables with default values after parsing the command line. That way
the prompt can be set from the command line by using:

psql -v PROMPT1=...

The patch is against postgres 7.4.5, but it's so trivial it should be
possible to apply it to CVS without changes.

Cheers,
Ingo

diff -ur postgresql-7.4.5/src/bin/psql/startup.c 
postgresql-7.4.5_hack/src/bin/psql/startup.c
--- postgresql-7.4.5/src/bin/psql/startup.c 2003-09-29 20:21:33.0 +0200
+++ postgresql-7.4.5_hack/src/bin/psql/startup.c2004-10-07 01:34:32.656452439 
+0200
@@ -280,9 +280,12 @@
}
 
/* Default values for variables that are used in interactive case */
-   SetVariable(pset.vars, PROMPT1, DEFAULT_PROMPT1);
-   SetVariable(pset.vars, PROMPT2, DEFAULT_PROMPT2);
-   SetVariable(pset.vars, PROMPT3, DEFAULT_PROMPT3);
+   if (!GetVariable(pset.vars, PROMPT1))
+   SetVariable(pset.vars, PROMPT1, DEFAULT_PROMPT1);
+   if (!GetVariable(pset.vars, PROMPT2))
+   SetVariable(pset.vars, PROMPT2, DEFAULT_PROMPT2);
+   if (!GetVariable(pset.vars, PROMPT3))
+   SetVariable(pset.vars, PROMPT3, DEFAULT_PROMPT3);
 
if (!options.no_psqlrc)
process_psqlrc();

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [PATCHES] [psql] Setting the PROMPT on command line

2004-10-06 Thread Neil Conway
On Thu, 2004-10-07 at 10:04, Ingo van Lil wrote:
 I wrote a tiny patch to prevent psql from overwriting the PROMPT[1-3]
 variables with default values after parsing the command line.

Looks good to me. Does anyone object to applying this for 8.0?

-Neil



---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] [psql] Setting the PROMPT on command line

2004-10-06 Thread Tom Lane
Neil Conway [EMAIL PROTECTED] writes:
 On Thu, 2004-10-07 at 10:04, Ingo van Lil wrote:
 I wrote a tiny patch to prevent psql from overwriting the PROMPT[1-3]
 variables with default values after parsing the command line.

 Looks good to me. Does anyone object to applying this for 8.0?

I'm just wondering if the fix is in the right place.  Doesn't the same
issue arise for other variables?  Maybe what we have to do is postpone
command-line-driven settings of variables until sometime later than it's
done now.

regards, tom lane

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [PATCHES] [psql] Setting the PROMPT on command line

2004-10-06 Thread Tom Lane
Neil Conway [EMAIL PROTECTED] writes:
 On Thu, 2004-10-07 at 13:05, Tom Lane wrote:
 I'm just wondering if the fix is in the right place.  Doesn't the same
 issue arise for other variables?

 Well, we don't manually set other variables in psql itself, with the
 exception of defining some default values before we process command-line
 args or psqlrc (see startup.c circa line 141) -- so in that case
 allowing the value to be overriden is fine.

[ eyeballs that... ]  So a much simpler fix for Ingo's complaint would
be to move the default settings of PROMPT1 et al (lines 303-306) to the
vicinity of line 141.  I can't see that skipping these setup operations
in the noninteractive case is worthwhile.

 On looking at the code closer though, I do see one related problem: we
 process command-line args before we read psqlrc, so psqlrc settings can
 override what was specified on the command-line. Shouldn't this happen
 in reverse?

I tend to agree, but it's somewhat debatable.  Would it be simple to
change?

regards, tom lane

---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [PATCHES] [psql] Setting the PROMPT on command line

2004-10-06 Thread Neil Conway
On Thu, 2004-10-07 at 13:05, Tom Lane wrote:
 I'm just wondering if the fix is in the right place.  Doesn't the same
 issue arise for other variables?

Well, we don't manually set other variables in psql itself, with the
exception of defining some default values before we process command-line
args or psqlrc (see startup.c circa line 141) -- so in that case
allowing the value to be overriden is fine.

On looking at the code closer though, I do see one related problem: we
process command-line args before we read psqlrc, so psqlrc settings can
override what was specified on the command-line. Shouldn't this happen
in reverse?

-Neil



---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html