SQLObjectでSELECT DISTINCT columnA FROM tableB

TurboGearsでデフォルトで使われている、O/RマッパーであるSQLObjectで、
表題のような、特定の列の値の一覧を取得する方法です。

直接SQL文を発行する、という手もあると思うのですが、distinctには対応していないように見受けられました。
ので、下記のようにしてみました。パフォーマンスは度外視です。
例では、tableBに対応するモデルクラスを tableBclsとしています。

 set([tableBtmp.columA for tableBtmp in tableBcls.select()])

これを、たとえば 単一選択のコンポーネントであるSingleSelectFieldに突っ込む場合はこのようになります。
例では、値の順で昇順ソートしています。

 SingleSelectField(name="tableB", label=u"tableBのcolumnA",
                   options=sorted(set([tableBtmp.columA for tableBtmp in tableBcls.select()])))