| 1 | #include "connection.h" |
| 2 | |
| 3 | IDbConnection::IDbConnection(const char *pPrefix) |
| 4 | { |
| 5 | str_copy(dst&: m_aPrefix, src: pPrefix); |
| 6 | } |
| 7 | |
| 8 | void IDbConnection::FormatCreateRace(char *aBuf, unsigned int BufferSize, bool Backup) const |
| 9 | { |
| 10 | str_format(buffer: aBuf, buffer_size: BufferSize, |
| 11 | format: "CREATE TABLE IF NOT EXISTS %s_race%s (" |
| 12 | " Map VARCHAR(128) COLLATE %s NOT NULL, " |
| 13 | " Name VARCHAR(%d) COLLATE %s NOT NULL, " |
| 14 | " Timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, " |
| 15 | " Time FLOAT DEFAULT 0, " |
| 16 | " Server CHAR(4), " |
| 17 | " cp1 FLOAT DEFAULT 0, cp2 FLOAT DEFAULT 0, cp3 FLOAT DEFAULT 0, " |
| 18 | " cp4 FLOAT DEFAULT 0, cp5 FLOAT DEFAULT 0, cp6 FLOAT DEFAULT 0, " |
| 19 | " cp7 FLOAT DEFAULT 0, cp8 FLOAT DEFAULT 0, cp9 FLOAT DEFAULT 0, " |
| 20 | " cp10 FLOAT DEFAULT 0, cp11 FLOAT DEFAULT 0, cp12 FLOAT DEFAULT 0, " |
| 21 | " cp13 FLOAT DEFAULT 0, cp14 FLOAT DEFAULT 0, cp15 FLOAT DEFAULT 0, " |
| 22 | " cp16 FLOAT DEFAULT 0, cp17 FLOAT DEFAULT 0, cp18 FLOAT DEFAULT 0, " |
| 23 | " cp19 FLOAT DEFAULT 0, cp20 FLOAT DEFAULT 0, cp21 FLOAT DEFAULT 0, " |
| 24 | " cp22 FLOAT DEFAULT 0, cp23 FLOAT DEFAULT 0, cp24 FLOAT DEFAULT 0, " |
| 25 | " cp25 FLOAT DEFAULT 0, " |
| 26 | " GameId VARCHAR(64), " |
| 27 | " DDNet7 BOOL DEFAULT FALSE, " |
| 28 | " PRIMARY KEY (Map, Name, Time, Timestamp, Server)" |
| 29 | ")" , |
| 30 | GetPrefix(), Backup ? "_backup" : "" , |
| 31 | BinaryCollate(), MAX_NAME_LENGTH_SQL, BinaryCollate()); |
| 32 | } |
| 33 | |
| 34 | void IDbConnection::FormatCreateTeamrace(char *aBuf, unsigned int BufferSize, const char *pIdType, bool Backup) const |
| 35 | { |
| 36 | str_format(buffer: aBuf, buffer_size: BufferSize, |
| 37 | format: "CREATE TABLE IF NOT EXISTS %s_teamrace%s (" |
| 38 | " Map VARCHAR(128) COLLATE %s NOT NULL, " |
| 39 | " Name VARCHAR(%d) COLLATE %s NOT NULL, " |
| 40 | " Timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, " |
| 41 | " Time FLOAT DEFAULT 0, " |
| 42 | " ID %s NOT NULL, " // VARBINARY(16) for MySQL and BLOB for SQLite |
| 43 | " GameId VARCHAR(64), " |
| 44 | " DDNet7 BOOL DEFAULT FALSE, " |
| 45 | " PRIMARY KEY (Id, Name)" |
| 46 | ")" , |
| 47 | GetPrefix(), Backup ? "_backup" : "" , |
| 48 | BinaryCollate(), MAX_NAME_LENGTH_SQL, BinaryCollate(), pIdType); |
| 49 | } |
| 50 | |
| 51 | void IDbConnection::FormatCreateMaps(char *aBuf, unsigned int BufferSize) const |
| 52 | { |
| 53 | str_format(buffer: aBuf, buffer_size: BufferSize, |
| 54 | format: "CREATE TABLE IF NOT EXISTS %s_maps (" |
| 55 | " Map VARCHAR(128) COLLATE %s NOT NULL, " |
| 56 | " Server VARCHAR(32) COLLATE %s NOT NULL, " |
| 57 | " Mapper VARCHAR(128) COLLATE %s NOT NULL, " |
| 58 | " Points INT DEFAULT 0, " |
| 59 | " Stars INT DEFAULT 0, " |
| 60 | " Timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP, " |
| 61 | " PRIMARY KEY (Map)" |
| 62 | ")" , |
| 63 | GetPrefix(), BinaryCollate(), BinaryCollate(), BinaryCollate()); |
| 64 | } |
| 65 | |
| 66 | void IDbConnection::FormatCreateSaves(char *aBuf, unsigned int BufferSize, bool Backup) const |
| 67 | { |
| 68 | str_format(buffer: aBuf, buffer_size: BufferSize, |
| 69 | format: "CREATE TABLE IF NOT EXISTS %s_saves%s (" |
| 70 | " Savegame TEXT COLLATE %s NOT NULL, " |
| 71 | " Map VARCHAR(128) COLLATE %s NOT NULL, " |
| 72 | " Code VARCHAR(128) COLLATE %s NOT NULL, " |
| 73 | " Timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, " |
| 74 | " Server CHAR(4), " |
| 75 | " DDNet7 BOOL DEFAULT FALSE, " |
| 76 | " SaveId VARCHAR(36) DEFAULT NULL, " |
| 77 | " PRIMARY KEY (Map, Code)" |
| 78 | ")" , |
| 79 | GetPrefix(), Backup ? "_backup" : "" , |
| 80 | BinaryCollate(), BinaryCollate(), BinaryCollate()); |
| 81 | } |
| 82 | |
| 83 | void IDbConnection::FormatCreatePoints(char *aBuf, unsigned int BufferSize) const |
| 84 | { |
| 85 | str_format(buffer: aBuf, buffer_size: BufferSize, |
| 86 | format: "CREATE TABLE IF NOT EXISTS %s_points (" |
| 87 | " Name VARCHAR(%d) COLLATE %s NOT NULL, " |
| 88 | " Points INT DEFAULT 0, " |
| 89 | " PRIMARY KEY (Name)" |
| 90 | ")" , |
| 91 | GetPrefix(), MAX_NAME_LENGTH_SQL, BinaryCollate()); |
| 92 | } |
| 93 | |