diff --git a/sql/create_tables/oastat_create_tables_common.sql b/sql/create_tables/oastat_create_tables_common.sql index 104a7d8..d0ff4a3 100644 --- a/sql/create_tables/oastat_create_tables_common.sql +++ b/sql/create_tables/oastat_create_tables_common.sql @@ -91,7 +91,7 @@ CREATE TABLE oastat_points ( CREATE TABLE oastat_userinfo ( eventNumber SERIAL PRIMARY KEY, - gamenumber integer NOT NULL, + gamenumber bigint NOT NULL, guid character varying(64) NOT NULL, team integer, model character varying(64) NOT NULL, @@ -101,8 +101,8 @@ CREATE TABLE oastat_userinfo ( CREATE TABLE oastat_uservars ( userinfoevent bigint NOT NULL, -- will be used as primary key - key character varying(100) NOT NULL, -- will be used as primary key later - value character varying(256), + thekey character varying(100) NOT NULL, -- will be used as primary key later + thevalue character varying(256), numericvalue float -- if value is a float or int, then the value will also be stored here for easier comparison ); @@ -117,13 +117,13 @@ ALTER TABLE oastat_games ALTER TABLE oastat_players - ADD CONSTRAINT oastat_players_pk PRIMARY KEY (guid); + ADD CONSTRAINT oastat_players_pk pRIMARY KEY (guid); ALTER TABLE oastat_gamecvars - ADD CONSTRAINT oastat_gamecvars_pk PRIMARY KEY (gamenumber,cvar); + ADD CONSTRAINT oastat_gamecvars_pk pRIMARY KEY (gamenumber,cvar); ALTER TABLE oastat_uservars - ADD CONSTRAINT oastat_gamevars_pk PRIMARY KEY (userinfoevent,key); + ADD CONSTRAINT oastat_gamevars_pk pRIMARY KEY (userinfoevent,thekey); -- PRIMARY KEYS END diff --git a/src/oastatstruct.cpp b/src/oastatstruct.cpp index 52ee5c1..1e7efe7 100644 --- a/src/oastatstruct.cpp +++ b/src/oastatstruct.cpp @@ -100,6 +100,13 @@ void OaStatStruct::parseLine(string line) { restOfLine = line; } +void makeLower(string &x) { + for(int i=0; i= 'A' && x[i] <= 'X') + x[i] = x[i]-'A'+'a'; + } +} + map OaStatStruct::GetInfostring(string restOfLine) { map list; int curPos = 0, lastPos = 0; @@ -116,6 +123,7 @@ map OaStatStruct::GetInfostring(string restOfLine) { } else { value = restOfLine.substr(lastPos,curPos-lastPos); //list.insert(pair(key,value)); + makeLower(key); if(key.length()>0) list[key] = value; //cout << key << ":" << value << endl; diff --git a/src/oss2db/init2db.cpp b/src/oss2db/init2db.cpp index f91be3d..199dbc6 100644 --- a/src/oss2db/init2db.cpp +++ b/src/oss2db/init2db.cpp @@ -44,4 +44,16 @@ void Init2Db::process(OaStatStruct oss) { oss.setTimeStamp(arguments["g_timestamp"]); dp->startGame(gametype,mapname,basegame,servername,&oss); + map::iterator it; + for(it = arguments.begin(); it != arguments.end(); it++) { + if( + it->first == "g_gametype" || + it->first == "gamename" || + it->first == "mapname" || + it->first == "sv_hostname" || + it->first == "g_timestamp" + ) + continue; //Skip the ones on the games-table + dp->addGameCvar(it->first,it->second); + } }