Skip to main content
VillageSQL は MySQL のトラッキングフォークであり、ドロップイン置換として機能します。MySQL のプラグインおよびコンポーネントインターフェースは、MySQL と同様に VillageSQL でも動作します。VillageSQL は、VillageSQL 拡張フレームワーク(VEF)を提供します。新しい機能(カスタム SQL 関数、カスタム型、統合など)を追加するには、VEF 拡張機能が適切なモデルです。

どこに配置するか

新しいものを構築する場合は、独自のリポジトリに VEF 拡張機能を構築します。プラグインとコンポーネントも機能しますが、VEF が適切なモデルです。詳しくは、プラグインとコンポーネントの代わりに拡張機能を使用する理由をご覧ください。 VillageSQL Server リポジトリに属するコントリビューション:

プラグインとコンポーネントの代わりに拡張機能を使用する理由

MySQL プラグインとコンポーネントは VillageSQL で動作します。VEF 拡張機能では、さらに多くの機能を利用できます。
  • カスタム型 — 新しい列タイプを定義できます。これは、プラグインや UDF ではできません。
  • パッケージング.veb ファイルとして配布され、INSTALL EXTENSION でインストールされます。
  • 再起動は不要 — 拡張機能は実行時にロードおよびアンロードされます。
  • バージョン管理 — 拡張機能のマニフェストで宣言され、サーバーによって強制されます。

新しい拡張機能の開始

VEF には 2 つの SDK があり、どちらも同じフレームワークを通じて登録します。 現時点では C++ SDK のほうが充実しています(集約、prerun、可変長引数、システム変数とステータス変数、キーリング、列ストレージ)。Rust SDK は、関数のみの拡張機能とカスタム型に対応しています。

VEF で必要な機能がサポートされていない場合

VEF はまだ発展中です。まだ存在しないフックまたは機能が必要な場合は、次の手順を実行します。
  • サーバーリポジトリに、必要なものを説明する Issue を提出します。
  • リクエストがすでにある場合は、既存の Issue に賛成票を投じます。
  • フックを VEF に追加する PR を提出します。 フレームワークの改善は、サーバーリポジトリで歓迎されます。