MySQL は、シェル コマンドと SQL 宣言をタブで補完できます。
ただし、SQL の場合、大文字の入力に対してのみ完了します。たとえば、'SEL'
は機能し'SELECT'
ますが、機能し'sel'
ません。
.inputrc
大文字と小文字を区別しない補完として構成できるMySQLのようなものはありますか?
MySQL は、シェル コマンドと SQL 宣言をタブで補完できます。
ただし、SQL の場合、大文字の入力に対してのみ完了します。たとえば、'SEL'
は機能し'SELECT'
ますが、機能し'sel'
ません。
.inputrc
大文字と小文字を区別しない補完として構成できるMySQLのようなものはありますか?
私はこの質問に対する答えを探して StackOverflow に来ましたが、なかったので、自分で答えを調べようと思いました。
MySQL コマンドライン クライアントは、タブ補完を提供するために GNU Readline ライブラリに対してリンクされており、MySQL クライアントが解析するため.inputrc
(MySQL クライアントによって行われたシステム コールを調べるために使用することからわかるようstrace
に)、オプションに注意を払うと思いました。などset completion-ignore-case On
。残念ながら、そうではありません。
私は C++ 開発者ではありませんが、コマンド ライン クライアントのソース コードを調べました。
build_completion_hash()
この関数は、SQL キーワード、テーブル名、フィールド名などの名前を、補完を提供するために使用されるハッシュ (データ構造の高速で効率的な形式) に追加することがわかります。ただし、SQL コマンドをハッシュに追加する部分は、次の SQL コマンドのリストを追加するだけです。
これらの SQL コマンドのほとんどは大文字でリストされていますがcreate database
、create table
、show databases
、などのいくつかの例外があり、show fields from
小文字を使用してリストされています。この生成されたリストの SQL キーワードはすべて大文字であるため、SQL キーワードが小文字で入力されている場合、補完は機能しません。
このリストには、SQL コマンドの短いリスト (小文字) が含まれていましselect
た。ただし、2008 年 1 月に、この短いリストは、MySQL でサポートされる SQL コマンドの生成されたリストに置き換えられました。drop
insert
注: MySQL の MariaDB フォークのソースにリンクしました。Web からアクセスしやすいためです。MariaDB は、現在 Oracle が所有する MySQL コードベースからのバイナリ互換フォークです (このプロジェクトは、MySQL AB の背後で同じ人々によって運営されています)。バージョン管理履歴を確認したところ、私が参照したクライアント コードの部分は、ここ数年あまり変更されていません。
TLDR: 答えはノーのようです。