diff options
author | Yorhel <git@yorhel.nl> | 2010-12-17 14:39:41 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2010-12-17 14:48:04 +0100 |
commit | 50cfb305796d1d115c408feefbe39fddf7615166 (patch) | |
tree | c56da35435063a11b79837dfd8821f6a63719271 /lib/VNDB/DB | |
parent | eaf9e895daab98eb122f2570bb409794b3257c99 (diff) |
Don't allow NULL for rr.minage and use -1 for unknown
This can be seen as a partial revert of
0a4f97f0186d6941a4cab2e3bd05201f1fed1441.
I used to think using NULL for special values is more "correct" in
database terms. But in the end I guess I should be aiming for whatever
solution is easier. Both are "correct" in a sense anyway.
Diffstat (limited to 'lib/VNDB/DB')
-rw-r--r-- | lib/VNDB/DB/Releases.pm | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/lib/VNDB/DB/Releases.pm b/lib/VNDB/DB/Releases.pm index b0fb9a89..ffffb2a6 100644 --- a/lib/VNDB/DB/Releases.pm +++ b/lib/VNDB/DB/Releases.pm @@ -32,6 +32,7 @@ sub dbReleaseGet { defined $o{type} ? ( 'rr.type = ?' => $o{type} ) : (), defined $o{date_before} ? ( 'rr.released <= ?' => $o{date_before} ) : (), defined $o{date_after} ? ( 'rr.released >= ?' => $o{date_after} ) : (), + defined $o{minage} ? ( 'rr.minage IN(!l)' => [ ref $o{minage} ? $o{minage} : [$o{minage}] ] ) : (), defined $o{resolution} ? ( 'rr.resolution IN(!l)' => [ ref $o{resolution} ? $o{resolution} : [$o{resolution}] ] ) : (), defined $o{voiced} ? ( 'rr.voiced IN(!l)' => [ ref $o{voiced} ? $o{voiced} : [$o{voiced}] ] ) : (), defined $o{ani_story} ? ( 'rr.ani_story IN(!l)' => [ ref $o{ani_story} ? $o{ani_story} : [$o{ani_story}] ] ) : (), @@ -47,16 +48,6 @@ sub dbReleaseGet { 'rr.id IN(SELECT irm.rid FROM releases_media irm JOIN releases ir ON ir.latest = irm.rid WHERE irm.medium IN(!l))' => [ ref $o{med} ? $o{med} : [ $o{med} ] ] ) : (), ); - # TODO: don't allow NULL for rr.minage after all, since this could be a lot easier... - if(exists $o{minage}) { - my @m = ref $o{minage} ? @{$o{minage}} : ($o{minage}); - my @w = ( - grep(!defined $_ || $_ == -1, @m) ? 'rr.minage IS NULL' : (), - grep(defined $_ && $_ != -1, @m) ? 'rr.minage IN(!s)' : () - ); - push @where, '('.join(' OR ', @w).')', [ grep defined $_ && $_ != -1, @m ]; - } - if($o{search}) { for (split /[ -,._]/, $o{search}) { s/%//g; |