便乗してSpark SQLにもPLEASE句を実装したら既に4/2だった

UTCならまだ4/1なのでセーフとする。

4/1ということもあり,こちらの記事で「MySQレ」のPLEASE句が紹介されました。

sakaik.hateblo.jp

記事中に追記されているように,様々にDBMS向けに実際に実装が進んでいる(!!)ようなので,Spark SQLにも実装してみました。

f:id:miyakelp:20210402074906p:plain

とりあえず

  • SELECTの先頭にPLEASEを許容する
  • PLEASEがない無礼なクエリは勝手にDISTINCTする

というシンプルな(?)ものにしてみました。diffはこちらです。 https://gist.github.com/miyakelp/a89c1df9e11000b709da6d0a4f372175

ANTLRのルールにPLEASEを追加して,パース処理のDISTINCTの判定条件に追加しただけのお手軽実装です。

コンパイルに時間を要することもあり少々遅刻してしまいましたが,MySQレの機能をSparkでも使えるようにしてみたお話でした。

最後に,SparkジョブをSubmitする際は感謝の気持ちを忘れないことを誓って終わりたいと思います。