mazrean / genorm

SQL Builder to prevent SQL mistakes using the Golang generics

Home Page:https://mazrean.github.io/genorm-docs/en/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JoinedTable計算アルゴリズムの不備

mazrean opened this issue · comments

現在のアルゴリズムだと

  • 1つのテーブルに2つのテーブルがJoinされる
  • 枝分かれの先にテーブルが2つ以上ある

の条件を満たしたテーブルがJoinedTableに出てこず、エラーになる。

出てこない条件がちょっと違っていた

現在のアルゴリズムでは、1個だけのテーブルがある状態から2テーブルがjoinされたテーブル、3テーブルがjoinされたテーブル、…というふうにjoin後のテーブルを計算している。
この時、2テーブルがjoinされたテーブルに1テーブルをくっつけることで3テーブルがjoinされたテーブルを作っている。
この際にエッジ(ref)の向きに関係なく1テーブルを追加する必要があるが、実際には片方の場合しか追加されていなかった。
このため、多くのjoin後のパターンが抜ける可能性がある。