Thread: New psql input mode problems
Hi all, I was wondering why all the regression tests failed for me so i ran one in the interactive mode. mtcc:[/usr/local/pgsql/src/test/regress](73)% /usr/local/pgsql/bin/psql regression Welcome to psql, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit regression=> \i sql/boolean.sql regression=> I got nothing onscreen and no work was done. After some digging I found that in non interactive mode psql stops processing a file as soon as it gets to a blank line. This seems to be where it goes wrong. (mainloop.c) /* No more input. Time to quit, or \i done */ if (line == NULL || (!pset->cur_cmd_interactive && *line == '\0')) When a blank line is encountered in the input line = gets_fromFile(source); returns an empty string ('\0') and terminates the processing. with the if clause reduced to checking for line == NULL psql does the work but fails badly due to the differences between results and expected. (comments, QUERY:, echo processing) Is the intention to modify expected to agree with the new results output, or fix psql to output in the expected format? Keith.
> Hi all, > > I was wondering why all the regression tests failed for me so i ran one > in the interactive mode. > > > mtcc:[/usr/local/pgsql/src/test/regress](73)% /usr/local/pgsql/bin/psql > regression > Welcome to psql, the PostgreSQL interactive terminal. > > Type: \copyright for distribution terms > \h for help with SQL commands > \? for help on internal slash commands > \g or terminate with semicolon to execute query > \q to quit > > regression=> \i sql/boolean.sql > > regression=> > > I got nothing onscreen and no work was done. > > After some digging I found that in non interactive mode psql > stops processing a file as soon as it gets to a blank line. > > This seems to be where it goes wrong. (mainloop.c) > > /* No more input. Time to quit, or \i done */ > if (line == NULL || (!pset->cur_cmd_interactive && *line == '\0')) > > When a blank line is encountered in the input > > line = gets_fromFile(source); > > returns an empty string ('\0') and terminates the processing. > > with the if clause reduced to checking for line == NULL psql > does the work but fails badly due to the differences between > results and expected. (comments, QUERY:, echo processing) > > Is the intention to modify expected to agree with the new > results output, or fix psql to output in the expected format? Good question. We need to know if people like the current output format, or the old one better? Looks like your change in testing just for NULL is correct, and I will apply a patch. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
On Sun, 7 Nov 1999, Bruce Momjian wrote: > > Hi all, > > > > I was wondering why all the regression tests failed for me so i ran one > > in the interactive mode. I warned y'all about this. Too late now ;) > > After some digging I found that in non interactive mode psql > > stops processing a file as soon as it gets to a blank line. > > > > This seems to be where it goes wrong. (mainloop.c) > > > > /* No more input. Time to quit, or \i done */ > > if (line == NULL || (!pset->cur_cmd_interactive && *line == '\0')) This line was there in the old source as well. > > > > When a blank line is encountered in the input > > > > line = gets_fromFile(source); > > > > returns an empty string ('\0') and terminates the processing. Same in the old one. > > > > with the if clause reduced to checking for line == NULL psql > > does the work but fails badly due to the differences between > > results and expected. (comments, QUERY:, echo processing) As I said, that part was not my idea. I'll look into that though. > > > > > Is the intention to modify expected to agree with the new > > results output, or fix psql to output in the expected format? How about using the old psql for regression testing? > > Good question. We need to know if people like the current output > format, or the old one better? I send in several examples. If no one comments, that's silent approval. I am really hesitant to put in a compatibility format, but I might just do that until new regression tests are out and you ask me to. > > Looks like your change in testing just for NULL is correct, and I will > apply a patch. > -- Peter Eisentraut Sernanders vaeg 10:115 peter_e@gmx.net 75262 Uppsala http://yi.org/peter-e/ Sweden