diff options
author | lbsa71 | 2008-02-13 12:06:09 +0000 |
---|---|---|
committer | lbsa71 | 2008-02-13 12:06:09 +0000 |
commit | bcd3a5b28bc63426e5ac1f4642afca4a391ece28 (patch) | |
tree | d38441c04425259fe450d062e7be25c90ae7cb09 /OpenSim | |
parent | * Removed a debug line that got called every frame. (diff) | |
download | opensim-SC-bcd3a5b28bc63426e5ac1f4642afca4a391ece28.zip opensim-SC-bcd3a5b28bc63426e5ac1f4642afca4a391ece28.tar.gz opensim-SC-bcd3a5b28bc63426e5ac1f4642afca4a391ece28.tar.bz2 opensim-SC-bcd3a5b28bc63426e5ac1f4642afca4a391ece28.tar.xz |
* Introduced customizable table names on MySQL and MSSQL UserData plug-ins.
[Provided by openlifegrid.com]
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs | 46 | ||||
-rw-r--r-- | OpenSim/Framework/Data.MySQL/MySQLManager.cs | 2 | ||||
-rw-r--r-- | OpenSim/Framework/Data.MySQL/MySQLUserData.cs | 80 |
3 files changed, 86 insertions, 42 deletions
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs index ed9929c..60e6df4 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs | |||
@@ -46,6 +46,10 @@ namespace OpenSim.Framework.Data.MSSQL | |||
46 | /// </summary> | 46 | /// </summary> |
47 | public MSSQLManager database; | 47 | public MSSQLManager database; |
48 | 48 | ||
49 | private string m_agentsTableName; | ||
50 | private string m_usersTableName; | ||
51 | private string m_userFriendsTableName; | ||
52 | |||
49 | /// <summary> | 53 | /// <summary> |
50 | /// Loads and initialises the MySQL storage plugin | 54 | /// Loads and initialises the MySQL storage plugin |
51 | /// </summary> | 55 | /// </summary> |
@@ -53,12 +57,30 @@ namespace OpenSim.Framework.Data.MSSQL | |||
53 | { | 57 | { |
54 | // Load from an INI file connection details | 58 | // Load from an INI file connection details |
55 | // TODO: move this to XML? | 59 | // TODO: move this to XML? |
56 | IniFile GridDataMySqlFile = new IniFile("mssql_connection.ini"); | 60 | IniFile iniFile = new IniFile("mssql_connection.ini"); |
57 | string settingDataSource = GridDataMySqlFile.ParseFileReadValue("data_source"); | 61 | string settingDataSource = iniFile.ParseFileReadValue("data_source"); |
58 | string settingInitialCatalog = GridDataMySqlFile.ParseFileReadValue("initial_catalog"); | 62 | string settingInitialCatalog = iniFile.ParseFileReadValue("initial_catalog"); |
59 | string settingPersistSecurityInfo = GridDataMySqlFile.ParseFileReadValue("persist_security_info"); | 63 | string settingPersistSecurityInfo = iniFile.ParseFileReadValue("persist_security_info"); |
60 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); | 64 | string settingUserId = iniFile.ParseFileReadValue("user_id"); |
61 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 65 | string settingPassword = iniFile.ParseFileReadValue("password"); |
66 | |||
67 | m_usersTableName = iniFile.ParseFileReadValue("userstablename"); | ||
68 | if (m_usersTableName == null) | ||
69 | { | ||
70 | m_usersTableName = "users"; | ||
71 | } | ||
72 | |||
73 | m_userFriendsTableName = iniFile.ParseFileReadValue("userfriendstablename"); | ||
74 | if (m_userFriendsTableName == null) | ||
75 | { | ||
76 | m_userFriendsTableName = "userfriends"; | ||
77 | } | ||
78 | |||
79 | m_agentsTableName = iniFile.ParseFileReadValue("agentstablename"); | ||
80 | if (m_agentsTableName == null) | ||
81 | { | ||
82 | m_agentsTableName = "agents"; | ||
83 | } | ||
62 | 84 | ||
63 | database = | 85 | database = |
64 | new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, | 86 | new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, |
@@ -82,7 +104,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
82 | param["second"] = last; | 104 | param["second"] = last; |
83 | 105 | ||
84 | IDbCommand result = | 106 | IDbCommand result = |
85 | database.Query("SELECT * FROM users WHERE username = @first AND lastname = @second", param); | 107 | database.Query("SELECT * FROM "+m_usersTableName+" WHERE username = @first AND lastname = @second", param); |
86 | IDataReader reader = result.ExecuteReader(); | 108 | IDataReader reader = result.ExecuteReader(); |
87 | 109 | ||
88 | UserProfileData row = database.readUserRow(reader); | 110 | UserProfileData row = database.readUserRow(reader); |
@@ -150,7 +172,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
150 | 172 | ||
151 | IDbCommand result = | 173 | IDbCommand result = |
152 | database.Query( | 174 | database.Query( |
153 | "SELECT UUID,username,surname FROM users WHERE username = @first AND lastname = @second", | 175 | "SELECT UUID,username,surname FROM " + m_usersTableName + " WHERE username = @first AND lastname = @second", |
154 | param); | 176 | param); |
155 | IDataReader reader = result.ExecuteReader(); | 177 | IDataReader reader = result.ExecuteReader(); |
156 | 178 | ||
@@ -186,7 +208,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
186 | 208 | ||
187 | IDbCommand result = | 209 | IDbCommand result = |
188 | database.Query( | 210 | database.Query( |
189 | "SELECT UUID,username,surname FROM users WHERE username = @first OR lastname = @second", | 211 | "SELECT UUID,username,surname FROM " + m_usersTableName + " WHERE username = @first OR lastname = @second", |
190 | param); | 212 | param); |
191 | IDataReader reader = result.ExecuteReader(); | 213 | IDataReader reader = result.ExecuteReader(); |
192 | 214 | ||
@@ -223,7 +245,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
223 | Dictionary<string, string> param = new Dictionary<string, string>(); | 245 | Dictionary<string, string> param = new Dictionary<string, string>(); |
224 | param["uuid"] = uuid.ToString(); | 246 | param["uuid"] = uuid.ToString(); |
225 | 247 | ||
226 | IDbCommand result = database.Query("SELECT * FROM users WHERE UUID = @uuid", param); | 248 | IDbCommand result = database.Query("SELECT * FROM " + m_usersTableName + " WHERE UUID = @uuid", param); |
227 | IDataReader reader = result.ExecuteReader(); | 249 | IDataReader reader = result.ExecuteReader(); |
228 | 250 | ||
229 | UserProfileData row = database.readUserRow(reader); | 251 | UserProfileData row = database.readUserRow(reader); |
@@ -278,7 +300,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
278 | Dictionary<string, string> param = new Dictionary<string, string>(); | 300 | Dictionary<string, string> param = new Dictionary<string, string>(); |
279 | param["uuid"] = uuid.ToString(); | 301 | param["uuid"] = uuid.ToString(); |
280 | 302 | ||
281 | IDbCommand result = database.Query("SELECT * FROM agents WHERE UUID = @uuid", param); | 303 | IDbCommand result = database.Query("SELECT * FROM " + m_agentsTableName + " WHERE UUID = @uuid", param); |
282 | IDataReader reader = result.ExecuteReader(); | 304 | IDataReader reader = result.ExecuteReader(); |
283 | 305 | ||
284 | UserAgentData row = database.readAgentRow(reader); | 306 | UserAgentData row = database.readAgentRow(reader); |
@@ -342,7 +364,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
342 | 364 | ||
343 | public bool UpdateUserProfile(UserProfileData user) | 365 | public bool UpdateUserProfile(UserProfileData user) |
344 | { | 366 | { |
345 | SqlCommand command = new SqlCommand("UPDATE users set UUID = @uuid, " + | 367 | SqlCommand command = new SqlCommand("UPDATE " + m_usersTableName + " set UUID = @uuid, " + |
346 | "username = @username, " + | 368 | "username = @username, " + |
347 | "lastname = @lastname," + | 369 | "lastname = @lastname," + |
348 | "passwordHash = @passwordHash," + | 370 | "passwordHash = @passwordHash," + |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs index e763bfa..0ec976c 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLManager.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs | |||
@@ -200,7 +200,9 @@ namespace OpenSim.Framework.Data.MySQL | |||
200 | string tableName = (string) tables["TABLE_NAME"]; | 200 | string tableName = (string) tables["TABLE_NAME"]; |
201 | string comment = (string) tables["TABLE_COMMENT"]; | 201 | string comment = (string) tables["TABLE_COMMENT"]; |
202 | if (tableList.ContainsKey(tableName)) | 202 | if (tableList.ContainsKey(tableName)) |
203 | { | ||
203 | tableList[tableName] = comment; | 204 | tableList[tableName] = comment; |
205 | } | ||
204 | } | 206 | } |
205 | catch (Exception e) | 207 | catch (Exception e) |
206 | { | 208 | { |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs index 0db727c..bc18376 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs | |||
@@ -46,20 +46,43 @@ namespace OpenSim.Framework.Data.MySQL | |||
46 | /// </summary> | 46 | /// </summary> |
47 | public MySQLManager database; | 47 | public MySQLManager database; |
48 | 48 | ||
49 | private string m_agentsTableName; | ||
50 | private string m_usersTableName; | ||
51 | private string m_userFriendsTableName; | ||
52 | |||
49 | /// <summary> | 53 | /// <summary> |
50 | /// Loads and initialises the MySQL storage plugin | 54 | /// Loads and initialises the MySQL storage plugin |
51 | /// </summary> | 55 | /// </summary> |
52 | public void Initialise() | 56 | public void Initialise() |
53 | { | 57 | { |
54 | // Load from an INI file connection details | 58 | // Load from an INI file connection details |
55 | // TODO: move this to XML? | 59 | // TODO: move this to XML? Yes, PLEASE! |
56 | IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini"); | 60 | |
57 | string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname"); | 61 | IniFile iniFile = new IniFile("mysql_connection.ini"); |
58 | string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database"); | 62 | string settingHostname = iniFile.ParseFileReadValue("hostname"); |
59 | string settingUsername = GridDataMySqlFile.ParseFileReadValue("username"); | 63 | string settingDatabase = iniFile.ParseFileReadValue("database"); |
60 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 64 | string settingUsername = iniFile.ParseFileReadValue("username"); |
61 | string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling"); | 65 | string settingPassword = iniFile.ParseFileReadValue("password"); |
62 | string settingPort = GridDataMySqlFile.ParseFileReadValue("port"); | 66 | string settingPooling = iniFile.ParseFileReadValue("pooling"); |
67 | string settingPort = iniFile.ParseFileReadValue("port"); | ||
68 | |||
69 | m_usersTableName = iniFile.ParseFileReadValue("userstablename"); | ||
70 | if( m_usersTableName == null ) | ||
71 | { | ||
72 | m_usersTableName = "users"; | ||
73 | } | ||
74 | |||
75 | m_userFriendsTableName = iniFile.ParseFileReadValue("userfriendstablename"); | ||
76 | if (m_userFriendsTableName == null) | ||
77 | { | ||
78 | m_userFriendsTableName = "userfriends"; | ||
79 | } | ||
80 | |||
81 | m_agentsTableName = iniFile.ParseFileReadValue("agentstablename"); | ||
82 | if (m_agentsTableName == null) | ||
83 | { | ||
84 | m_agentsTableName = "agents"; | ||
85 | } | ||
63 | 86 | ||
64 | database = | 87 | database = |
65 | new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, | 88 | new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, |
@@ -77,14 +100,14 @@ namespace OpenSim.Framework.Data.MySQL | |||
77 | { | 100 | { |
78 | Dictionary<string, string> tableList = new Dictionary<string, string>(); | 101 | Dictionary<string, string> tableList = new Dictionary<string, string>(); |
79 | 102 | ||
80 | tableList["agents"] = null; | 103 | tableList[m_agentsTableName] = null; |
81 | tableList["users"] = null; | 104 | tableList[m_usersTableName] = null; |
82 | tableList["userfriends"] = null; | 105 | tableList[m_userFriendsTableName] = null; |
83 | database.GetTableVersion(tableList); | 106 | database.GetTableVersion(tableList); |
84 | 107 | ||
85 | UpgradeAgentsTable(tableList["agents"]); | 108 | UpgradeAgentsTable(tableList[m_agentsTableName]); |
86 | UpgradeUsersTable(tableList["users"]); | 109 | UpgradeUsersTable(tableList[m_usersTableName]); |
87 | UpgradeFriendsTable(tableList["userfriends"]); | 110 | UpgradeFriendsTable(tableList[m_userFriendsTableName]); |
88 | 111 | ||
89 | } | 112 | } |
90 | 113 | ||
@@ -153,7 +176,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
153 | param["?second"] = last; | 176 | param["?second"] = last; |
154 | 177 | ||
155 | IDbCommand result = | 178 | IDbCommand result = |
156 | database.Query("SELECT * FROM users WHERE username = ?first AND lastname = ?second", param); | 179 | database.Query("SELECT * FROM " + m_usersTableName + " WHERE username = ?first AND lastname = ?second", param); |
157 | IDataReader reader = result.ExecuteReader(); | 180 | IDataReader reader = result.ExecuteReader(); |
158 | 181 | ||
159 | UserProfileData row = database.readUserRow(reader); | 182 | UserProfileData row = database.readUserRow(reader); |
@@ -189,7 +212,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
189 | { | 212 | { |
190 | IDbCommand adder = | 213 | IDbCommand adder = |
191 | database.Query( | 214 | database.Query( |
192 | "INSERT INTO `userfriends` " + | 215 | "INSERT INTO `" + m_userFriendsTableName + "` " + |
193 | "(`ownerID`,`friendID`,`friendPerms`,`datetimestamp`) " + | 216 | "(`ownerID`,`friendID`,`friendPerms`,`datetimestamp`) " + |
194 | "VALUES " + | 217 | "VALUES " + |
195 | "(?ownerID,?friendID,?friendPerms,?datetimestamp)", | 218 | "(?ownerID,?friendID,?friendPerms,?datetimestamp)", |
@@ -198,7 +221,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
198 | 221 | ||
199 | adder = | 222 | adder = |
200 | database.Query( | 223 | database.Query( |
201 | "INSERT INTO `userfriends` " + | 224 | "INSERT INTO `" + m_userFriendsTableName + "` " + |
202 | "(`ownerID`,`friendID`,`friendPerms`,`datetimestamp`) " + | 225 | "(`ownerID`,`friendID`,`friendPerms`,`datetimestamp`) " + |
203 | "VALUES " + | 226 | "VALUES " + |
204 | "(?friendID,?ownerID,?friendPerms,?datetimestamp)", | 227 | "(?friendID,?ownerID,?friendPerms,?datetimestamp)", |
@@ -228,15 +251,13 @@ namespace OpenSim.Framework.Data.MySQL | |||
228 | { | 251 | { |
229 | IDbCommand updater = | 252 | IDbCommand updater = |
230 | database.Query( | 253 | database.Query( |
231 | "delete from userfriends " + | 254 | "delete from " + m_userFriendsTableName + " where ownerID = ?ownerID and friendID = ?friendID", |
232 | "where ownerID = ?ownerID and friendID = ?friendID", | ||
233 | param); | 255 | param); |
234 | updater.ExecuteNonQuery(); | 256 | updater.ExecuteNonQuery(); |
235 | 257 | ||
236 | updater = | 258 | updater = |
237 | database.Query( | 259 | database.Query( |
238 | "delete from userfriends " + | 260 | "delete from " + m_userFriendsTableName + " where ownerID = ?friendID and friendID = ?ownerID", |
239 | "where ownerID = ?friendID and friendID = ?ownerID", | ||
240 | param); | 261 | param); |
241 | updater.ExecuteNonQuery(); | 262 | updater.ExecuteNonQuery(); |
242 | 263 | ||
@@ -263,8 +284,8 @@ namespace OpenSim.Framework.Data.MySQL | |||
263 | { | 284 | { |
264 | IDbCommand updater = | 285 | IDbCommand updater = |
265 | database.Query( | 286 | database.Query( |
266 | "update userfriends " + | 287 | "update " + m_userFriendsTableName + |
267 | "SET friendPerms = ?friendPerms " + | 288 | " SET friendPerms = ?friendPerms " + |
268 | "where ownerID = ?ownerID and friendID = ?friendID", | 289 | "where ownerID = ?ownerID and friendID = ?friendID", |
269 | param); | 290 | param); |
270 | updater.ExecuteNonQuery(); | 291 | updater.ExecuteNonQuery(); |
@@ -294,7 +315,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
294 | //Left Join userfriends to itself | 315 | //Left Join userfriends to itself |
295 | IDbCommand result = | 316 | IDbCommand result = |
296 | database.Query( | 317 | database.Query( |
297 | "select a.ownerID,a.friendID,a.friendPerms,b.friendPerms as ownerperms from userfriends as a, userfriends as b" + | 318 | "select a.ownerID,a.friendID,a.friendPerms,b.friendPerms as ownerperms from " + m_userFriendsTableName + " as a, " + m_userFriendsTableName + " as b" + |
298 | " where a.ownerID = ?ownerID and b.ownerID = a.friendID and b.friendID = a.ownerID", | 319 | " where a.ownerID = ?ownerID and b.ownerID = a.friendID and b.friendID = a.ownerID", |
299 | param); | 320 | param); |
300 | IDataReader reader = result.ExecuteReader(); | 321 | IDataReader reader = result.ExecuteReader(); |
@@ -353,7 +374,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
353 | { | 374 | { |
354 | IDbCommand result = | 375 | IDbCommand result = |
355 | database.Query( | 376 | database.Query( |
356 | "SELECT UUID,username,lastname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100", | 377 | "SELECT UUID,username,lastname FROM " + m_usersTableName + " WHERE username like ?first AND lastname like ?second LIMIT 100", |
357 | param); | 378 | param); |
358 | IDataReader reader = result.ExecuteReader(); | 379 | IDataReader reader = result.ExecuteReader(); |
359 | 380 | ||
@@ -388,7 +409,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
388 | 409 | ||
389 | IDbCommand result = | 410 | IDbCommand result = |
390 | database.Query( | 411 | database.Query( |
391 | "SELECT UUID,username,lastname FROM users WHERE username like ?first OR lastname like ?first LIMIT 100", | 412 | "SELECT UUID,username,lastname FROM " + m_usersTableName + " WHERE username like ?first OR lastname like ?first LIMIT 100", |
392 | param); | 413 | param); |
393 | IDataReader reader = result.ExecuteReader(); | 414 | IDataReader reader = result.ExecuteReader(); |
394 | 415 | ||
@@ -425,7 +446,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
425 | Dictionary<string, string> param = new Dictionary<string, string>(); | 446 | Dictionary<string, string> param = new Dictionary<string, string>(); |
426 | param["?uuid"] = uuid.ToString(); | 447 | param["?uuid"] = uuid.ToString(); |
427 | 448 | ||
428 | IDbCommand result = database.Query("SELECT * FROM users WHERE UUID = ?uuid", param); | 449 | IDbCommand result = database.Query("SELECT * FROM " + m_usersTableName + " WHERE UUID = ?uuid", param); |
429 | IDataReader reader = result.ExecuteReader(); | 450 | IDataReader reader = result.ExecuteReader(); |
430 | 451 | ||
431 | UserProfileData row = database.readUserRow(reader); | 452 | UserProfileData row = database.readUserRow(reader); |
@@ -479,8 +500,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
479 | { | 500 | { |
480 | IDbCommand updater = | 501 | IDbCommand updater = |
481 | database.Query( | 502 | database.Query( |
482 | "update users " + | 503 | "update " + m_usersTableName + " SET webLoginKey = ?webLoginKey " + |
483 | "SET webLoginKey = ?webLoginKey " + | ||
484 | "where UUID = ?UUID", | 504 | "where UUID = ?UUID", |
485 | param); | 505 | param); |
486 | updater.ExecuteNonQuery(); | 506 | updater.ExecuteNonQuery(); |
@@ -513,7 +533,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
513 | Dictionary<string, string> param = new Dictionary<string, string>(); | 533 | Dictionary<string, string> param = new Dictionary<string, string>(); |
514 | param["?uuid"] = uuid.ToString(); | 534 | param["?uuid"] = uuid.ToString(); |
515 | 535 | ||
516 | IDbCommand result = database.Query("SELECT * FROM agents WHERE UUID = ?uuid", param); | 536 | IDbCommand result = database.Query("SELECT * FROM " + m_agentsTableName + " WHERE UUID = ?uuid", param); |
517 | IDataReader reader = result.ExecuteReader(); | 537 | IDataReader reader = result.ExecuteReader(); |
518 | 538 | ||
519 | UserAgentData row = database.readAgentRow(reader); | 539 | UserAgentData row = database.readAgentRow(reader); |