summaryrefslogtreecommitdiff
path: root/src/account-server/dalstoragesql.hpp
diff options
context:
space:
mode:
authorAndreas Habel <mail@exceptionfault.de>2008-09-15 10:43:11 +0000
committerAndreas Habel <mail@exceptionfault.de>2008-09-15 10:43:11 +0000
commita613c53609185c436dcdca7eae3221b792ad523d (patch)
tree8a367e8663fa96c955914f3179e80a80e4523be7 /src/account-server/dalstoragesql.hpp
parentbfc0c10184442fba0b53e0aaafcf2532610e5cd7 (diff)
downloadmanaserv-a613c53609185c436dcdca7eae3221b792ad523d.tar.gz
manaserv-a613c53609185c436dcdca7eae3221b792ad523d.tar.bz2
manaserv-a613c53609185c436dcdca7eae3221b792ad523d.tar.xz
manaserv-a613c53609185c436dcdca7eae3221b792ad523d.zip
* Added doxygen file, docu will be generated under docs/api/html
* Added table definition "tmw_world_states" to store map and world-specific variables * Extended DALStorage to set and get those new variables * Applied Kess's diff file from mantis #424 with modifications for PostgreSQL support
Diffstat (limited to 'src/account-server/dalstoragesql.hpp')
-rw-r--r--src/account-server/dalstoragesql.hpp269
1 files changed, 148 insertions, 121 deletions
diff --git a/src/account-server/dalstoragesql.hpp b/src/account-server/dalstoragesql.hpp
index 311546ec..b773770f 100644
--- a/src/account-server/dalstoragesql.hpp
+++ b/src/account-server/dalstoragesql.hpp
@@ -70,33 +70,37 @@ static char const *SQL_ACCOUNTS_TABLE =
"CREATE TABLE tmw_accounts \n "
"( \n"
#if defined (MYSQL_SUPPORT)
- "id INTEGER PRIMARY KEY AUTO_INCREMENT,"
- "username VARCHAR(32) NOT NULL UNIQUE,"
- "password VARCHAR(32) NOT NULL,"
- "email VARCHAR(64) NOT NULL,"
- "level TINYINT UNSIGNED NOT NULL,"
- "banned TINYINT UNSIGNED NOT NULL,"
-// "activation VARCHAR(32),"
+ "id INTEGER PRIMARY KEY AUTO_INCREMENT,"
+ "username VARCHAR(32) NOT NULL UNIQUE,"
+ "password VARCHAR(32) NOT NULL,"
+ "email VARCHAR(64) NOT NULL,"
+ "level TINYINT UNSIGNED NOT NULL,"
+ "banned TINYINT UNSIGNED NOT NULL,"
+ "registration INTEGER NOT NULL,"
+ "lastlogin INTEGER NOT NULL,"
+// "activation VARCHAR(32),"
"INDEX (id)"
#error "Incorrect definition. Please fix the types."
#elif defined (SQLITE_SUPPORT)
- "id INTEGER PRIMARY KEY, \n"
- "username TEXT NOT NULL UNIQUE, \n"
- "password TEXT NOT NULL, \n"
- "email TEXT NOT NULL, \n"
- "level INTEGER NOT NULL, \n"
- "banned INTEGER NOT NULL, \n"
- "registration INTEGER NOT NULL, \n"
- "lastlogin INTEGER NOT NULL \n"
-// "activation TEXT"
+ "id INTEGER PRIMARY KEY, \n"
+ "username TEXT NOT NULL UNIQUE, \n"
+ "password TEXT NOT NULL, \n"
+ "email TEXT NOT NULL, \n"
+ "level INTEGER NOT NULL, \n"
+ "banned INTEGER NOT NULL, \n"
+ "registration INTEGER NOT NULL, \n"
+ "lastlogin INTEGER NOT NULL \n"
+// "activation TEXT"
#elif defined (POSTGRESQL_SUPPORT)
- "id SERIAL PRIMARY KEY,"
- "username TEXT NOT NULL UNIQUE,"
- "password TEXT NOT NULL,"
- "email TEXT NOT NULL,"
- "level INTEGER NOT NULL,"
- "banned INTEGER NOT NULL,"
-// "activation TEXT"
+ "id SERIAL PRIMARY KEY,"
+ "username TEXT NOT NULL UNIQUE,"
+ "password TEXT NOT NULL,"
+ "email TEXT NOT NULL,"
+ "level SMALLINT NOT NULL,"
+ "banned SMALLINT NOT NULL,"
+ "registration INTEGER NOT NULL,"
+ "lastlogin INTEGER NOT NULL"
+// "activation TEXT"
#endif
");";
@@ -109,9 +113,9 @@ static char const *CHARACTERS_TBL_NAME = "tmw_characters";
static char const *SQL_CHARACTERS_TABLE =
"CREATE TABLE tmw_characters ("
#if defined (MYSQL_SUPPORT)
- "id INTEGER PRIMARY KEY AUTO_INCREMENT,"
- "user_id INTEGER UNSIGNED NOT NULL,"
- "name VARCHAR(32) NOT NULL UNIQUE,"
+ "id INTEGER PRIMARY KEY AUTO_INCREMENT,"
+ "user_id INTEGER UNSIGNED NOT NULL,"
+ "name VARCHAR(32) NOT NULL UNIQUE,"
// general information about the character
"gender TINYINT UNSIGNED NOT NULL,"
"hair_style TINYINT UNSIGNED NOT NULL,"
@@ -119,39 +123,38 @@ static char const *SQL_CHARACTERS_TABLE =
"level INTEGER UNSIGNED NOT NULL,"
"char_pts INTEGER UNSIGNED NOT NULL,"
"correct_pts INTEGER UNSIGNED NOT NULL,"
- "money INTEGER UNSIGNED NOT NULL,"
+ "money INTEGER UNSIGNED NOT NULL,"
// location on the map
- "x SMALLINT UNSIGNED NOT NULL,"
- "y SMALLINT UNSIGNED NOT NULL,"
- "map_id TINYINT NOT NULL,"
+ "x SMALLINT UNSIGNED NOT NULL,"
+ "y SMALLINT UNSIGNED NOT NULL,"
+ "map_id TINYINT NOT NULL,"
// attributes
- "str SMALLINT UNSIGNED NOT NULL,"
- "agi SMALLINT UNSIGNED NOT NULL,"
- "dex SMALLINT UNSIGNED NOT NULL,"
- "vit SMALLINT UNSIGNED NOT NULL,"
+ "str SMALLINT UNSIGNED NOT NULL,"
+ "agi SMALLINT UNSIGNED NOT NULL,"
+ "dex SMALLINT UNSIGNED NOT NULL,"
+ "vit SMALLINT UNSIGNED NOT NULL,"
// note: int must be backquoted as it's a MySQL keyword
- "`int` SMALLINT UNSIGNED NOT NULL,"
- "will SMALLINT UNSIGNED NOT NULL,"
+ "`int` SMALLINT UNSIGNED NOT NULL,"
+ "will SMALLINT UNSIGNED NOT NULL,"
//skill experience
- "unarmedExp INTEGER UNSIGNED NOT NULL,"
- "knife_exp INTEGER UNSIGNED NOT NULL,"
- "sword_exp INTEGER UNSIGNED NOT NULL,"
- "polearm_exp INTEGER UNSIGNED NOT NULL,"
- "staff_exp INTEGER UNSIGNED NOT NULL,"
- "whip_exp INTEGER UNSIGNED NOT NULL,"
- "bow_exp INTEGER UNSIGNED NOT NULL,"
- "shoot_exp INTEGER UNSIGNED NOT NULL,"
- "mace_exp INTEGER UNSIGNED NOT NULL,"
- "axe_exp INTEGER UNSIGNED NOT NULL,"
- "thrown_exp INTEGER UNSIGNED NOT NULL,"
-
+ "unarmedExp INTEGER UNSIGNED NOT NULL,"
+ "knife_exp INTEGER UNSIGNED NOT NULL,"
+ "sword_exp INTEGER UNSIGNED NOT NULL,"
+ "polearm_exp INTEGER UNSIGNED NOT NULL,"
+ "staff_exp INTEGER UNSIGNED NOT NULL,"
+ "whip_exp INTEGER UNSIGNED NOT NULL,"
+ "bow_exp INTEGER UNSIGNED NOT NULL,"
+ "shoot_exp INTEGER UNSIGNED NOT NULL,"
+ "mace_exp INTEGER UNSIGNED NOT NULL,"
+ "axe_exp INTEGER UNSIGNED NOT NULL,"
+ "thrown_exp INTEGER UNSIGNED NOT NULL,"
"FOREIGN KEY (user_id) REFERENCES tmw_accounts(id),"
"FOREIGN KEY (map_id) REFERENCES tmw_maps(id),"
"INDEX (id)"
#elif defined (SQLITE_SUPPORT)
- "id INTEGER PRIMARY KEY,"
- "user_id INTEGER NOT NULL,"
- "name TEXT NOT NULL UNIQUE,"
+ "id INTEGER PRIMARY KEY,"
+ "user_id INTEGER NOT NULL,"
+ "name TEXT NOT NULL UNIQUE,"
// general information about the character
"gender INTEGER NOT NULL,"
"hair_style INTEGER NOT NULL,"
@@ -159,68 +162,67 @@ static char const *SQL_CHARACTERS_TABLE =
"level INTEGER NOT NULL,"
"char_pts INTEGER NOT NULL,"
"correct_pts INTEGER NOT NULL,"
- "money INTEGER NOT NULL,"
+ "money INTEGER NOT NULL,"
// location on the map
- "x INTEGER NOT NULL,"
- "y INTEGER NOT NULL,"
- "map_id INTEGER NOT NULL,"
+ "x INTEGER NOT NULL,"
+ "y INTEGER NOT NULL,"
+ "map_id INTEGER NOT NULL,"
// attributes
- "str INTEGER NOT NULL,"
- "agi INTEGER NOT NULL,"
- "dex INTEGER NOT NULL,"
- "vit INTEGER NOT NULL,"
- "int INTEGER NOT NULL,"
- "will INTEGER NOT NULL,"
+ "str INTEGER NOT NULL,"
+ "agi INTEGER NOT NULL,"
+ "dex INTEGER NOT NULL,"
+ "vit INTEGER NOT NULL,"
+ "int INTEGER NOT NULL,"
+ "will INTEGER NOT NULL,"
//skill experience
- "unarmed_exp INTEGER NOT NULL,"
- "knife_exp INTEGER NOT NULL,"
- "sword_exp INTEGER NOT NULL,"
- "polearm_exp INTEGER NOT NULL,"
- "staff_exp INTEGER NOT NULL,"
- "whip_exp INTEGER NOT NULL,"
- "bow_exp INTEGER NOT NULL,"
- "shoot_exp INTEGER NOT NULL,"
- "mace_exp INTEGER NOT NULL,"
- "axe_exp INTEGER NOT NULL,"
- "thrown_exp INTEGER NOT NULL,"
+ "unarmed_exp INTEGER NOT NULL,"
+ "knife_exp INTEGER NOT NULL,"
+ "sword_exp INTEGER NOT NULL,"
+ "polearm_exp INTEGER NOT NULL,"
+ "staff_exp INTEGER NOT NULL,"
+ "whip_exp INTEGER NOT NULL,"
+ "bow_exp INTEGER NOT NULL,"
+ "shoot_exp INTEGER NOT NULL,"
+ "mace_exp INTEGER NOT NULL,"
+ "axe_exp INTEGER NOT NULL,"
+ "thrown_exp INTEGER NOT NULL,"
"FOREIGN KEY (user_id) REFERENCES tmw_accounts(id),"
"FOREIGN KEY (map_id) REFERENCES tmw_maps(id)"
#elif defined (POSTGRESQL_SUPPORT)
- "id SERIAL PRIMARY KEY,"
- "user_id INTEGER NOT NULL,"
- "name TEXT NOT NULL UNIQUE,"
+ "id SERIAL PRIMARY KEY,"
+ "user_id INTEGER NOT NULL,"
+ "name TEXT NOT NULL UNIQUE,"
// general information about the character
- "gender INTEGER NOT NULL,"
- "hair_style INTEGER NOT NULL,"
+ "gender SMALLINT NOT NULL,"
+ "hair_style SMALLINT NOT NULL,"
"hair_color INTEGER NOT NULL,"
- "level INTEGER NOT NULL,"
-
- "char_pts INTEGER NOT NULL,"
- "correct_pts INTEGER NOT NULL,"
- "money INTEGER NOT NULL,"
+ "level INTEGER NOT NULL,"
+ "char_pts INTEGER NOT NULL,"
+ "correct_pts INTEGER NOT NULL,"
+ "money INTEGER NOT NULL,"
// location on the map
- "x INTEGER NOT NULL,"
- "y INTEGER NOT NULL,"
- "map_id INTEGER NOT NULL,"
+ "x SMALLINT NOT NULL,"
+ "y SMALLINT NOT NULL,"
+ "map_id SMALLINT NOT NULL,"
// attributes
- "str INTEGER NOT NULL,"
- "agi INTEGER NOT NULL,"
- "dex INTEGER NOT NULL,"
- "vit INTEGER NOT NULL,"
- "int INTEGER NOT NULL,"
- "will INTEGER NOT NULL,"
+ "str SMALLINT NOT NULL,"
+ "agi SMALLINT NOT NULL,"
+ "dex SMALLINT NOT NULL,"
+ "vit SMALLINT NOT NULL,"
+ "int SMALLINT NOT NULL,"
+ "will SMALLINT NOT NULL,"
//skill experience
- "unarmed_exp INTEGER NOT NULL,"
- "knife_exp INTEGER NOT NULL,"
- "sword_exp INTEGER NOT NULL,"
- "polearm_exp INTEGER NOT NULL,"
- "staff_exp INTEGER NOT NULL,"
- "whip_exp INTEGER NOT NULL,"
- "bow_exp INTEGER NOT NULL,"
- "shoot_exp INTEGER NOT NULL,"
- "mace_exp INTEGER NOT NULL,"
- "axe_exp INTEGER NOT NULL,"
- "thrown_exp INTEGER NOT NULL,"
+ "unarmed_exp INTEGER NOT NULL,"
+ "knife_exp INTEGER NOT NULL,"
+ "sword_exp INTEGER NOT NULL,"
+ "polearm_exp INTEGER NOT NULL,"
+ "staff_exp INTEGER NOT NULL,"
+ "whip_exp INTEGER NOT NULL,"
+ "bow_exp INTEGER NOT NULL,"
+ "shoot_exp INTEGER NOT NULL,"
+ "mace_exp INTEGER NOT NULL,"
+ "axe_exp INTEGER NOT NULL,"
+ "thrown_exp INTEGER NOT NULL,"
"FOREIGN KEY (user_id) REFERENCES tmw_accounts(id),"
"FOREIGN KEY (map_id) REFERENCES tmw_maps(id)"
#endif
@@ -249,11 +251,11 @@ static char const *SQL_INVENTORIES_TABLE =
"amount INTEGER NOT NULL,"
"FOREIGN KEY (owner_id) REFERENCES tmw_characters(id)"
#elif defined (POSTGRESQL_SUPPORT)
- "id SERIAL PRIMARY KEY,"
+ "id SERIAL PRIMARY KEY,"
"owner_id INTEGER NOT NULL,"
- "slot INTEGER NOT NULL,"
+ "slot SMALLINT NOT NULL,"
"class_id INTEGER NOT NULL,"
- "amount INTEGER NOT NULL,"
+ "amount SMALLINT NOT NULL,"
"FOREIGN KEY (owner_id) REFERENCES tmw_characters(id)"
#endif
");";
@@ -266,14 +268,14 @@ static char const *GUILDS_TBL_NAME = "tmw_guilds";
static char const *SQL_GUILDS_TABLE =
"CREATE TABLE tmw_guilds ("
#if defined (MYSQL_SUPPORT)
- "id INTEGER PRIMARY KEY AUTO_INCREMENT,"
- "name VARCHAR(32) NOT NULL UNIQUE"
+ "id INTEGER PRIMARY KEY AUTO_INCREMENT,"
+ "name VARCHAR(32) NOT NULL UNIQUE"
#elif defined (SQLITE_SUPPORT)
- "id INTEGER PRIMARY KEY,"
- "name TEXT NOT NULL UNIQUE"
+ "id INTEGER PRIMARY KEY,"
+ "name TEXT NOT NULL UNIQUE"
#elif defined (POSTGRESQL_SUPPORT)
- "id SERIAL PRIMARY KEY,"
- "name TEXT NOT NULL UNIQUE"
+ "id SERIAL PRIMARY KEY,"
+ "name TEXT NOT NULL UNIQUE"
#endif
");";
@@ -285,21 +287,21 @@ static char const *GUILD_MEMBERS_TBL_NAME = "tmw_guild_members";
static char const *SQL_GUILD_MEMBERS_TABLE =
"CREATE TABLE tmw_guild_members ("
#if defined (MYSQL_SUPPORT)
- "guild_id INTEGER NOT NULL,"
- "member_id INTEGER NOT NULL,"
- "rights INTEGER NOT NULL,"
+ "guild_id INTEGER NOT NULL,"
+ "member_id INTEGER NOT NULL,"
+ "rights INTEGER NOT NULL,"
"FOREIGN KEY (guild_id) REFERENCES tmw_guilds(id),"
"FOREIGN KEY (member_id) REFERENCES tmw_characters(id)"
#elif defined (SQLITE_SUPPORT)
- "guild_id INTEGER NOT NULL,"
- "member_id INTEGER NOT NULL,"
- "rights INTEGER NOT NULL,"
+ "guild_id INTEGER NOT NULL,"
+ "member_id INTEGER NOT NULL,"
+ "rights INTEGER NOT NULL,"
"FOREIGN KEY (guild_id) REFERENCES tmw_guilds(id),"
"FOREIGN KEY (member_id) REFERENCES tmw_characters(id)"
#elif defined (POSTGRESQL_SUPPORT)
- "guild_id INTEGER NOT NULL,"
- "member_id INTEGER NOT NULL,"
- "rights INTEGER NOT NULL,"
+ "guild_id INTEGER NOT NULL,"
+ "member_id INTEGER NOT NULL,"
+ "rights INTEGER NOT NULL,"
"FOREIGN KEY (guild_id) REFERENCES tmw_guilds(id),"
"FOREIGN KEY (member_id) REFERENCES tmw_characters(id)"
#endif
@@ -319,7 +321,32 @@ static char const *SQL_QUESTS_TABLE =
"value TEXT NOT NULL,"
"FOREIGN KEY (owner_id) REFERENCES tmw_characters(id)"
#elif defined (POSTGRESQL_SUPPORT)
-#error "Missing definition. Please fill the blanks."
+ "owner_id INTEGER NOT NULL,"
+ "name TEXT NOT NULL,"
+ "value TEXT NOT NULL,"
+ "FOREIGN KEY (owner_id) REFERENCES tmw_characters(id)"
+#endif
+ ");";
+
+/**
+ * TABLE: tmw_world_states
+ */
+static char const *WORLD_STATES_TBL_NAME = "tmw_world_states";
+static char const *SQL_WORLD_STATES_TABLE =
+ "CREATE TABLE tmw_world_states \n"
+ "( \n"
+#if defined (MYSQL_SUPPORT)
+ "state_name VARCHAR(100) NOT NULL, \n"
+ "map_id SMALLINT UNSIGNED NULL, \n"
+ "value VARCHAR(255) NULL, \n"
+ "moddate INT UNSIGNED NOT NULL, \n"
+ "PRIMARY KEY(state_name) \n"
+#elif defined (SQLITE_SUPPORT)
+ "state_name TEXT PRIMARY KEY, \n"
+ "map_id INTEGER NULL, \n"
+ "value TEXT NULL, \n"
+ "moddate INTEGER NOT NULL \n"
+#elif defined (POSTGRESQL_SUPPORT)
#endif
");";