From: Steinar H. Gunderson Date: Tue, 21 Aug 2007 04:28:51 +0000 (+0200) Subject: Remove some really long-standing silliness: If we have no idea about width X-Git-Url: https://git.sesse.net/?p=pr0n;a=commitdiff_plain;h=82b2e541984df6f697a5a73f2faaa99e40dfc832 Remove some really long-standing silliness: If we have no idea about width or height, we used to have -1 as a default, and have the field NOT NULL. SQL has a perfectly good value for "unknown data" -- it's called NULL. Make upgrade SQL, and clean up the few code places that was used to the field being -1. --- diff --git a/perl/Sesse/pr0n/Common.pm b/perl/Sesse/pr0n/Common.pm index e929b65..dcaf244 100644 --- a/perl/Sesse/pr0n/Common.pm +++ b/perl/Sesse/pr0n/Common.pm @@ -356,7 +356,7 @@ sub ensure_cached { my ($r, $filename, $id, $dbwidth, $dbheight, $infobox, $xres, $yres, @otherres) = @_; my $fname = get_disk_location($r, $id); - unless (defined($xres) && ($xres < $dbheight || $yres < $dbwidth || $dbwidth == -1 || $dbheight == -1 || $xres == -1)) { + unless (defined($xres) && ($xres < $dbheight || $yres < $dbwidth || !defined($dbwidth) || !defined($dbheight) || $xres == -1)) { return ($fname, 0); } @@ -405,7 +405,7 @@ sub ensure_cached { my $height = $img->Get('rows'); # Update the SQL database if it doesn't contain the required info - if ($dbwidth == -1 || $dbheight == -1) { + if (!defined($dbwidth) || !defined($dbheight)) { $r->log->info("Updating width/height for $id: $width x $height"); update_image_info($r, $id, $width, $height); } diff --git a/perl/Sesse/pr0n/Index.pm b/perl/Sesse/pr0n/Index.pm index 2c93c7c..74d5329 100644 --- a/perl/Sesse/pr0n/Index.pm +++ b/perl/Sesse/pr0n/Index.pm @@ -199,7 +199,9 @@ sub handler { my @files = (); while (my $ref = $q->fetchrow_hashref()) { - push @files, [ $ref->{'event'}, $ref->{'filename'}, $ref->{'width'}, $ref->{'height'} ]; + my $width = defined($ref->{'width'}) ? $ref->{'width'} : -1; + my $height = defined($ref->{'height'}) ? $ref->{'height'} : -1; + push @files, [ $ref->{'event'}, $ref->{'filename'}, $width, $height ]; } for my $i (0..$#files) { @@ -366,7 +368,7 @@ sub handler { } } - if ($ref->{'width'} != -1 && $ref->{'height'} != -1) { + if (defined($ref->{'width'}) && defined($ref->{'height'})) { my $width = $ref->{'width'}; my $height = $ref->{'height'}; diff --git a/sql/upgrade-v2.50.sql b/sql/upgrade-v2.50.sql index ad63bdf..0d44ba3 100644 --- a/sql/upgrade-v2.50.sql +++ b/sql/upgrade-v2.50.sql @@ -16,3 +16,11 @@ CREATE TABLE tags ( CREATE INDEX tags_tag ON tags ( tag ); GRANT SELECT,INSERT,DELETE ON TABLE tags TO pr0n; + +-- width/height -1 => NULL +ALTER TABLE images ALTER COLUMN width DROP NOT NULL; +ALTER TABLE images ALTER COLUMN height DROP NOT NULL; +ALTER TABLE images ALTER COLUMN width SET DEFAULT NULL; +ALTER TABLE images ALTER COLUMN height SET DEFAULT NULL; +UPDATE images SET width=NULL,height=NULL WHERE width=-1 OR height=-1; +ALTER TABLE images ADD CONSTRAINT width_height_nullity CHECK ((width IS NULL) = (height IS NULL));