pricecharts

track prices of consumer electronics
Log | Files | Refs | README

commit 78c6045d6acea03ade3564c6c8d04885af3ff944
parent c9723551efa4099bfdc26685bc2ea26791c5b26d
Author: Kyle Milz <kyle@getaddrinfo.net>
Date:   Mon,  4 May 2015 23:51:42 -0600

pc_html: let gen_folder do the coarse list sql query

Diffstat:
Mpc_html | 27+++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/pc_html b/pc_html @@ -61,13 +61,13 @@ my $products_fine = qq{select distinct products.manufacturer, products.part_num my $summary = qq{select type, count(*) from products where manufacturer = ? group by type}; -my $coarse_list = qq{select products.manufacturer, count(distinct products.part_num) +my $coarse_sql = qq{select products.manufacturer, count(distinct products.part_num) as count, products.type from products, prices where $part_equality group by products.manufacturer, products.type}; my @key_fields = ("manufacturer", "type"); -my $coarse = $dbh->selectall_hashref($coarse_list, \@key_fields); -generate_folder($stale_list, $types, $products_fine, "Manufacturers", $coarse, $summary); +generate_folder($stale_list, $types, $products_fine, "Manufacturers", $summary, + $coarse_sql, \@key_fields); # # retailers @@ -85,13 +85,13 @@ $products_fine = qq{select distinct prices.manufacturer, prices.part_num $summary = qq{select manufacturer, count(*) from prices where retailer = ? group by manufacturer}; -$coarse_list = qq{select prices.retailer, count(distinct products.part_num) as +$coarse_sql = qq{select prices.retailer, count(distinct products.part_num) as count, products.type from products, prices where $part_equality group by prices.retailer, products.type}; @key_fields = ("retailer", "type"); -$coarse = $dbh->selectall_hashref($coarse_list, \@key_fields); -generate_folder($stale_list, $types, $products_fine, "Retailers", $coarse, $summary); +generate_folder($stale_list, $types, $products_fine, "Retailers", $summary, + $coarse_sql, \@key_fields); # # product types @@ -109,12 +109,13 @@ $products_fine = qq{select distinct prices.manufacturer, prices.part_num $summary = qq{select manufacturer, count(*) from products where type = ? group by manufacturer}; -$coarse_list = qq{select type, count(*) as count, manufacturer from products - group by type, manufacturer}; +$coarse_sql = qq{select products.type, count(distinct products.part_num) as count, + products.manufacturer from products, prices where $part_equality + group by products.type, products.manufacturer}; @key_fields = ("type", "manufacturer"); -$coarse = $dbh->selectall_hashref($coarse_list, \@key_fields); -generate_folder($stale_list, $types, $products_fine, "Types", $coarse, $summary); +generate_folder($stale_list, $types, $products_fine, "Types", $summary, + $coarse_sql, \@key_fields); # # products @@ -249,12 +250,14 @@ sub generate_folder $www->process("summary.tt", $vars, "$name_lc/$it_link.html") or die $www->error(), "\n"; } + print "\b" . scalar @$stale_list . " processed\n" if ($args{v}); + + return unless (@$stale_list); + my $coarse_list = $dbh->selectall_hashref($coarse_sql, $coarse_keys_ref); my $vars = { name => $name, list => $coarse_list }; $www->process("coarse_list.tt", $vars, "$name_lc.html") or die $www->error(), "\n"; - - print "\b" . scalar @$stale_list . " processed\n" if ($args{v}); } sub linkify