Re: [HACKERS] Still not happy with psql's multiline history behavior - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: [HACKERS] Still not happy with psql's multiline history behavior
Date
Msg-id 200606040436.k544acC01227@candle.pha.pa.us
Whole thread Raw
List pgsql-patches
I think I have fixed both problems with the attached, applied patch.
Please let me know if it is OK.

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

Tom Lane wrote:
> I'm getting grudgingly more used to CVS HEAD's behavior of stuffing a
> multiline command into the history buffer as a single item, but there's
> still something bothering me about it.  I've finally put my finger on
> what.  I think it should not combine SQL text and backslash commands
> into a single history entry.  The example that seriously sucks is:
>
> regression=# select foo ...
> regression-# \r
> Query buffer reset (cleared).
> now control-P brings back:
> regression=# select foo ...
> \r
>
> In the case where I type SQL and backslash on one line, of course it
> can't break them apart, but I think there should be a general rule that
> a line starting with a backslash is always a separate history entry.
>
> Also, \e is seriously broken: after you edit the text and exit the
> editor, the text is not reloaded into the visible display (although it
> does seem to still be "behind the scenes" somewhere).
>
>             regards, tom lane
>
> ---------------------------(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. +
Index: src/bin/psql/mainloop.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/mainloop.c,v
retrieving revision 1.74
diff -c -c -r1.74 mainloop.c
*** src/bin/psql/mainloop.c    21 Mar 2006 13:38:12 -0000    1.74
--- src/bin/psql/mainloop.c    4 Jun 2006 04:33:34 -0000
***************
*** 306,312 ****
              if (first_query_scan && pset.cur_cmd_interactive)
              {
                  /* Sending a command (PSQL_CMD_SEND) zeros the length */
!                 if (scan_result == PSCAN_BACKSLASH && query_buf->len != 0)
                      pg_write_history(line);
                  else
                      pg_append_history(line, history_buf);
--- 306,312 ----
              if (first_query_scan && pset.cur_cmd_interactive)
              {
                  /* Sending a command (PSQL_CMD_SEND) zeros the length */
!                 if (scan_result == PSCAN_BACKSLASH && history_buf->len != 0)
                      pg_write_history(line);
                  else
                      pg_append_history(line, history_buf);

pgsql-patches by date:

Previous
From: uol@freenet.de
Date:
Subject: Re: PL/PGSQL: Dynamic Record Introspection
Next
From: Bruce Momjian
Date:
Subject: Re: Re [HACKERS]: Still not happy with psql's multiline history behavior