diff options
| -rw-r--r-- | postgres/init.sql | 2 | ||||
| -rw-r--r-- | src/database_postgres.cc | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/postgres/init.sql b/postgres/init.sql index d26379c..5fec2ca 100644 --- a/postgres/init.sql +++ b/postgres/init.sql @@ -112,6 +112,6 @@ INSERT INTO CharacterRights(CharacterID, Name) ('CLEANUP_FIELDS'), ('NO_STATISTICS') ) AS R (RightName) - WHERE C.Name = 'Gamemaster'; + WHERE C.Name ILIKE 'Gamemaster%' COLLATE "default"; COMMIT; diff --git a/src/database_postgres.cc b/src/database_postgres.cc index c79e921..8cfc6ab 100644 --- a/src/database_postgres.cc +++ b/src/database_postgres.cc @@ -1828,7 +1828,7 @@ bool GetCharacterProfile(TDatabase *Database, const char *CharacterName, TCharac " LEFT JOIN CharacterRights AS R" " ON R.CharacterID = C.CharacterID" " AND R.Name = 'NO_STATISTICS'" - " WHERE C.Name = $1::TEXT AND R.Right IS NULL"); + " WHERE C.Name = $1::TEXT AND R.Name IS NULL"); if(Stmt == NULL){ LOG_ERR("Failed to prepare query"); return false; @@ -3212,8 +3212,9 @@ bool MergeKillStatistics(TDatabase *Database, int WorldID, int NumStats, TKillSt const char *Stmt = PrepareQuery(Database, "INSERT INTO KillStatistics (WorldID, RaceName, TimesKilled, PlayersKilled)" " VALUES ($1::INTEGER, $2::TEXT, $3::INTEGER, $4::INTEGER)" - " ON CONFLICT DO UPDATE SET TimesKilled = TimesKilled + EXCLUDED.TimesKilled," - " PlayersKilled = PlayersKilled + EXCLUDED.PlayersKilled"); + " ON CONFLICT (WorldID, RaceName)" + " DO UPDATE SET TimesKilled = KillStatistics.TimesKilled + EXCLUDED.TimesKilled," + " PlayersKilled = KillStatistics.PlayersKilled + EXCLUDED.PlayersKilled"); if(Stmt == NULL){ LOG_ERR("Failed to prepare query"); return false; |
