[seasar-s2dao-dev:655] [Seasar-user:16544]の要望について

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 12月 24日 (水) 13:57:08 JST


中村(taedium)です。

http://ml.seasar.org/archives/seasar-user/2008-December/016545.html
http://ml.seasar.org/archives/seasar-user/2008-December/016547.html
の件ですが、私の考えを書いてみます。

意見ありましたらおねがいします。

> 1点目、count のためのSQLで、
> パフォーマンスのために order by 句を取り除く際の正規表現について、
> AbstractPagingSqlRewriter
> > "order\\s+by\\s+([\\w\\p{L}.`\\[\\]]+(\\s+(asc|desc))?\\s*)(,\\s*[\\w\\p{L}.`\\[\\]]+(\\s+(asc|desc))?)*\\s*$"
> となっているところ、
> > "order\\s+by\\s+([\\w\\p{L}.`\\[\\]]+(\\s+(asc|desc))?\\s*)(,\\s*[\\w\\p{L}.`\\[\\]]+(\\s+(asc|desc))?\\s*)*$"
> にして頂けないかなぁと。

これは確かにそのとおりで修正しようと思います。

> でないと、order by 句が3つ以上のカラムからなる場合に中間部での空白の入り方がシビアになってしまいます。(2個目以降のカンマの前に空白や改行が許されない)
> ホント言うと、order by句に関数使ってる人とか居るので、いっそ「ここはOrderByだからカウントん時は要らないんです」なマークアップが書けると一番良いんですが。

これは、修正不要だと思います。
S2Daoには、もう新機能は追加しないほうがいいですよね。

> 2点目、OracleのRownumを使ったPaging用SQLを作る部分、
> OracleRownumPagingSqlRewriter
> > SELECT * FROM (SELECT ROWNUM AS S2DAO_ROWNUMBER, S2DAO_ORIGINAL_DATA.* FROM 〜
> となっているところを、
> > SELECT * FROM (SELECT S2DAO_ORIGINAL_DATA.*, ROWNUM AS S2DAO_ROWNUMBER FROM 〜
> のように、ROWNUM を後ろにしていただけないかなぁと。

利便性を考えると修正してもいいのかなと思います。
ただ、もしROWNUMが最初に返ってくることを想定したコードがあると
影響しちゃいますね。ちょっと考えにくいですけど。

> (SELECT結果が単一行じゃないと動かないようなのですが、これもintの配列やIntegerのリストで取り出せるともっとうれしい・・・ってそれはS2PagerではなくS2Daoへの要望になりますが・・・まだよく確認していないので。。。)

これは対応できているはず。
-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



seasar-s2dao-dev メーリングリストの案内