* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer @ 2024-12-20 16:47 José Júnior 2024-12-20 17:01 ` Eli Zaretskii 0 siblings, 1 reply; 9+ messages in thread From: José Júnior @ 2024-12-20 16:47 UTC (permalink / raw) To: 74996 Hi, after updating to Emacs 28 I noticed that when I execute a command in a sql-mode buffer connected to a sql-interactive-mode buffer, it prints the output where the pointer is at in the SQLi buffer, and if the pointer is not at the end, it messes up what was already printed, so I have to keep track where the pointer is before executing a query. I don´t remember seeing this behavior in Emacs 27, and it looks like a bug to me. I don't see how printing the output of a query in the middle of another output could be useful. To reproduce: 1. Open sql-mode buffer conntected to a SQLi buffer 2. Run a sql query 3. Move the pointer to a line that has the previous output printed 4. Run another sql query ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer 2024-12-20 16:47 bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer José Júnior @ 2024-12-20 17:01 ` Eli Zaretskii 2024-12-20 19:03 ` José Júnior 0 siblings, 1 reply; 9+ messages in thread From: Eli Zaretskii @ 2024-12-20 17:01 UTC (permalink / raw) To: José Júnior; +Cc: 74996 > Date: Fri, 20 Dec 2024 13:47:08 -0300 > From: José Júnior <jjnilton@gmail.com> > > Hi, after updating to Emacs 28 I noticed that when I execute a command in a sql-mode buffer connected to a sql-interactive-mode buffer, it prints the output where the pointer is at in the SQLi buffer, and if the pointer is not at the end, it messes up what was already printed, so I have to keep track where the pointer is before executing a query. I don´t remember seeing this behavior in Emacs 27, and it looks like a bug to me. I don't see how printing the output of a query in the middle of another output could be useful. > > To reproduce: > > 1. Open sql-mode buffer conntected to a SQLi buffer > > 2. Run a sql query > > 3. Move the pointer to a line that has the previous output printed > > 4. Run another sql query Thanks, but could you please provide a more detailed reproduction recipe, without assuming that we know about sql-mode and SQLi as much as you do? Preferably starting from "emacs -Q", please. Also, please show the information collected about your system and build of Emacs by "M-x report-emacs-bug". Some of the info there might be relevant to your report. ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer 2024-12-20 17:01 ` Eli Zaretskii @ 2024-12-20 19:03 ` José Júnior 2024-12-20 19:32 ` Eli Zaretskii 0 siblings, 1 reply; 9+ messages in thread From: José Júnior @ 2024-12-20 19:03 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 74996 Alright, I'll try. 1. Install mysql or mariadb, on Debian I installed the package `mysql-common` `sudo apt install mysql-common` 2. Start the mysql/mariadb server: `sudo service mysql start` 3. Log in into the server and create a unprivileged user in the interactive mysql shell: `sudo mysql -u root` `CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';` 4. On Emacs, create a new buffer like `*sql*`, then enable sql-mode `M-x sql-mode`; 5. Connect to the server using `sql-mysql` by providing the values for what's prompted: - user: user - password: password - database: (leave it empty) - host: localhost A sql-interactive-mode buffer should be opened if the connection is successful. 6. In ther *sql* buffer enter the following query: `show databases;` And press `C-c C-c` (sql-send-paragraph) on the line of this query to send it to the server; An output of this query should be printed on the interactive buffer. 7. Now switch to the interactive buffer, move the pointer to a line where the output of the previous action was printed. 8. Switch to the *sql* buffer and press `C-C C-c` to send the command again. Now you should see that the second execution is mixed with the previous one. ---- Here's the information about my system and Emacs build: ``` In GNU Emacs 28.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.16.0) of 2024-06-25, modified by Debian built on x86-conova-01 Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 System Description: Debian GNU/Linux 12 (bookworm) Configured using: 'configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/28.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/28.2/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-native-compilation --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/28.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/28.2/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-native-compilation --with-cairo --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2 -ffile-prefix-map=/build/reproducible-path/emacs-28.2+1=. -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB Important settings: value of $LC_MONETARY: pt_BR.UTF-8 value of $LC_NUMERIC: pt_BR.UTF-8 value of $LC_TIME: en_US.UTF-8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map text-property-search time-date subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 67701 7304) (symbols 48 6640 0) (strings 32 19402 1678) (string-bytes 1 657582) (vectors 16 13801) (vector-slots 8 295271 11392) (floats 8 23 31) (intervals 56 280 0) (buffers 992 11)) ``` On 12/20/24 14:01, Eli Zaretskii wrote: >> Date: Fri, 20 Dec 2024 13:47:08 -0300 >> From: José Júnior <jjnilton@gmail.com> >> >> Hi, after updating to Emacs 28 I noticed that when I execute a command in a sql-mode buffer connected to a sql-interactive-mode buffer, it prints the output where the pointer is at in the SQLi buffer, and if the pointer is not at the end, it messes up what was already printed, so I have to keep track where the pointer is before executing a query. I don´t remember seeing this behavior in Emacs 27, and it looks like a bug to me. I don't see how printing the output of a query in the middle of another output could be useful. >> >> To reproduce: >> >> 1. Open sql-mode buffer conntected to a SQLi buffer >> >> 2. Run a sql query >> >> 3. Move the pointer to a line that has the previous output printed >> >> 4. Run another sql query > Thanks, but could you please provide a more detailed reproduction > recipe, without assuming that we know about sql-mode and SQLi as much > as you do? Preferably starting from "emacs -Q", please. > > Also, please show the information collected about your system and > build of Emacs by "M-x report-emacs-bug". Some of the info there > might be relevant to your report. ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer 2024-12-20 19:03 ` José Júnior @ 2024-12-20 19:32 ` Eli Zaretskii 2024-12-20 20:08 ` Stephen Berman via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-12-20 20:13 ` José Júnior 0 siblings, 2 replies; 9+ messages in thread From: Eli Zaretskii @ 2024-12-20 19:32 UTC (permalink / raw) To: José Júnior; +Cc: 74996 > Date: Fri, 20 Dec 2024 16:03:59 -0300 > Cc: 74996@debbugs.gnu.org > From: José Júnior <jjnilton@gmail.com> > > Alright, I'll try. > > 1. Install mysql or mariadb, on Debian I installed the package `mysql-common` > > `sudo apt install mysql-common` > > 2. Start the mysql/mariadb server: > > `sudo service mysql start` > > 3. Log in into the server and create a unprivileged user in the interactive mysql shell: > > `sudo mysql -u root` > > `CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';` > > 4. On Emacs, create a new buffer like `*sql*`, then enable sql-mode `M-x sql-mode`; > > 5. Connect to the server using `sql-mysql` by providing the values for what's prompted: > > - user: user > > - password: password > > - database: (leave it empty) > > - host: localhost > > A sql-interactive-mode buffer should be opened if the connection is successful. > > 6. In ther *sql* buffer enter the following query: > > `show databases;` > > And press `C-c C-c` (sql-send-paragraph) on the line of this query to send it to the server; > > An output of this query should be printed on the interactive buffer. > > 7. Now switch to the interactive buffer, move the pointer to a line where the output of the previous action was printed. > > 8. Switch to the *sql* buffer and press `C-C C-c` to send the command again. > > Now you should see that the second execution is mixed with the previous one. Thanks. If this needs the mysql package, then why do you think the problem is in Emacs and not in mysql? (Apologies if this makes no sense: I know nothing about mysql and almost nothing about sql-mode.) ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer 2024-12-20 19:32 ` Eli Zaretskii @ 2024-12-20 20:08 ` Stephen Berman via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-12-20 20:11 ` Eli Zaretskii 2024-12-20 20:13 ` José Júnior 1 sibling, 1 reply; 9+ messages in thread From: Stephen Berman via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-20 20:08 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 74996, José Júnior On Fri, 20 Dec 2024 21:32:53 +0200 Eli Zaretskii <eliz@gnu.org> wrote: >> Date: Fri, 20 Dec 2024 16:03:59 -0300 >> Cc: 74996@debbugs.gnu.org >> From: José Júnior <jjnilton@gmail.com> >> >> Alright, I'll try. >> >> 1. Install mysql or mariadb, on Debian I installed the package `mysql-common` >> >> `sudo apt install mysql-common` >> >> 2. Start the mysql/mariadb server: >> >> `sudo service mysql start` >> >> 3. Log in into the server and create a unprivileged user in the interactive >> mysql shell: >> >> `sudo mysql -u root` >> >> `CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';` >> >> 4. On Emacs, create a new buffer like `*sql*`, then enable sql-mode `M-x sql-mode`; >> >> 5. Connect to the server using `sql-mysql` by providing the values for >> what's prompted: >> >> - user: user >> >> - password: password >> >> - database: (leave it empty) >> >> - host: localhost >> >> A sql-interactive-mode buffer should be opened if the connection is successful. >> >> 6. In ther *sql* buffer enter the following query: >> >> `show databases;` >> >> And press `C-c C-c` (sql-send-paragraph) on the line of this query to send >> it to the server; >> >> An output of this query should be printed on the interactive buffer. >> >> 7. Now switch to the interactive buffer, move the pointer to a line where >> the output of the previous action was printed. >> >> 8. Switch to the *sql* buffer and press `C-C C-c` to send the command again. >> >> Now you should see that the second execution is mixed with the previous one. > > Thanks. If this needs the mysql package, then why do you think the > problem is in Emacs and not in mysql? (Apologies if this makes no > sense: I know nothing about mysql and almost nothing about sql-mode.) I don't have MySQL or mariadb but I can reproduce the problem with PostgreSQL in Emacs 29.4, but not in 30 or master, so it seems to have been fixed since Emacs 30. Steve Berman ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer 2024-12-20 20:08 ` Stephen Berman via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-20 20:11 ` Eli Zaretskii 2024-12-20 20:34 ` José Júnior 0 siblings, 1 reply; 9+ messages in thread From: Eli Zaretskii @ 2024-12-20 20:11 UTC (permalink / raw) To: Stephen Berman; +Cc: 74996, jjnilton > From: Stephen Berman <stephen.berman@gmx.net> > Cc: José Júnior <jjnilton@gmail.com>, > 74996@debbugs.gnu.org > Date: Fri, 20 Dec 2024 21:08:36 +0100 > > I don't have MySQL or mariadb but I can reproduce the problem with > PostgreSQL in Emacs 29.4, but not in 30 or master, so it seems to have > been fixed since Emacs 30. Thanks. José, can you try Emacs 30? The latest pretest is here: https://alpha.gnu.org/gnu/emacs/pretest/emacs-30.0.93.tar.xz ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer 2024-12-20 20:11 ` Eli Zaretskii @ 2024-12-20 20:34 ` José Júnior 2024-12-21 6:35 ` Eli Zaretskii 0 siblings, 1 reply; 9+ messages in thread From: José Júnior @ 2024-12-20 20:34 UTC (permalink / raw) To: Eli Zaretskii, Stephen Berman; +Cc: 74996 Just tried on Emacs 30 (emacs-30.0.93) and could not reproduce the bug. On 12/20/24 17:11, Eli Zaretskii wrote: >> From: Stephen Berman <stephen.berman@gmx.net> >> Cc: José Júnior <jjnilton@gmail.com>, >> 74996@debbugs.gnu.org >> Date: Fri, 20 Dec 2024 21:08:36 +0100 >> >> I don't have MySQL or mariadb but I can reproduce the problem with >> PostgreSQL in Emacs 29.4, but not in 30 or master, so it seems to have >> been fixed since Emacs 30. > Thanks. José, can you try Emacs 30? The latest pretest is here: > > https://alpha.gnu.org/gnu/emacs/pretest/emacs-30.0.93.tar.xz ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer 2024-12-20 20:34 ` José Júnior @ 2024-12-21 6:35 ` Eli Zaretskii 0 siblings, 0 replies; 9+ messages in thread From: Eli Zaretskii @ 2024-12-21 6:35 UTC (permalink / raw) To: José Júnior; +Cc: stephen.berman, 74996-done > Date: Fri, 20 Dec 2024 17:34:12 -0300 > Cc: 74996@debbugs.gnu.org > From: José Júnior <jjnilton@gmail.com> > > Just tried on Emacs 30 (emacs-30.0.93) and could not reproduce the bug. Great, thanks. So I'm therefore closing this bug. ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer 2024-12-20 19:32 ` Eli Zaretskii 2024-12-20 20:08 ` Stephen Berman via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-20 20:13 ` José Júnior 1 sibling, 0 replies; 9+ messages in thread From: José Júnior @ 2024-12-20 20:13 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 74996 I think because the issue is where the output is printed on the buffer, so it would be something after the mysql package gives the output to Emacs. As I understand, the mysql package only gives the output of the SQL query to Emacs, then Emacs should be in control to where to print it. And since it's taking into account where the pointer is to print the output, it seems to be the case. >> Date: Fri, 20 Dec 2024 16:03:59 -0300 >> Cc: 74996@debbugs.gnu.org >> From: José Júnior <jjnilton@gmail.com> >> >> Alright, I'll try. >> >> 1. Install mysql or mariadb, on Debian I installed the package `mysql-common` >> >> `sudo apt install mysql-common` >> >> 2. Start the mysql/mariadb server: >> >> `sudo service mysql start` >> >> 3. Log in into the server and create a unprivileged user in the interactive mysql shell: >> >> `sudo mysql -u root` >> >> `CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';` >> >> 4. On Emacs, create a new buffer like `*sql*`, then enable sql-mode `M-x sql-mode`; >> >> 5. Connect to the server using `sql-mysql` by providing the values for what's prompted: >> >> - user: user >> >> - password: password >> >> - database: (leave it empty) >> >> - host: localhost >> >> A sql-interactive-mode buffer should be opened if the connection is successful. >> >> 6. In ther *sql* buffer enter the following query: >> >> `show databases;` >> >> And press `C-c C-c` (sql-send-paragraph) on the line of this query to send it to the server; >> >> An output of this query should be printed on the interactive buffer. >> >> 7. Now switch to the interactive buffer, move the pointer to a line where the output of the previous action was printed. >> >> 8. Switch to the *sql* buffer and press `C-C C-c` to send the command again. >> >> Now you should see that the second execution is mixed with the previous one. > Thanks. If this needs the mysql package, then why do you think the > problem is in Emacs and not in mysql? (Apologies if this makes no > sense: I know nothing about mysql and almost nothing about sql-mode.) ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-12-21 6:35 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-20 16:47 bug#74996: 28.2; sql interactive mode prints output of executed query where the pointer is instead of the bottom of the buffer José Júnior 2024-12-20 17:01 ` Eli Zaretskii 2024-12-20 19:03 ` José Júnior 2024-12-20 19:32 ` Eli Zaretskii 2024-12-20 20:08 ` Stephen Berman via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-12-20 20:11 ` Eli Zaretskii 2024-12-20 20:34 ` José Júnior 2024-12-21 6:35 ` Eli Zaretskii 2024-12-20 20:13 ` José Júnior
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).