続)生成除外指定の例外指定

除外テーブルで指定したパターンの一部を除外しない。 - mokkouyou2001の日記
の続き


生成除外指定のうち、特定テーブルだけは生成させたい。
と思ったのでdbfluteに手を入れてみた。


ちなみに、ついでに正規表現指定も出来るようにしよう!ということで、
正規表現だけ入れてみる。


他と同じように、テーブル名は小文字で評価するが、
正規表現は、\d、\Dを区別するために、小文字化しない。
CASE_INSENSITIVE指定もよいけど・・・
場合によりけりなのでやめておく。


そういった場合、
指定時に埋め込みフラグ表現で対応する。
regexp:(?i:^L.*)
こんな感じ。
を想定。


テストはばっちり。さて実行・・・


なんか、実際に正規表現を指定すると、たいがいの場合において

java.lang.IllegalStateException: Final remainderString must be empty string:

となる。
正規表現と、・・・??
list:{}とかは何記法なんだろ?
なんとなく使っているけど・・・

まぁいいや。
とりあえず、記述に関しては色々相性が悪いようだ・・・


除外の除外

さてさて気を取り直して。


やりたいことを整理するとこんな感じ
A={torque.table.target.listによる(except以外の)指定}
B={torque.table.target.listによるexcept指定}
C={torque.table.except.listによる(except以外の)指定}
D={torque.table.except.listによるexcept指定}


また、targetを指定した場合、exceptは評価されなかったのも対応。


結果=(A-B)-(C-D)
のようなイメージの集合演算


注意点・・・
Dに一致するからといって、A-Bに含まれない場合、Dは含まれない。
A-B-C+Dという展開は出来ないので注意


単体も一応作ったけど、乗っけるのもあれなんで・・・
まぁこの辺をいじればこういうことも出来るよ。
といったちょっとした話でした。