エイプリルフール12日目にして JPUG & MyNA合同勉強会 -PLEASE 2021/4- を開催しました。
俺はこの手の「ジョークのために尽くされる ~方向を間違った~ 努力」をするのも見るのも大好きなので、とても俺得な楽しい会でした。
最初の流れを作ってくださった坂井さんと、大人げない大人たちのみなさんに超感謝しています :D
イノレカ㌠の坂井さん ( @sakaik )
- よく読むと実は「いのれちから㌠」の坂井さん
- PLEASE愛好家
坂井さん自身の「エイプリルフールに対するポリシー」を紹介されていましたが、とても坂井さんらしい気遣いにあふれていて良いなあと思いました。参考にしよう。
🐘㌠の澤田さん ( @masahiko_sawada )
- ターミナルのステータスラインを見て「メモリ32GBだ!」と思った。羨ましい。
- 動画の冒頭、キーボードをガチャガチャガチャガチャやってるのは私です…。ごめんなさい。。
emacs
派だ!- yaccをいじって、キーワードとかをいじって、最後に実装を入れる。
m
でmake
(make install
かも? ),p
でpsql
になるようになっていたのが衣装的 (restart master
もpgctl
あたりにつながっている?- 本当にその場その場で 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.h
とsql/sys_vars.cc
に追加しています
- スレッド変数(
- 最後に
sql_mode
にSTRICT_PLEASE_MODE
を入れるために、再びsql/class.h
,sql/sys_vars.cc
にsql_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からも
slave
がreplica
に変わっている」と便利情報が
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句を表現
みなさまありがとうございました!