Slide 1

Slide 1 text

第46回 PostgreSQLアンカンファレンス@東京 Yasuo Honda @yahonda pg_stat_statementsで inの数が違うSQLをまとめて ほしい

Slide 2

Slide 2 text

● Yasuo Honda @yahonda ○ Rails committer ○ 第36回,39回 PostgreSQLアンカンファレンス から3回目の参加 ■ 第36回 PostgreSQLアンカンファレンス@オンライン ■ 第39回 PostgreSQLアンカンファレンス@オンライン - connpass ● 遅延可能な制約はRails 7.1からmigrationで作成可能になりました 自己紹介

Slide 3

Slide 3 text

● IN句の数が違うだけのSQLが異なるSQLとして`pg_stat_statements` に記録される ● IN を ANY に書き換えるとANY句の数が違っても単一のSQLとして `pg_stat_statements`に記録されるため、INを全てANYに置き換える pull requestがRailsに開かれる ○ https://github.com/rails/rails/pull/49388 ● 私はPostgreSQL側で解決して欲しい ○ https://github.com/rails/rails/pull/49388#issuecomment-1 752253622 背景

Slide 4

Slide 4 text

● PostgreSQL側でそれを修正するパッチがあることを知る ○ https://www.postgresql.org/message-id/flat/20230209194 329.z7ectolwilvgppcg%40erthalion.local#be2115b1ac27fedd 45783f57d4e8a6ee ● パッチがマージされるためにできることをしたい 背景

Slide 5

Slide 5 text

● PostgreSQL Conference Japan 2021でこのセッションに出ていた ○ https://www.slideshare.net/nttdata-tech/postgresql-glob al-development-group-postgresql-conference-japan-2021 -nttdata ● PostgreSQLのmasterブランチをビルドできる環境を持っていた ● うっすら覚えていたこと ○ Issue trackerはなく、メーリングリストで議論が進む ○ Commitfestという期間でパッチが集中的にレビューされる 知っていたこと

Slide 6

Slide 6 text

困ったこと

Slide 7

Slide 7 text

● pgsql-hackersメーリングリストに参加した ● 該当スレッドに返信したいが、最新は私の参加前 ○ https://www.postgresql.org/message-id/flat/CA%2Bq6zc WtUbT_Sxj0V6HY6EZ89uv5wuG5aefpe_9n0Jr3VwntFg%40 mail.gmail.com ● どうやってreplyすればいいかわからない ● postgresql-jp Slackで質問 ○ “Resend email”をおすとそのメールが再送されることを教えてもらう 過去のメーリングリストのメールにreply

Slide 8

Slide 8 text

● pgsql-hackers ● 該当トピックだけ知りたかった ● 見逃ししたくなかったので全部メールを受け取っていた ● CommitfestのHistoryからこの件だけのメールを受け取っている ○ https://commitfest.postgresql.org/47/2837 pgsql-hackersメール流量が多い

Slide 9

Slide 9 text

● C言語、PostgreSQLのコードベースに知見がない ○ Ruby on Railsからの利用者としてのユースケースしかない ● postgresql-jp Slackで質問 ○ ユースケースを言うだけでも意味があると教えてもらう ● 投稿するが、”Moved to next CF”となる ○ https://www.postgresql.org/message-id/CAKmOUTmDJ_p 9PrEX5vfnS-fz-n8tdYQ6xcApeVrBt5yPkzxgqQ%40mail.gma il.com ○ https://commitfest.postgresql.org/34/2837/ PostgreSQLのコードベース

Slide 10

Slide 10 text

● GitHubでのpull requestベースでの開発 ○ gh pr checkoutなどで、そのcommitがマージされたブランチが手 に入る環境に馴染みがある ● .patchファイルの当て方がよくわからない ○ これは未だに解決していません Patchを当てる方法

Slide 11

Slide 11 text

知りたいこと、したいこと

Slide 12

Slide 12 text

● Patchを当てたい ○ patchコマンドの使い方がよくわからない ● PostgreSQL本体にマージされるためにできることをしたい 知りたいこと・したい事

Slide 13

Slide 13 text

おわり

Slide 14

Slide 14 text

フォローアップ

Slide 15

Slide 15 text

● .patchファイルは`git am`で当てられる ● Commitfest対象のパッチが最新のmasterブランチとのコンフリクト状 況は”PostgreSQL Patch Tester”でわかる ○ http://cfbot.cputube.org ○ リサイクルのようなアイコンはコンフリクトしている ○ http://cfbot.cputube.org/patch_47_2837.log 教えてもらったこと

Slide 16

Slide 16 text

● コンフリクトが続くとCommitfestから除外される可能性もあるので、コン フリクトしていることをpgsql-hackersで伝えるのもいい ● コンフリクトしないcommit hashを教えてもらってローカルでテストし(私 の観点だと)動作が期待するものではなかったことを返信 ○ https://www.postgresql.org/message-id/CAKmOUTn74jTQ Ak0u2FUMsGjgrNugLOwkyic2MPkbOJtcQrufeA%40mail.gm ail.com 教えてもらったこと