From df48c469975515876988677ed044cd716d83d3c1 Mon Sep 17 00:00:00 2001 From: "jocuri%softhome.net" <> Date: Sat, 11 Dec 2004 08:05:41 +0000 Subject: Patch for bug 269398: request.cgi should not fail with error in SQL when no products are available for the user; patch by Frédéric Buclin , r=vladd, a=justdave. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- globals.pl | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'globals.pl') diff --git a/globals.pl b/globals.pl index 677047fe2..02a4f8fb4 100644 --- a/globals.pl +++ b/globals.pl @@ -634,21 +634,23 @@ sub GetSelectableProductHash { PushGlobalSQLState(); foreach my $table (@tables) { - # Why oh why can't we standardize on these names?!? - my $fld = ($table eq "components" ? "name" : "value"); - - my $query = "SELECT $fld, product_id FROM $table WHERE product_id IN " . - "(" . join(",", keys %products) . ") ORDER BY $fld"; - SendSQL($query); - my %values; my %values_by_product; - while (MoreSQLData()) { - my ($name, $product_id) = FetchSQLData(); - next unless $name; - $values{$name} = 1; - push @{$values_by_product{$products{$product_id}}}, $name; + if (scalar(keys %products)) { + # Why oh why can't we standardize on these names?!? + my $fld = ($table eq "components" ? "name" : "value"); + + my $query = "SELECT $fld, product_id FROM $table WHERE product_id " . + "IN (" . join(",", keys %products) . ") ORDER BY $fld"; + SendSQL($query); + + while (MoreSQLData()) { + my ($name, $product_id) = FetchSQLData(); + next unless $name; + $values{$name} = 1; + push @{$values_by_product{$products{$product_id}}}, $name; + } } $selectables->{"legal_$table"} = [sort keys %values]; -- cgit v1.2.3-24-g4f1b