Open s-yata opened 9 years ago
参照型のカラム Ref があり,参照先に Name という Text のカラムがあるとき, Ref.Name == "Mike" のような式を評価する方法に関する Issue です.
Ref
Name
Ref.Name == "Mike"
現在の実装では, Ref.Name を取ってきて "Mike" と等しいかどうかを調べます.
Ref.Name
"Mike"
この式を評価するとき, "Mike" と対応する参照先の行 ID を取得できれば, Ref == ID という式に変換できます. すると, Text の比較から Int になり,効率化されそうです.
Ref == ID
難しいところは,行 ID の取得に時間がかかると厳しいこと,クエリに該当する行 ID がたくさんあると効率が悪いことなどです. 入力されるレコードが少なければ,単純に評価した方が効率良さそうなことも難しさにつながります.
というわけで,以下のように進めてみようと思います.
直接的にはつながりませんが,少し関連のある Issue があります.
Ref.Name == "Mike" のような式は,参照先に該当する行が存在しなければ,定数(false)に置き換えられます.
false
自動的に切り替える案と手動で選択できるようにする案があります. ハイブリッドとして,明らかに切り替えた方が良いときは自動,それ以外は手動という案もあるかと思います.
テストのことを考えれば,手動でできた方が便利そうです. デフォルトでは自動選択にして,必要なときは手動選択というのが理想的です.
概要
参照型のカラム
Ref
があり,参照先にName
という Text のカラムがあるとき,Ref.Name == "Mike"
のような式を評価する方法に関する Issue です.現在の実装では,
Ref.Name
を取ってきて"Mike"
と等しいかどうかを調べます.この式を評価するとき,
"Mike"
と対応する参照先の行 ID を取得できれば,Ref == ID
という式に変換できます. すると, Text の比較から Int になり,効率化されそうです.難しいところは,行 ID の取得に時間がかかると厳しいこと,クエリに該当する行 ID がたくさんあると効率が悪いことなどです. 入力されるレコードが少なければ,単純に評価した方が効率良さそうなことも難しさにつながります.
というわけで,以下のように進めてみようと思います.
Ref.Name == "Mike"
とRef == ID
で差がどのくらいになるかを確認します.直接的にはつながりませんが,少し関連のある Issue があります.
79