diff options
author | AlexRa | 2010-05-18 14:28:12 +0300 |
---|---|---|
committer | AlexRa | 2010-05-19 01:33:02 +0300 |
commit | 8a0c5d14d45571c3e7529fdacea6f0483af482e5 (patch) | |
tree | 30b580dbda83e3b8e3966fa7d538d5aee8102a63 /OpenSim/Data/MySQL/MySQLInventoryData.cs | |
parent | Added DBGuids.cs (static func DBGuid.FromDB() (diff) | |
download | opensim-SC-8a0c5d14d45571c3e7529fdacea6f0483af482e5.zip opensim-SC-8a0c5d14d45571c3e7529fdacea6f0483af482e5.tar.gz opensim-SC-8a0c5d14d45571c3e7529fdacea6f0483af482e5.tar.bz2 opensim-SC-8a0c5d14d45571c3e7529fdacea6f0483af482e5.tar.xz |
All (?) MySQL stores fixed to use DBGuid.FromDB()
This was needed if we want to update to the latest MySQL
connector dll. It automatically converts CHAR(36) to
Guids, so getting them as strings no longer works.
By using DBGuid.FromDB(), we unlink from any particular
storage format of GUIDs, could even make them BINARY(16)
if we like.
Actually not all MySql units are touched, but the remaining ones don't
seem to be affected (they don't read GUIDs from DB)
Diffstat (limited to 'OpenSim/Data/MySQL/MySQLInventoryData.cs')
-rw-r--r-- | OpenSim/Data/MySQL/MySQLInventoryData.cs | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs index e0e9b9c..8fbe7a8 100644 --- a/OpenSim/Data/MySQL/MySQLInventoryData.cs +++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs | |||
@@ -32,6 +32,7 @@ using log4net; | |||
32 | using MySql.Data.MySqlClient; | 32 | using MySql.Data.MySqlClient; |
33 | using OpenMetaverse; | 33 | using OpenMetaverse; |
34 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
35 | using OpenSim.Data; | ||
35 | 36 | ||
36 | namespace OpenSim.Data.MySQL | 37 | namespace OpenSim.Data.MySQL |
37 | { | 38 | { |
@@ -285,31 +286,23 @@ namespace OpenSim.Data.MySQL | |||
285 | InventoryItemBase item = new InventoryItemBase(); | 286 | InventoryItemBase item = new InventoryItemBase(); |
286 | 287 | ||
287 | // TODO: this is to handle a case where NULLs creep in there, which we are not sure is endemic to the system, or legacy. It would be nice to live fix these. | 288 | // TODO: this is to handle a case where NULLs creep in there, which we are not sure is endemic to the system, or legacy. It would be nice to live fix these. |
288 | if (reader["creatorID"] == null) | 289 | // ( DBGuid.FromDB() reads db NULLs as well, returns UUID.Zero ) |
289 | { | 290 | item.CreatorId = DBGuid.FromDB(reader["creatorID"]).ToString(); |
290 | item.CreatorId = UUID.Zero.ToString(); | ||
291 | } | ||
292 | else | ||
293 | { | ||
294 | item.CreatorId = (string)reader["creatorID"]; | ||
295 | } | ||
296 | 291 | ||
297 | // Be a bit safer in parsing these because the | 292 | // Be a bit safer in parsing these because the |
298 | // database doesn't enforce them to be not null, and | 293 | // database doesn't enforce them to be not null, and |
299 | // the inventory still works if these are weird in the | 294 | // the inventory still works if these are weird in the |
300 | // db | 295 | // db |
301 | UUID Owner = UUID.Zero; | 296 | |
302 | UUID GroupID = UUID.Zero; | 297 | // (Empty is Ok, but "weird" will throw!) |
303 | UUID.TryParse((string)reader["avatarID"], out Owner); | 298 | item.Owner = DBGuid.FromDB(reader["avatarID"]); |
304 | UUID.TryParse((string)reader["groupID"], out GroupID); | 299 | item.GroupID = DBGuid.FromDB(reader["groupID"]); |
305 | item.Owner = Owner; | ||
306 | item.GroupID = GroupID; | ||
307 | 300 | ||
308 | // Rest of the parsing. If these UUID's fail, we're dead anyway | 301 | // Rest of the parsing. If these UUID's fail, we're dead anyway |
309 | item.ID = new UUID((string) reader["inventoryID"]); | 302 | item.ID = DBGuid.FromDB(reader["inventoryID"]); |
310 | item.AssetID = new UUID((string) reader["assetID"]); | 303 | item.AssetID = DBGuid.FromDB(reader["assetID"]); |
311 | item.AssetType = (int) reader["assetType"]; | 304 | item.AssetType = (int) reader["assetType"]; |
312 | item.Folder = new UUID((string) reader["parentFolderID"]); | 305 | item.Folder = DBGuid.FromDB(reader["parentFolderID"]); |
313 | item.Name = (string)(reader["inventoryName"] ?? String.Empty); | 306 | item.Name = (string)(reader["inventoryName"] ?? String.Empty); |
314 | item.Description = (string)(reader["inventoryDescription"] ?? String.Empty); | 307 | item.Description = (string)(reader["inventoryDescription"] ?? String.Empty); |
315 | item.NextPermissions = (uint) reader["inventoryNextPermissions"]; | 308 | item.NextPermissions = (uint) reader["inventoryNextPermissions"]; |
@@ -382,9 +375,9 @@ namespace OpenSim.Data.MySQL | |||
382 | try | 375 | try |
383 | { | 376 | { |
384 | InventoryFolderBase folder = new InventoryFolderBase(); | 377 | InventoryFolderBase folder = new InventoryFolderBase(); |
385 | folder.Owner = new UUID((string) reader["agentID"]); | 378 | folder.Owner = DBGuid.FromDB(reader["agentID"]); |
386 | folder.ParentID = new UUID((string) reader["parentFolderID"]); | 379 | folder.ParentID = DBGuid.FromDB(reader["parentFolderID"]); |
387 | folder.ID = new UUID((string) reader["folderID"]); | 380 | folder.ID = DBGuid.FromDB(reader["folderID"]); |
388 | folder.Name = (string) reader["folderName"]; | 381 | folder.Name = (string) reader["folderName"]; |
389 | folder.Type = (short) reader["type"]; | 382 | folder.Type = (short) reader["type"]; |
390 | folder.Version = (ushort) ((int) reader["version"]); | 383 | folder.Version = (ushort) ((int) reader["version"]); |