LoginSignup
6
7

More than 5 years have passed since last update.

Windows版PostgreSQLでpg_bigmを使う方法(非公式)

Last updated at Posted at 2015-09-03

現在(2015/09)、pg_bigmは公式にWindows版PostgreSQLをサポートしていません。pg_bigmコミュニティにはパッチを投稿していただいているのですが、(Window上での開発のハードルが高く)まだ見れていない状態です。すいません。
ですが、pg_trgmのように、ソースコード内に特別なWindows対応コードを入れなくても、Windows版PostgreSQL上でpg_bigmは使用できるので、その方法を紹介します。

※注意 : この方法は非公式です。

準備

Windows開発環境の準備

PostgreSQLマニュアルのこちらを参考に、Microsoft Windows SDKとActiveState Perlをインストールします。(私の環境ではMicrosoft Visual Studio Communityをインストールしました)

PostgreSQLのソースコードの入手

こちらから好きなバージョンのソースコードをダウンロードし、解凍しておきます。(私は9.4.4をダウンロードしました)

pg_bigmのソースコードの入手

こちらからソースコードをダウンロードし、同じく解凍しておきます。(私は1.1-20131122をダウンロードしました)

インストール

※コマンドプロンプトは「Visual Studio コマンドプロンプト」を使いました。(スタートメニュー→すべてのプログラム→Visual Studioにありました)
このコマンドプロンプトを使わないと、「Unable to determine Visual Studio version: The nmake version could not be determined. at src/tools/msvc/Mkvcbuild.pm line 63.」というエラーが出て、buildコマンドが実行できません。

PostgreSQLのインストール

※PostgreSQLが既にインストールされている、またはインストーラーでインストールしている場合はスキップしてください。

PostgreSQLマニュアルを参考に、

> cd src\tool\msvc
> build

で、ビルドし、

> install <インストールするパス>

で、指定したパスへインストールします。

pg_bigmのインストール

1.解凍したpg_bigmをPostgreSQLのcontribディレクトリに移動します。

2.次に以下のコマンドでビルドします。

> cd src\tool\msvc
> build pg_bigm

ビルド後、PostgreSQLのソースディレクトリのトップにReleaseディレクトリができ、その中にpg_bigmディレクトリがあることを確認します。(pg_bigm.pdbやpg_bigm.dllなどが入っています)

3.下記の表を元にインストールに必要なファイルを手動でコピーします。

対象ファイル名 コピー元 コピー先
pg_bigm.dll <PostgreSQLのソースディレクトリ>\Release\pg_bigm\pg_bigm.dll <PostgreSQLのインストール先>\lib
pg_bigm.pdb <PostgreSQLのソースディレクトリ>\Release\pg_bigm\pg_bigm.pdb <PostgreSQLのインストール先>\symbols
pg_bigm.control と pg_bigm--1.1.sql <pg_bigmのソースディレクトリ>\pg_bigm.control と pg_bigm--1.1.sql <PostgreSQLのインストール先>\share\extension

※ダウンロードしたpg_bigmのバージョンによって、pg_bigm--1.0.sqlになるかもしれません

上記の4つファイルを移動できたらインストール完了です。

pg_bigmの登録

PostgreSQLへのpg_bigmの登録はLinux環境と同じです。
PostgreSQLを起動後、pg_bigmのマニュアルに書いてある通りに、以下のコマンドで登録します。

> psql -d postgres
=# CREATE EXTENSION pg_bigm;
CREATE EXTENSION
6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7