PostgreSQLのコードを読む話(4)
前回 はオプティマイザー周りに入ったのでした。   home / postgres / src / backend / optimizer / README       多分 optimizer の planner.c あたりを読み進めると検索プランの作成方法が、   Portal あたり(どこだ?)を読み進めると、検索プランに従って実際に検索を行う処理が見つかる気がする。     今回は Portal の方にあたりをつけて読み進めてみることにする。   CreatePortal   https://github.com/postgres/postgres/blob/master/src/backend/utils/mmgr/portalmem.c#L196    http://127.0.0.1:9292/home/postgres/src/backend/utils/mmgr/README  readmeみる  mmgr は Memory Manager っぽい  Context単位でメモリ管理をするようなモデルらしい     PortalDefineQuery   parseされたStatementを受け取っているので、ここで実行?   statement 名を設定しているだけだった。。。     PortalStart   https://github.com/postgres/postgres/blob/master/src/backend/tcop/pquery.c#L436   実行準備とのこと   なにやら strategy にしたがって動作している     PortalSetResultFormat   見てない     PortalRun   多分ここが実行。。。   時間切れだったので、次回はここから。   https://github.com/postgres/postgres/blob/master/src/backend/tcop/pquery.c#L706