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 コマンドの生成されたリストに置き換えられました。dropinsert
注: MySQL の MariaDB フォークのソースにリンクしました。Web からアクセスしやすいためです。MariaDB は、現在 Oracle が所有する MySQL コードベースからのバイナリ互換フォークです (このプロジェクトは、MySQL AB の背後で同じ人々によって運営されています)。バージョン管理履歴を確認したところ、私が参照したクライアント コードの部分は、ここ数年あまり変更されていません。
TLDR: 答えはノーのようです。