From: Ian Jackson Date: Sat, 26 Sep 2009 18:25:50 +0000 (+0100) Subject: WIP per-island-pair trades X-Git-Tag: 5.0^2~101 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=commitdiff_plain;h=b8cca9eaa66c5f8911d45523bade38fa0a6d17e1 WIP per-island-pair trades --- diff --git a/yarrg/rsvalue.c b/yarrg/rsvalue.c index 6778523..a4e70f6 100644 --- a/yarrg/rsvalue.c +++ b/yarrg/rsvalue.c @@ -2,51 +2,38 @@ #include "rscommon.h" +static void ipair_gettrades(int si, int di) { + char *stmt= masprintf + ("SELECT\n" + " sell.price src_price,\n" + " sum(sell.qty) src_qty,\n" + " buy.price dst_price,\n" + " sum(buy.qty) dst_qty,\n" + " commods.commodid commodid,\n" + " commods.unitmass unitmass,\n" + " commods.unitvolume unitvolume\n" + " FROM commods\n" + " JOIN sell ON commods.commodid = sell.commodid\n" + " JOIN buy ON commods.commodid = buy.commodid\n" + " WHERE buy.price > sell.price\n" + " AND sell.islandid=%d\n" + " AND buy.islandid=%d\n" + " GROUP BY commods.commodid, sell.price, buy.price\n", + si, di); + + printf("SQL\n[\n%s\n]\n", stmt); + + free(stmt); +} + void value_route(int nislands, const int *islands) { - char stmt[1024+80*nislands+40*nislands*nislands], *sp; int s,d; - sp= stmt; - sp += sprintf(sp, - "SELECT\n" - " sell.islandid src_id,\n" - " sell.price src_price,\n" - " sum(sell.qty) src_qty,\n" - " buy.islandid dst_id,\n" - " buy.price dst_price,\n" - " sum(buy.qty) dst_qty,\n" - " commods.commodid commodid,\n" - " commods.unitmass unitmass,\n" - " commods.unitvolume unitvolume,\n" - " dist dist,\n" - " buy.price-sell.price unitprofit\n" - " FROM commods\n" - " JOIN sell ON commods.commodid = sell.commodid\n" - " JOIN buy ON commods.commodid = buy.commodid\n" - " JOIN dists ON aiid = sell.islandid AND biid = buy.islandid\n" - " WHERE buy.price > sell.price\n" - " AND ("); for (s=0; s