[pgsql-jp: 41977] Windows10上でPostgreSQL用の拡張機能(EXE)を動かすと障害エラーになる

hirapon @ mtj.biglobe.ne.jp hirapon @ mtj.biglobe.ne.jp
2018年 3月 23日 (金) 00:20:01 JST


八寿と申します。

PostgreSQLの拡張機能である「pg_repack」を使用したくビルド方法を模索しました。
ビルドは出来たものの、Windows 10 + PostgreSQL9.6にてhelpやversionのコマンドですら障害エラーが出てしまいます。

検索して見つけたサイトには、原因としてWindows 10ではset_pglocale_pgservice(argv[0], "pgscripts")内にて
関数の途中のアドレスがセットされてしまうとのこと。
https://stackoverflow.com/questions/45819855/call-of-statically-link-function-crash-everytimes-on-windows-8-10-but-not-7
原因から推測するとpg_repackに限らず、他のexeタイプでも同様になると思います。
ただ、bin内に最初からあるpg_rewindなどはWindows10でもhelpコマンドは正常に動作しています。

>I solve the issue by generating a static library of postgres in order to link with pg_repack. It works well (on windows 7/8/10)
>Call of statically link function crash everytimes on windows 8/10 but not 7

postgresの静的ライブラリーを生成してpg_repackにリンクして解決したとのコメントがありまして、
どうにかしてpg_repackを使ってみたいのです、この方法をどうやればいいのかを知りたいのです。

よろしくお願いします。

自分なりに調べたりした経緯は書きました。C言語の知識が疎いのでこれ以上は難しい。
https://qiita.com/yaju/items/94b7b290eb1dbbc5d70f


pgsql-jp メーリングリストの案内