Baoという、機械学習ベースのクエリオプティマイザを試している。
丁寧なドキュメントもあるのだが、軽くハマった点がいくつかあるので、回避方法を書いておく。
ポスグレのバージョン
PostgreSQL 12.x。それ以外はダメっぽい。
Issue in installing Bao extension · Issue #1 · learnedsystems/BaoForPostgreSQL · GitHub
Pythonのバージョン
3.8以上。それ以下の場合、構文エラー*1がでるので自分で書き直す必要がある。
Python Syntax Error · Issue #2 · learnedsystems/BaoForPostgreSQL · GitHub
データベースとロール
imdbというデータベースとロールが必要。
CREATE DATABASE imdb; CREATE ROLE imdb; ALTER ROLE imdb WITH LOGIN; ALTER ROLE imdb SUPERUSER;
imdb データ
imdbのデータをダウンロードしてpg_restoreでデータベースimdbに入れておく。 dataverse.harvard.edu
$ pg_restore -d imdb -F c imdb_pg11
*1:":="を使っている。