chiark / gitweb /
Fix up nislands; use BEGIN
[ypp-sc-tools.main.git] / yarrg / rsvalue.c
index b17693561552f879bed56cb76704dffe96f1fa60..8bdddaeb9dbb1a2bc221cc6e8453226887efae90 100644 (file)
@@ -2,7 +2,7 @@
 
 #include "rscommon.h"
 
-//DEBUG_DEFINE_SOME_DEBUGF(sql,sql_dprintf);
+DEBUG_DEFINE_DEBUGF(value);
 
 typedef struct {
   int commodid, src_price, src_qty, dst_price, dst_qty;
@@ -20,7 +20,7 @@ typedef struct {
   TradesBlock *trades;
 } IslandPair;
 
-int nislands=100;
+int nislands;
 IslandPair ***ipairs; /* ipairs[sislandid][dislandid] */
 
 static IslandPair *ipair_get(int si, int di) {
@@ -80,6 +80,16 @@ void value_route(int nislands, const int *islands) {
 }
 
 void setup_value(void) {
+  sqlite3_stmt *sst;
+
+  SQL_MUST( sqlite3_prepare(db, "SELECT max(islandid) FROM islands",
+                           -1,&sst,0) );
+  assert( SQL_STEP(sst) );
+  nislands= sqlite3_column_int(sst,0);
+  nislands++;
+  sqlite3_finalize(sst);
+  debugf("VALUE nislands=%d\n",nislands);
+
   SQL_MUST( sqlite3_prepare(db,
      "SELECT\n"
      " sell.commodid           commodid,\n"