GA

2021/04/14

JPUG & MyNA合同勉強会 -PLEASE 2021/4- を開催しました

エイプリルフール12日目にして JPUG & MyNA合同勉強会 -PLEASE 2021/4- を開催しました。

俺はこの手の「ジョークのために尽くされる ~方向を間違った~ 努力」をするのも見るのも大好きなので、とても俺得な楽しい会でした。
最初の流れを作ってくださった坂井さんと、大人げない大人たちのみなさんに超感謝しています :D


イノレカ㌠の坂井さん ( @sakaik )

🐘㌠の澤田さん ( @masahiko_sawada )

  • ターミナルのステータスラインを見て「メモリ32GBだ!」と思った。羨ましい。
  • 動画の冒頭、キーボードをガチャガチャガチャガチャやってるのは私です…。ごめんなさい。。
  • emacs 派だ!
  • yaccをいじって、キーワードとかをいじって、最後に実装を入れる。
  • mmake ( make install かも? ), ppsql になるようになっていたのが衣装的 ( restart masterpgctl あたりにつながっている?
  • 本当にその場その場で PLEASEが実装されていく様は圧巻
  • 「キーワードリストからドキュメントのキーワード一覧を作っている」とかいい仕組み。MySQL 8.0もDoxygenになってそういう風になったりしたかしら?
  • https://youtu.be/Ui2cBMh0AMU?t=949

🐬㌠よりわたし ( @yoku0825 )

  • 澤田さんの環境と打って変わって、 ConoHa VPSの1GBプラン なのでその場でビルドとかはできません :-P
  • やっていることは澤田さんとほぼ同じ流れで、 sql/sql_yacc.yy をいじって sql/lex.h をいじって sql/sql_parse.cc に実装を入れています
    • スレッド変数( SHOW SESSION VARIABLES で見られるアレ) に is_pleased を実装した関係で sql/class.hsql/sys_vars.cc に追加しています
  • 最後に sql_modeSTRICT_PLEASE_MODE を入れるために、再び sql/class.h, sql/sys_vars.ccsql_mode 周りの実装を入れて、 sql/sql_parse.cc の分岐を1段深くして完成
  • 途中 sql_mode の名前(= STRICT_PLEASE_MODE) とフラグ(= MODE_STRICT_PLEASE ) を紐づけるところがどこだか度忘れするという…
  • MySQL 5.6.51にPLEASE句を実装するパッチ
  • カメラの位置をこの時変えていたので、このあと無駄に俺のドアップがちょくちょく出てくるという致命的な失態…

redis㌠からmaruさん ( @maruloop )

  • 「23時に布団に入っていたんだけど今からやるか」
  • MySQLやPostgreSQLはその手の人間がいることは観測できていたけど、他のデータストアにもやっぱりいた!
    • 「5分でやるか」
    • 「PCをつけるまでにいくつかプランが」
  • 初手でパーザーに手を入れることだけを思い付いた俺とは対照的に、いくつかの実装方法を検討されているのがすごい
  • 地味に最後に「redisからも slavereplica に変わっている」と便利情報が

SparkSQL㌠から みやけるぴーさん ( @mikakelp_ )

  • みんな、夜から自分ちの子に実装を始めるのはなぜw (気持ちはわかります)
  • PLEASE句を突っ込んだところの近くのオブジェクトを検索していったらたまたまDISTINCTにたどり着いたので、 PLEASEが無ければ勝手にDISTINCTする という強烈な仕様が生まれた
  • タイムゾーンにモザイクをかけることで、15:02にビルドされたSparkSQLは無事にエイプリルフール当日の産物

Oracle㌠から 篠田さん ( @nori_shinoda )

  • タイトルの「Oracle DatabaseにPLEASEなどいらぬ!」から「負け惜しみです」までの速さw
  • https://www.youtube.com/watch?v=Ui2cBMh0AMU&t=3848s
  • パーサーに手を入れられないのでパースされる前にSQLをほげるSQL Translation Frameworkで先頭以外の部分にPLEASEを入れるのは成功
  • 同じくSQLをほげるQuery Rewriteでは先にパースが走っちゃうのでPLEASEは入れられなかった
  • 「できなかった話をします」と聞いていたんですが出来てる…

SQL Server㌠から小澤さん ( @Masayuki_Ozawa )

  • SE の雑記 の中の人
  • 「普段この手のジョークネタにSQL Serverが加わることは少ないのでちょっと寂しい…」
  • 「この日の仕事が定時に終わったのでこれから実装すれば仲間に入れるかも」
  • 「ソースコードに手を入れられないなら、SQL Serverに流れるT-SQLを直接ネットワークのパケットから書き換えてしまえばいいんじゃないかな」
  • MindFlavor/TDSBridge: TDS Proxy library
  • SQL Serverは知らないキーワードにぶち当たるとまずストアドと見做して検索するという豆知識
  • PLEASEがついていなければWAITFOR DELAYを挟んで、PLEASEが入っていたらストリップしてSQL Serverに投げることでPLEASE句を表現

みなさまありがとうございました!