Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 10.0.17
-
Fix Version/s: N/A
-
Component/s: Scripts & Clients
-
Labels:None
-
Environment:Fedora
Description
There are two issues related to external libedit reported for Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1187469 that non-ASCII characters don't work in interactive mode and https://bugzilla.redhat.com/show_bug.cgi?id=1180403 that backward search doesn't work.
The problem is that mysql binary uses just readline() function from libedit library and this function only offers basic functionality. So generally, the possible fix is either to use el_wgets() function from libedit and configure the backward search feature in mysql binary or fix libedit's readline function to offer this by default (of as another function).
Steps to Reproduce:
1. run mysql client that uses external libedit
2. copy & paste the following clauses in mysql client:
SELECT 'Chinese characters <汉字> are stripped';
3. '汉字' are stripped out in mysql client
4. press ctrl+R to activate background search in history
Actual results:
MariaDB [(none)]> SELECT 'Chinese characters <> are stripped'; +------------------------------------+ | Chinese characters <> are stripped | +------------------------------------+ | Chinese characters <> are stripped | +------------------------------------+
background search in history doesn't work
Expected results:
MariaDB [(none)]> SELECT 'Chinese characters <汉字> are stripped'; +------------------------------------------+ | Chinese characters <汉字> are stripped | +------------------------------------------+ | Chinese characters <汉字> are stripped | +------------------------------------------+
background search in history works
Reproducible for example with mariadb-10.0.17-1.fc21.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Just FYI, examples/wtc1.c example from libedit-3.x tarball (http://sourceforge.net/projects/libedit/) shows how proper widechar support should be done (since libedit's readline() function includes just basics). I suppose something similar could be implemented into the mysql binary, so it is flexible in supporting advanced libedit features (non-ascii, backward history searchning, etc... either from external or bundled libedit).