Thread

  1. New psql input mode problems

    Keith Parks <emkxp01@mtcc.demon.co.uk> — 1999-11-07T16:51:57Z

    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.