* Consistently used dashed uuid format for mysql region data, as is done for all other tables

* This revision contains a mysql data migration.  Please backup your mysql region database as a precaution before using this code.
* I also advise that you do a runprebuild[.sh|.bat] and a clean build ("nant clean build" if you're using the command line).
* This change is needed for future id schemes
0.6.5-rc1
Justin Clarke Casey 2009-05-07 14:20:32 +00:00
parent 7440681062
commit 2284c8509f
2 changed files with 105 additions and 29 deletions

View File

@ -282,7 +282,7 @@ namespace OpenSim.Data.MySQL
cmd.CommandText = "select UUID from prims where "+ cmd.CommandText = "select UUID from prims where "+
"SceneGroupID= ?UUID"; "SceneGroupID= ?UUID";
cmd.Parameters.AddWithValue("UUID", Util.ToRawUuidString(obj)); cmd.Parameters.AddWithValue("UUID", obj.ToString());
List<UUID> uuids = new List<UUID>(); List<UUID> uuids = new List<UUID>();
@ -365,7 +365,7 @@ namespace OpenSim.Data.MySQL
for (int i = 0; i < uuids.Count; i++) for (int i = 0; i < uuids.Count; i++)
{ {
cmd.Parameters.AddWithValue("UUID" + i, Util.ToRawUuidString(uuids[i])); cmd.Parameters.AddWithValue("UUID" + i, uuids[i].ToString());
} }
ExecuteNonQuery(cmd); ExecuteNonQuery(cmd);
@ -426,8 +426,7 @@ namespace OpenSim.Data.MySQL
"where RegionUUID = ?RegionUUID " + "where RegionUUID = ?RegionUUID " +
"order by SceneGroupID asc, sort asc, LinkNumber asc"; "order by SceneGroupID asc, sort asc, LinkNumber asc";
cmd.Parameters.AddWithValue("RegionUUID", cmd.Parameters.AddWithValue("RegionUUID", regionUUID.ToString());
Util.ToRawUuidString(regionUUID));
IDataReader reader = ExecuteReader(cmd); IDataReader reader = ExecuteReader(cmd);
@ -549,8 +548,7 @@ namespace OpenSim.Data.MySQL
cmd.CommandText = "delete from terrain where " + cmd.CommandText = "delete from terrain where " +
"RegionUUID = ?RegionUUID"; "RegionUUID = ?RegionUUID";
cmd.Parameters.AddWithValue("RegionUUID", cmd.Parameters.AddWithValue("RegionUUID", regionID.ToString());
Util.ToRawUuidString(regionID));
ExecuteNonQuery(cmd); ExecuteNonQuery(cmd);
@ -576,7 +574,7 @@ namespace OpenSim.Data.MySQL
cmd.CommandText = "select RegionUUID, Revision, Heightfield " + cmd.CommandText = "select RegionUUID, Revision, Heightfield " +
"from terrain where RegionUUID = ?RegionUUID "+ "from terrain where RegionUUID = ?RegionUUID "+
"order by Revision desc limit 1"; "order by Revision desc limit 1";
cmd.Parameters.AddWithValue("RegionUUID", Util.ToRawUuidString(regionID)); cmd.Parameters.AddWithValue("RegionUUID", regionID.ToString());
IDataReader reader = ExecuteReader(cmd); IDataReader reader = ExecuteReader(cmd);
@ -621,7 +619,7 @@ namespace OpenSim.Data.MySQL
cmd.CommandText = "delete from land where UUID = ?UUID"; cmd.CommandText = "delete from land where UUID = ?UUID";
cmd.Parameters.AddWithValue("UUID", Util.ToRawUuidString(globalID)); cmd.Parameters.AddWithValue("UUID", globalID.ToString());
ExecuteNonQuery(cmd); ExecuteNonQuery(cmd);
cmd.Dispose(); cmd.Dispose();
@ -775,8 +773,7 @@ namespace OpenSim.Data.MySQL
cmd.CommandText = "select * from land where " + cmd.CommandText = "select * from land where " +
"RegionUUID = ?RegionUUID"; "RegionUUID = ?RegionUUID";
cmd.Parameters.AddWithValue("RegionUUID", cmd.Parameters.AddWithValue("RegionUUID", regionUUID.ToString());
Util.ToRawUuidString(regionUUID));
IDataReader reader = ExecuteReader(cmd); IDataReader reader = ExecuteReader(cmd);
@ -800,8 +797,7 @@ namespace OpenSim.Data.MySQL
cmd.CommandText = "select * from landaccesslist " + cmd.CommandText = "select * from landaccesslist " +
"where LandUUID = ?LandUUID"; "where LandUUID = ?LandUUID";
cmd.Parameters.AddWithValue("LandUUID", cmd.Parameters.AddWithValue("LandUUID", land.GlobalID.ToString());
Util.ToRawUuidString(land.GlobalID));
reader = ExecuteReader(cmd); reader = ExecuteReader(cmd);
@ -1157,11 +1153,11 @@ namespace OpenSim.Data.MySQL
/// <param name="regionUUID"></param> /// <param name="regionUUID"></param>
private void FillPrimCommand(MySqlCommand cmd, SceneObjectPart prim, UUID sceneGroupID, UUID regionUUID) private void FillPrimCommand(MySqlCommand cmd, SceneObjectPart prim, UUID sceneGroupID, UUID regionUUID)
{ {
cmd.Parameters.AddWithValue("UUID", Util.ToRawUuidString(prim.UUID)); cmd.Parameters.AddWithValue("UUID", prim.UUID.ToString());
cmd.Parameters.AddWithValue("RegionUUID", Util.ToRawUuidString(regionUUID)); cmd.Parameters.AddWithValue("RegionUUID", regionUUID.ToString());
cmd.Parameters.AddWithValue("CreationDate", prim.CreationDate); cmd.Parameters.AddWithValue("CreationDate", prim.CreationDate);
cmd.Parameters.AddWithValue("Name", prim.Name); cmd.Parameters.AddWithValue("Name", prim.Name);
cmd.Parameters.AddWithValue("SceneGroupID", Util.ToRawUuidString(sceneGroupID)); cmd.Parameters.AddWithValue("SceneGroupID", sceneGroupID.ToString());
// the UUID of the root part for this SceneObjectGroup // the UUID of the root part for this SceneObjectGroup
// various text fields // various text fields
cmd.Parameters.AddWithValue("Text", prim.Text); cmd.Parameters.AddWithValue("Text", prim.Text);
@ -1174,10 +1170,10 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("TouchName", prim.TouchName); cmd.Parameters.AddWithValue("TouchName", prim.TouchName);
// permissions // permissions
cmd.Parameters.AddWithValue("ObjectFlags", prim.ObjectFlags); cmd.Parameters.AddWithValue("ObjectFlags", prim.ObjectFlags);
cmd.Parameters.AddWithValue("CreatorID", Util.ToRawUuidString(prim.CreatorID)); cmd.Parameters.AddWithValue("CreatorID", prim.CreatorID.ToString());
cmd.Parameters.AddWithValue("OwnerID", Util.ToRawUuidString(prim.OwnerID)); cmd.Parameters.AddWithValue("OwnerID", prim.OwnerID.ToString());
cmd.Parameters.AddWithValue("GroupID", Util.ToRawUuidString(prim.GroupID)); cmd.Parameters.AddWithValue("GroupID", prim.GroupID.ToString());
cmd.Parameters.AddWithValue("LastOwnerID", Util.ToRawUuidString(prim.LastOwnerID)); cmd.Parameters.AddWithValue("LastOwnerID", prim.LastOwnerID.ToString());
cmd.Parameters.AddWithValue("OwnerMask", prim.OwnerMask); cmd.Parameters.AddWithValue("OwnerMask", prim.OwnerMask);
cmd.Parameters.AddWithValue("NextOwnerMask", prim.NextOwnerMask); cmd.Parameters.AddWithValue("NextOwnerMask", prim.NextOwnerMask);
cmd.Parameters.AddWithValue("GroupMask", prim.GroupMask); cmd.Parameters.AddWithValue("GroupMask", prim.GroupMask);
@ -1361,8 +1357,8 @@ namespace OpenSim.Data.MySQL
/// <param name="regionUUID"></param> /// <param name="regionUUID"></param>
private static void FillLandCommand(MySqlCommand cmd, LandData land, UUID regionUUID) private static void FillLandCommand(MySqlCommand cmd, LandData land, UUID regionUUID)
{ {
cmd.Parameters.AddWithValue("UUID", Util.ToRawUuidString(land.GlobalID)); cmd.Parameters.AddWithValue("UUID", land.GlobalID.ToString());
cmd.Parameters.AddWithValue("RegionUUID", Util.ToRawUuidString(regionUUID)); cmd.Parameters.AddWithValue("RegionUUID", regionUUID.ToString());
cmd.Parameters.AddWithValue("LocalLandID", land.LocalID); cmd.Parameters.AddWithValue("LocalLandID", land.LocalID);
// Bitmap is a byte[512] // Bitmap is a byte[512]
@ -1370,25 +1366,25 @@ namespace OpenSim.Data.MySQL
cmd.Parameters.AddWithValue("Name", land.Name); cmd.Parameters.AddWithValue("Name", land.Name);
cmd.Parameters.AddWithValue("Description", land.Description); cmd.Parameters.AddWithValue("Description", land.Description);
cmd.Parameters.AddWithValue("OwnerUUID", Util.ToRawUuidString(land.OwnerID)); cmd.Parameters.AddWithValue("OwnerUUID", land.OwnerID.ToString());
cmd.Parameters.AddWithValue("IsGroupOwned", land.IsGroupOwned); cmd.Parameters.AddWithValue("IsGroupOwned", land.IsGroupOwned);
cmd.Parameters.AddWithValue("Area", land.Area); cmd.Parameters.AddWithValue("Area", land.Area);
cmd.Parameters.AddWithValue("AuctionID", land.AuctionID); //Unemplemented cmd.Parameters.AddWithValue("AuctionID", land.AuctionID); //Unemplemented
cmd.Parameters.AddWithValue("Category", land.Category); //Enum libsecondlife.Parcel.ParcelCategory cmd.Parameters.AddWithValue("Category", land.Category); //Enum libsecondlife.Parcel.ParcelCategory
cmd.Parameters.AddWithValue("ClaimDate", land.ClaimDate); cmd.Parameters.AddWithValue("ClaimDate", land.ClaimDate);
cmd.Parameters.AddWithValue("ClaimPrice", land.ClaimPrice); cmd.Parameters.AddWithValue("ClaimPrice", land.ClaimPrice);
cmd.Parameters.AddWithValue("GroupUUID", Util.ToRawUuidString(land.GroupID)); cmd.Parameters.AddWithValue("GroupUUID", land.GroupID.ToString());
cmd.Parameters.AddWithValue("SalePrice", land.SalePrice); cmd.Parameters.AddWithValue("SalePrice", land.SalePrice);
cmd.Parameters.AddWithValue("LandStatus", land.Status); //Enum. libsecondlife.Parcel.ParcelStatus cmd.Parameters.AddWithValue("LandStatus", land.Status); //Enum. libsecondlife.Parcel.ParcelStatus
cmd.Parameters.AddWithValue("LandFlags", land.Flags); cmd.Parameters.AddWithValue("LandFlags", land.Flags);
cmd.Parameters.AddWithValue("LandingType", land.LandingType); cmd.Parameters.AddWithValue("LandingType", land.LandingType);
cmd.Parameters.AddWithValue("MediaAutoScale", land.MediaAutoScale); cmd.Parameters.AddWithValue("MediaAutoScale", land.MediaAutoScale);
cmd.Parameters.AddWithValue("MediaTextureUUID", Util.ToRawUuidString(land.MediaID)); cmd.Parameters.AddWithValue("MediaTextureUUID", land.MediaID.ToString());
cmd.Parameters.AddWithValue("MediaURL", land.MediaURL); cmd.Parameters.AddWithValue("MediaURL", land.MediaURL);
cmd.Parameters.AddWithValue("MusicURL", land.MusicURL); cmd.Parameters.AddWithValue("MusicURL", land.MusicURL);
cmd.Parameters.AddWithValue("PassHours", land.PassHours); cmd.Parameters.AddWithValue("PassHours", land.PassHours);
cmd.Parameters.AddWithValue("PassPrice", land.PassPrice); cmd.Parameters.AddWithValue("PassPrice", land.PassPrice);
cmd.Parameters.AddWithValue("SnapshotUUID", Util.ToRawUuidString(land.SnapshotID)); cmd.Parameters.AddWithValue("SnapshotUUID", land.SnapshotID.ToString());
cmd.Parameters.AddWithValue("UserLocationX", land.UserLocation.X); cmd.Parameters.AddWithValue("UserLocationX", land.UserLocation.X);
cmd.Parameters.AddWithValue("UserLocationY", land.UserLocation.Y); cmd.Parameters.AddWithValue("UserLocationY", land.UserLocation.Y);
cmd.Parameters.AddWithValue("UserLocationZ", land.UserLocation.Z); cmd.Parameters.AddWithValue("UserLocationZ", land.UserLocation.Z);
@ -1408,8 +1404,8 @@ namespace OpenSim.Data.MySQL
/// <param name="parcelID"></param> /// <param name="parcelID"></param>
private static void FillLandAccessCommand(MySqlCommand cmd, ParcelManager.ParcelAccessEntry entry, UUID parcelID) private static void FillLandAccessCommand(MySqlCommand cmd, ParcelManager.ParcelAccessEntry entry, UUID parcelID)
{ {
cmd.Parameters.AddWithValue("LandUUID", Util.ToRawUuidString(parcelID)); cmd.Parameters.AddWithValue("LandUUID", parcelID.ToString());
cmd.Parameters.AddWithValue("AccessUUID", Util.ToRawUuidString(entry.AgentID)); cmd.Parameters.AddWithValue("AccessUUID", entry.AgentID.ToString());
cmd.Parameters.AddWithValue("Flags", entry.Flags); cmd.Parameters.AddWithValue("Flags", entry.Flags);
} }
@ -1465,7 +1461,7 @@ namespace OpenSim.Data.MySQL
private void FillShapeCommand(MySqlCommand cmd, SceneObjectPart prim) private void FillShapeCommand(MySqlCommand cmd, SceneObjectPart prim)
{ {
PrimitiveBaseShape s = prim.Shape; PrimitiveBaseShape s = prim.Shape;
cmd.Parameters.AddWithValue("UUID", Util.ToRawUuidString(prim.UUID)); cmd.Parameters.AddWithValue("UUID", prim.UUID.ToString());
// shape is an enum // shape is an enum
cmd.Parameters.AddWithValue("Shape", 0); cmd.Parameters.AddWithValue("Shape", 0);
// vectors // vectors
@ -1533,8 +1529,9 @@ namespace OpenSim.Data.MySQL
ExecuteNonQuery(cmd); ExecuteNonQuery(cmd);
} }
cmd.Dispose(); cmd.Dispose();
} }
} }
} }
} }

View File

@ -0,0 +1,79 @@
BEGIN;
update terrain
set RegionUUID = concat(substr(RegionUUID, 1, 8), "-", substr(RegionUUID, 9, 4), "-", substr(RegionUUID, 13, 4), "-", substr(RegionUUID, 17, 4), "-", substr(RegionUUID, 21, 12))
where RegionUUID not like '%-%';
update landaccesslist
set LandUUID = concat(substr(LandUUID, 1, 8), "-", substr(LandUUID, 9, 4), "-", substr(LandUUID, 13, 4), "-", substr(LandUUID, 17, 4), "-", substr(LandUUID, 21, 12))
where LandUUID not like '%-%';
update landaccesslist
set AccessUUID = concat(substr(AccessUUID, 1, 8), "-", substr(AccessUUID, 9, 4), "-", substr(AccessUUID, 13, 4), "-", substr(AccessUUID, 17, 4), "-", substr(AccessUUID, 21, 12))
where AccessUUID not like '%-%';
update prims
set UUID = concat(substr(UUID, 1, 8), "-", substr(UUID, 9, 4), "-", substr(UUID, 13, 4), "-", substr(UUID, 17, 4), "-", substr(UUID, 21, 12))
where UUID not like '%-%';
update prims
set RegionUUID = concat(substr(RegionUUID, 1, 8), "-", substr(RegionUUID, 9, 4), "-", substr(RegionUUID, 13, 4), "-", substr(RegionUUID, 17, 4), "-", substr(RegionUUID, 21, 12))
where RegionUUID not like '%-%';
update prims
set SceneGroupID = concat(substr(SceneGroupID, 1, 8), "-", substr(SceneGroupID, 9, 4), "-", substr(SceneGroupID, 13, 4), "-", substr(SceneGroupID, 17, 4), "-", substr(SceneGroupID, 21, 12))
where SceneGroupID not like '%-%';
update prims
set CreatorID = concat(substr(CreatorID, 1, 8), "-", substr(CreatorID, 9, 4), "-", substr(CreatorID, 13, 4), "-", substr(CreatorID, 17, 4), "-", substr(CreatorID, 21, 12))
where CreatorID not like '%-%';
update prims
set OwnerID = concat(substr(OwnerID, 1, 8), "-", substr(OwnerID, 9, 4), "-", substr(OwnerID, 13, 4), "-", substr(OwnerID, 17, 4), "-", substr(OwnerID, 21, 12))
where OwnerID not like '%-%';
update prims
set GroupID = concat(substr(GroupID, 1, 8), "-", substr(GroupID, 9, 4), "-", substr(GroupID, 13, 4), "-", substr(GroupID, 17, 4), "-", substr(GroupID, 21, 12))
where GroupID not like '%-%';
update prims
set LastOwnerID = concat(substr(LastOwnerID, 1, 8), "-", substr(LastOwnerID, 9, 4), "-", substr(LastOwnerID, 13, 4), "-", substr(LastOwnerID, 17, 4), "-", substr(LastOwnerID, 21, 12))
where LastOwnerID not like '%-%';
update primshapes
set UUID = concat(substr(UUID, 1, 8), "-", substr(UUID, 9, 4), "-", substr(UUID, 13, 4), "-", substr(UUID, 17, 4), "-", substr(UUID, 21, 12))
where UUID not like '%-%';
update land
set UUID = concat(substr(UUID, 1, 8), "-", substr(UUID, 9, 4), "-", substr(UUID, 13, 4), "-", substr(UUID, 17, 4), "-", substr(UUID, 21, 12))
where UUID not like '%-%';
update land
set RegionUUID = concat(substr(RegionUUID, 1, 8), "-", substr(RegionUUID, 9, 4), "-", substr(RegionUUID, 13, 4), "-", substr(RegionUUID, 17, 4), "-", substr(RegionUUID, 21, 12))
where RegionUUID not like '%-%';
update land
set OwnerUUID = concat(substr(OwnerUUID, 1, 8), "-", substr(OwnerUUID, 9, 4), "-", substr(OwnerUUID, 13, 4), "-", substr(OwnerUUID, 17, 4), "-", substr(OwnerUUID, 21, 12))
where OwnerUUID not like '%-%';
update land
set GroupUUID = concat(substr(GroupUUID, 1, 8), "-", substr(GroupUUID, 9, 4), "-", substr(GroupUUID, 13, 4), "-", substr(GroupUUID, 17, 4), "-", substr(GroupUUID, 21, 12))
where GroupUUID not like '%-%';
update land
set MediaTextureUUID = concat(substr(MediaTextureUUID, 1, 8), "-", substr(MediaTextureUUID, 9, 4), "-", substr(MediaTextureUUID, 13, 4), "-", substr(MediaTextureUUID, 17, 4), "-", substr(MediaTextureUUID, 21, 12))
where MediaTextureUUID not like '%-%';
update land
set SnapshotUUID = concat(substr(SnapshotUUID, 1, 8), "-", substr(SnapshotUUID, 9, 4), "-", substr(SnapshotUUID, 13, 4), "-", substr(SnapshotUUID, 17, 4), "-", substr(SnapshotUUID, 21, 12))
where SnapshotUUID not like '%-%';
update land
set AuthbuyerID = concat(substr(AuthbuyerID, 1, 8), "-", substr(AuthbuyerID, 9, 4), "-", substr(AuthbuyerID, 13, 4), "-", substr(AuthbuyerID, 17, 4), "-", substr(AuthbuyerID, 21, 12))
where AuthbuyerID not like '%-%';
COMMIT;