MySQL shell中不区分大小写的补全
MySQL可以完成shell命令和SQL声明 但对于SQL,它只完成大写输入。例如,MySQL shell中不区分大小写的补全,mysql,autocomplete,Mysql,Autocomplete,MySQL可以完成shell命令和SQL声明 但对于SQL,它只完成大写输入。例如,'SEL'适用于'SELECT',但'SEL'不适用 是否有类似于MySQL的.inputrc的东西,我可以将其配置为不区分大小写的完成?我来StackOverflow寻找这个问题的答案,但因为没有,我想我应该自己研究答案 MySQL命令行客户端与GNU Readline库相链接,以提供制表符完成,并且由于MySQL客户端解析.inputrc(可以从使用strace检查MySQL客户端发出的系统调用中看出),我想
'SEL'
适用于'SELECT'
,但'SEL'
不适用
是否有类似于MySQL的
.inputrc
的东西,我可以将其配置为不区分大小写的完成?我来StackOverflow寻找这个问题的答案,但因为没有,我想我应该自己研究答案
MySQL命令行客户端与GNU Readline库相链接,以提供制表符完成,并且由于MySQL客户端解析.inputrc
(可以从使用strace
检查MySQL客户端发出的系统调用中看出),我想它会注意一些选项,比如在
上设置completion ignore case。不幸的是,事实并非如此
使用来源,卢克
虽然我不是C++开发人员,但我检查了.<
您可以看到build\u completion\u hash()
函数添加了如下名称
将SQL关键字、表名和字段名转换为哈希(快速高效的形式
指数据结构),用于提供完成。然而,该文件只是添加了以下内容
大多数SQL命令都以大写字母列出,但也有一些例外情况,如创建数据库
,创建表
,显示数据库
,中的显示字段以小写字母列出。由于生成的列表中的SQL关键字都是大写的,所以当SQL关键字以小写键入时,补全不起作用
此列表用于包含SQL命令的简短列表(小写),例如,select
,drop
,insert
。然而,在中,这个短列表被MySQL支持的SQL命令的生成列表所取代
注意:我链接到MySQL的MariaDB fork的源代码,因为它更易于通过web访问。MariaDB是一个二进制兼容的分支,来自MySQL代码库,现在由Oracle拥有(该项目由MySQL AB背后的相同人员运行)。通过查看版本控制历史记录,我提到的客户端代码部分在过去几年中没有发生太大变化
TLDR:答案似乎是否定的。<2008年1月是一个活着的好时机。