質問: 再帰CTE (with recursive) について調べていて、これは SQL99 の規格で標準が定められているらしいですが、その厳密な仕様はどうなっているのか、気になりました。 with recursive の規格(とくに、どういった構文がゆるされるのか)ないし、これについてまとまった資料などはありませんでしょうか。
回答: の、 `7.13 ` にいろいろ書いてあります。構造としては、 * with recursive で定義された場合、以下のような制約を見たさなければならない + 再帰は線形(linear)でなければならない に集約されるようだ、と思っています。ここで言う再帰が線形である、というのはどういうことかというと、各 with の query expression に対して、それが参照するその他 with 参照名のうち、同じ循環した参照グラフの中にいる with 参照名は、高々1つである。プラス、線形にループを回すために、 with 項目の query expression が従わなければならい条件がひたすら続く、、、みたいな構造です。 一つ注目するべきは、この仕様を自分が読む限りでは、相互循環再帰は、それが linear である限り、認められているようだ、ということです。