MySQL 8.0.24で予定されているCAST()の拡張はGIS機能を大きく進化させる

 最近、MySQLのリファレンスマニュアルの差分を追いかけているのですが、本日の更新で、Spatial(GIS)機能に注目している人には非常に大きな機能に関する記述が追加されました。CAST() 関数と CONVERT() 関数の spatial への拡張です。

MySQL :: MySQL 8.0 Reference Manual :: 12.11 Cast Functions and Operators

 あくまでも CAST() 関数ですので、複数行のデータを1つにまとめたり、1つの(たとえばLINESTRINGの)データを複数の(例えばPOINT)データにするものではないと考えられますが、CAST() 関数の 8.0.24で予定されている拡張によって、Spatialの各型どうしの変換がやりやすくなることは間違いないでしょう。強調しておきますが、数日前にリリースされた MySQL 8.0.23 ではなく、(通常どおりなら)2021年4月中旬にリリースされる予定の MySQL 8.0.24 でのお話です。

 今回のマニュアルへの追加記述によると、変換できるのは以下のもののようです。

singleな型からの変換:
f:id:sakaik:20210123171904p:plain

MULTIな型からの変換:
f:id:sakaik:20210123171933p:plain

一枚の図にあらわしたもの:
f:id:sakaik:20210123171943p:plain


当然、変換可能なもののみの動作するものと思いますが(たとえば MULTIPOINT から POINT への変換は「MULTI POINT型の中にただひとつの点だけがある場合」などの条件)、色々とドキュメントにも細かい事項が書かれているようですので、後ほどここに追記したいと思います。