]> git.stg.codes - stg.git/commitdiff
Merge branch 'master' into full-month-stats
authorMaxim Mamontov <faust.madf@gmail.com>
Fri, 26 Jul 2013 18:53:47 +0000 (21:53 +0300)
committerMaxim Mamontov <faust.madf@gmail.com>
Fri, 26 Jul 2013 18:53:47 +0000 (21:53 +0300)
Conflicts:
projects/stargazer/plugins/store/postgresql/postgresql_store_users.cpp

1  2 
projects/stargazer/plugins/store/postgresql/postgresql_store.h
projects/stargazer/plugins/store/postgresql/postgresql_store_users.cpp

index 654de1467674cb79c352e0b2901d094a33d3b31e,72a2c22c01c951fbd7bed410f12189036456776b..4585bbdf30146adba3247cc778f6c7a375d44501
  #include "stg/store.h"
  #include "stg/logger.h"
  
 -// Minimal DB version is 5
 -// Recommended DB version is 6 (support FreeMb logging on disconnects)
 -#define DB_MIN_VERSION 5
 +// Minimal DB version is 7
 +// Recommended DB version is 7 (support full month stats)
 +#define DB_MIN_VERSION 7
  
- extern "C" STORE * GetStore();
  class POSTGRESQL_STORE : public STORE {
  public:
      POSTGRESQL_STORE();
index df802eea9f00bae0657daab3d93c61e7485923c5,0722cc4c8d76671982b60fcf2dd948a7ba8d7746..f8eba5c12a8d957e002ef17ca1b0ac8c2f205b77
@@@ -623,14 -640,16 +625,16 @@@ if (EscapeString(elogin)
      return -1;
      }
  
- std::stringstream query;
- query << "SELECT pk_user, cash, free_mb, "
-             "last_activity_time, last_cash_add, "
-             "last_cash_add_time, passive_time "
-          "FROM tb_users "
-          "WHERE name = '" << elogin << "'";
+     {
+     std::ostringstream query;
 -    query << "SELECT cash, free_mb, "
++    query << "SELECT pk_user, cash, free_mb, "
+                 "last_activity_time, last_cash_add, "
+                 "last_cash_add_time, passive_time "
+              "FROM tb_users "
+              "WHERE name = '" << elogin << "'";
  
- result = PQexec(connection, query.str().c_str());
+     result = PQexec(connection, query.str().c_str());
+     }
  
  if (PQresultStatus(result) != PGRES_TUPLES_OK)
      {
@@@ -658,32 -677,32 +662,35 @@@ if (tuples != 1
      return -1;
      }
  
- std::stringstream tuple;
- tuple << PQgetvalue(result, 0, 0) << " ";
- tuple << PQgetvalue(result, 0, 1) << " ";
- tuple << PQgetvalue(result, 0, 2) << " ";
- stat->lastActivityTime = TS2Int(PQgetvalue(result, 0, 3));
- tuple << PQgetvalue(result, 0, 4) << " ";
- stat->lastCashAddTime = TS2Int(PQgetvalue(result, 0, 5));
- tuple << PQgetvalue(result, 0, 6);
- PQclear(result);
 +uint32_t uid;
 +
- tuple >> uid
-       >> stat->cash
-       >> stat->freeMb
-       >> stat->lastCashAdd
-       >> stat->passiveTime;
+     {
+     std::stringstream tuple;
+     tuple << PQgetvalue(result, 0, 0) << " ";
+     tuple << PQgetvalue(result, 0, 1) << " ";
 -    stat->lastActivityTime = TS2Int(PQgetvalue(result, 0, 2));
 -    tuple << PQgetvalue(result, 0, 3) << " ";
 -    stat->lastCashAddTime = TS2Int(PQgetvalue(result, 0, 4));
 -    tuple << PQgetvalue(result, 0, 5) << " ";
++    tuple << PQgetvalue(result, 0, 2) << " ";
++    stat->lastActivityTime = TS2Int(PQgetvalue(result, 0, 3));
++    tuple << PQgetvalue(result, 0, 4) << " ";
++    stat->lastCashAddTime = TS2Int(PQgetvalue(result, 0, 5));
++    tuple << PQgetvalue(result, 0, 6) << " ";
  
query.str("");
    PQclear(result);
  
- query << "SELECT dir_num, upload, download "
-          "FROM tb_stats_traffic "
-          "WHERE fk_user = " << uid;
 -    tuple >> stat->cash
++    tuple >> uid
++          >> stat->cash
+           >> stat->freeMb
+           >> stat->lastCashAdd
+           >> stat->passiveTime;
+     }
  
- result = PQexec(connection, query.str().c_str());
+     {
+     std::ostringstream query;
+     query << "SELECT dir_num, upload, download "
+              "FROM tb_stats_traffic "
 -             "WHERE fk_user IN (SELECT pk_user FROM tb_users WHERE name = '" << elogin << "') AND "
 -                   "DATE_TRUNC('month', stats_date) = DATE_TRUNC('month', CAST('" << Int2TS(stgTime) << "' AS TIMESTAMP))";
++             "WHERE fk_user = " << uid;
+     result = PQexec(connection, query.str().c_str());
+     }
  
  if (PQresultStatus(result) != PGRES_TUPLES_OK)
      {