MySQLリリースノートでわいわい言う勉強会 8.0.24(Myリノベ8.0.24) を開催しました。
MySQL 8.0.24 はMySQL 8.0シリーズの「メンテナンスリリースらしいメンテナンスリリース」で、新機能や機能の変更等は比較的おとなしめだったのですが、それでも参加者それぞれの視点から興味深い変更点を聞かせてもらうことができました。
MySQL 8.0.24 の Change log:
MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.24 (2021-04-20, General Availability)
MySQL 8.0.24 でのパラメタ類の変更点(サンプル公開):
MySQL Parameters Dashboard (8.0.24)
エラーメッセージが増えた
@mita2 さんからの発表。MySQLの接続が切れてしまった時の原因は様々ですが、そのエラーメッセージが今までよりもきめ細かく表示されるようになったというお話です(エラーコード 04031 の「アクティブじゃないから切られちゃったよ」の新設など。 wait_timeout や interactive_timeout あたりの設定が影響)。
speakerdeck.com
即座に @tom__bo さんが、本当に 4031 が返ってくることを、パケットを覗いて確認! このインタラクティブさが、いいですね。
interactive_timeoutだけど4031が返ってくるようになってた pic.twitter.com/yWJE0fahHm
— :tom__bo: (@tom__bo) 2021年5月7日
DBUG_ASSERT が assert に
「リリースノートの話ではないのですが・・」と前置きしてお話された @NayutaYanagisaw さん。一瞬「ん??リリースノートではないとは何事?」と思ったのですが、ソースコードの話でした。もっと深い!(笑)
MySQL 8.0.24 では、今までソースコード中で使われていた DBUG_ASSERT マクロが、すべて 標準の assert に置き換えられたとのこと。へぇぇぇ。少し前の話ですが MySQL 8.0.18 の時には、DBUG_ENTER と DBUG_RETURN (関数の入り口と出口に書かれていた)が、DBUG_TRACE(関数の入り口だけに書けば良い)に置き換わったとか。 特に 8.0.24 のほうの変更はリリースノートにも書かれていない、ソースコードを追っている人しか知らないような貴重な情報でした。
詳しくは以下のブログに。
nayuta-yanagisawa.hatenablog.com
Spatial(GIS)関数の追加
私から。
ST_LineInterpolatePoint(), ST_LineInterpolatePoints(), ST_PointAtDistance() の各関数、ST_Collect() 関数、そして、CAST() や CONVERT()関数の spatilal 対応について紹介しました。最初の3つの関数は私の以下のブログで紹介しています。それ以外の関数は追々、書こうと思います。
MySQL8.0.24の新しいGIS関数(1)~LINESTRINGの経路点を求める~ - sakaikの日々雑感~(T)編
MySQL8.0.24の新しいGIS関数(2)~ST_LineInterpolatePoints()を試す - sakaikの日々雑感~(T)編
個人的印象として、今回 CAST() 関数に色々加わっていて、このへん、問題動作の巣窟になりそうな予感がしています。大丈夫かな。。
MySQL 8.0.25
私から。次のバージョンナンバーである MySQL 8.0.25。緊急リリースとして定期(次回7月)よりも前に出るんじゃないの?という予測について紹介しました。
MySQLのマニュアル中には「この機能は 8.0.xxで追加されました」のようにバージョン番号が入っている部分がいくつもあります。将来リリースされるものについても(おそらく内部での開発が確定されたタイミングで)マニュアルに掲載されているのですが、先週のあるタイミングで、8.0.25についての言及がすべてひとつずつ後ろにずれる修正がなされたのです。その結果、現在のマニュアル中に MySQL 8.0.25 についての言及はゼロ。というのが左側の表で示していること。
そして、このイベントの当日に加えられた修正が右のもの。MySQL 8.0.27 に関する言及の多くが 8.0.24 に変更されたものです。これは何かというと、そのバージョンで加えられた機能のほかに、実行例やファイル名などにもバージョン番号が含まれています。一昨日までのマニュアルではこれらのバージョンは「マニュアル中の最先端」のもの、つまり 8.0.27 となっていました。これが、一気に「現在リリースされている最新バージョン」に変更されたという事です。 おそらくマニュアルの元ファイルでは {CURRENT_VERSION} みたいな記述になっていて、その根拠となる数字(のポリシー)が変更になったのかなと想像しています。
その他、いろいろな話を皆さんに教えていただきました。今回も勉強になり、皆さんありがとうございました!
今後について
MySQL 8.0.20 から5回開催してきた 「リリースノートでわいわい言う勉強会」ですが、少し大きめに変更をしてみようと考えています。
(1)幹事を持ち回りに: 初回からずっと私が企画/進行役をやらせてもらっていましたが、率直に言って自分の「場作り」の限界を感じています。もっと自由に発言しあう場にしたいのに、「コンテンツ作り」を意識してか、どうしても場をカタくしてしまっている認識です。そこで、皆さんにお願いです。「次回以降、誰か幹事やってください!」
いろんな人の、いろんな進行方法があって良いと思っていて、必ずしも初回から「大成功」する必要もないですから、あなたの思う「リリースノート勉強会の空気」を目指して、トライしてみていただけたらと思います。幹事というと少し固そうに感じる人もいるかもしれませんが、私の感覚としては「日直」または「班長さん」くらいの感覚です。リノベの場、リノベの雰囲気、リノベで得られる情報とかが好きな人は、ぜひ協力していただけたらと願います。ぐるぐる回るようになってきたら、私も「ときどきやる班長さんのひとり」として進行に手を挙げたいと思います。
細かいことは個別相談ですが、最低限「日程決定+当日進行」をしていただければ。 connpassのベース準備、会場(Zoom)用意は、こちらでやります。 今回の会の中では唐突だったこともあってか、次回幹事は決まりませんでしたので、またリリースが近くなった頃にTwitter の #mysql_jp で呼びかける予定です。
(2)動画の公開をやめます: ごく少数の方から公開動画に感謝の言葉もいただいていますが、絶対数として手間に見合う閲覧数を獲得できない状態で、分かりやすく言えばコスパが悪い、あるいは、苦労が報われないない状態。ということで、今回を最後に、リリースノート勉強会の動画公開は行わないことにします。(今回ぶん、撮れていた動画のサイズがなにかおかしいのですが、まぁ一応公開することにします)
動画の公開をしないことで、幹事(班長さん、日直さん)をやりやすくなるのかなという面も期待しているので、(1)(2)併せて、何卒よろしくお願い申し上げる次第です。
当日動画:
www.youtube.com