Re: [PATCHES] [psql] Setting the PROMPT on command line
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
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
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
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
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
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
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