aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Data.MySQL
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Data.MySQL')
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLAssetData.cs14
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLDataStore.cs404
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLGridData.cs49
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs4
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLLogData.cs2
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLManager.cs2
-rw-r--r--OpenSim/Framework/Data.MySQL/MySQLUserData.cs53
7 files changed, 269 insertions, 259 deletions
diff --git a/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs b/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs
index 19ae115..b20c54e 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs
@@ -83,13 +83,13 @@ namespace OpenSim.Framework.Data.MySQL
83 if (dbReader.Read()) 83 if (dbReader.Read())
84 { 84 {
85 asset = new AssetBase(); 85 asset = new AssetBase();
86 asset.Data = (byte[])dbReader["data"]; 86 asset.Data = (byte[]) dbReader["data"];
87 asset.Description = (string)dbReader["description"]; 87 asset.Description = (string) dbReader["description"];
88 asset.FullID = assetID; 88 asset.FullID = assetID;
89 asset.InvType = (sbyte)dbReader["invType"]; 89 asset.InvType = (sbyte) dbReader["invType"];
90 asset.Local = ((sbyte)dbReader["local"]) != 0 ? true : false; 90 asset.Local = ((sbyte) dbReader["local"]) != 0 ? true : false;
91 asset.Name = (string)dbReader["name"]; 91 asset.Name = (string) dbReader["name"];
92 asset.Type = (sbyte)dbReader["assetType"]; 92 asset.Type = (sbyte) dbReader["assetType"];
93 } 93 }
94 dbReader.Close(); 94 dbReader.Close();
95 cmd.Dispose(); 95 cmd.Dispose();
@@ -98,7 +98,7 @@ namespace OpenSim.Framework.Data.MySQL
98 catch (Exception) 98 catch (Exception)
99 { 99 {
100 MainLog.Instance.Warn("ASSETS", "MySql failure fetching asset"); 100 MainLog.Instance.Warn("ASSETS", "MySql failure fetching asset");
101 } 101 }
102 } 102 }
103 return asset; 103 return asset;
104 } 104 }
diff --git a/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs b/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs
index c48c88f..fcf8c6f 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs
@@ -31,15 +31,12 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using System.Diagnostics; 32using System.Diagnostics;
33using System.IO; 33using System.IO;
34using System.Text;
35using libsecondlife; 34using libsecondlife;
36using MySql.Data.MySqlClient; 35using MySql.Data.MySqlClient;
37using OpenSim.Framework.Console; 36using OpenSim.Framework.Console;
38using OpenSim.Region.Environment.Interfaces; 37using OpenSim.Region.Environment.Interfaces;
39using OpenSim.Region.Environment.LandManagement; 38using OpenSim.Region.Environment.LandManagement;
40using OpenSim.Region.Environment.Scenes; 39using OpenSim.Region.Environment.Scenes;
41using System.Data.SqlClient;
42using System.Data.Common;
43 40
44namespace OpenSim.Framework.Data.MySQL 41namespace OpenSim.Framework.Data.MySQL
45{ 42{
@@ -130,7 +127,7 @@ namespace OpenSim.Framework.Data.MySQL
130 { 127 {
131 foreach (SceneObjectPart prim in obj.Children.Values) 128 foreach (SceneObjectPart prim in obj.Children.Values)
132 { 129 {
133 if ((prim.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0) 130 if ((prim.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0)
134 { 131 {
135 MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); 132 MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID);
136 addPrim(prim, obj.UUID, regionUUID); 133 addPrim(prim, obj.UUID, regionUUID);
@@ -156,7 +153,7 @@ namespace OpenSim.Framework.Data.MySQL
156 DataRow[] primRows = prims.Select(selectExp); 153 DataRow[] primRows = prims.Select(selectExp);
157 foreach (DataRow row in primRows) 154 foreach (DataRow row in primRows)
158 { 155 {
159 LLUUID uuid = new LLUUID((string)row["UUID"]); 156 LLUUID uuid = new LLUUID((string) row["UUID"]);
160 DataRow shapeRow = shapes.Rows.Find(Util.ToRawUuidString(uuid)); 157 DataRow shapeRow = shapes.Rows.Find(Util.ToRawUuidString(uuid));
161 if (shapeRow != null) 158 if (shapeRow != null)
162 { 159 {
@@ -191,8 +188,8 @@ namespace OpenSim.Framework.Data.MySQL
191 { 188 {
192 try 189 try
193 { 190 {
194 string uuid = (string)primRow["UUID"]; 191 string uuid = (string) primRow["UUID"];
195 string objID = (string)primRow["SceneGroupID"]; 192 string objID = (string) primRow["SceneGroupID"];
196 if (uuid == objID) //is new SceneObjectGroup ? 193 if (uuid == objID) //is new SceneObjectGroup ?
197 { 194 {
198 SceneObjectGroup group = new SceneObjectGroup(); 195 SceneObjectGroup group = new SceneObjectGroup();
@@ -255,10 +252,9 @@ namespace OpenSim.Framework.Data.MySQL
255 lock (m_dataSet) 252 lock (m_dataSet)
256 { 253 {
257 MySqlCommand cmd = new MySqlCommand("insert into terrain(RegionUUID, Revision, Heightfield)" + 254 MySqlCommand cmd = new MySqlCommand("insert into terrain(RegionUUID, Revision, Heightfield)" +
258 " values(?RegionUUID, ?Revision, ?Heightfield)", m_connection); 255 " values(?RegionUUID, ?Revision, ?Heightfield)", m_connection);
259 using (cmd) 256 using (cmd)
260 { 257 {
261
262 cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); 258 cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID)));
263 cmd.Parameters.Add(new MySqlParameter("?Revision", revision)); 259 cmd.Parameters.Add(new MySqlParameter("?Revision", revision));
264 cmd.Parameters.Add(new MySqlParameter("?Heightfield", serializeTerrain(ter))); 260 cmd.Parameters.Add(new MySqlParameter("?Heightfield", serializeTerrain(ter)));
@@ -269,7 +265,7 @@ namespace OpenSim.Framework.Data.MySQL
269 265
270 public double[,] LoadTerrain(LLUUID regionID) 266 public double[,] LoadTerrain(LLUUID regionID)
271 { 267 {
272 double[,] terret = new double[256, 256]; 268 double[,] terret = new double[256,256];
273 terret.Initialize(); 269 terret.Initialize();
274 270
275 MySqlCommand cmd = new MySqlCommand( 271 MySqlCommand cmd = new MySqlCommand(
@@ -278,7 +274,7 @@ namespace OpenSim.Framework.Data.MySQL
278 , m_connection); 274 , m_connection);
279 275
280 MySqlParameter param = new MySqlParameter(); 276 MySqlParameter param = new MySqlParameter();
281 cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); 277 cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID)));
282 278
283 if (m_connection.State != ConnectionState.Open) 279 if (m_connection.State != ConnectionState.Open)
284 { 280 {
@@ -290,15 +286,15 @@ namespace OpenSim.Framework.Data.MySQL
290 int rev = 0; 286 int rev = 0;
291 if (row.Read()) 287 if (row.Read())
292 { 288 {
293 byte[] heightmap = (byte[])row["Heightfield"]; 289 byte[] heightmap = (byte[]) row["Heightfield"];
294 for (int x = 0; x < 256; x++) 290 for (int x = 0; x < 256; x++)
295 { 291 {
296 for (int y = 0; y < 256; y++) 292 for (int y = 0; y < 256; y++)
297 { 293 {
298 terret[x, y] = BitConverter.ToDouble(heightmap, ((x * 256) + y) * 8); 294 terret[x, y] = BitConverter.ToDouble(heightmap, ((x*256) + y)*8);
299 } 295 }
300 } 296 }
301 rev = (int)row["Revision"]; 297 rev = (int) row["Revision"];
302 } 298 }
303 else 299 else
304 { 300 {
@@ -322,7 +318,9 @@ namespace OpenSim.Framework.Data.MySQL
322 cmd.ExecuteNonQuery(); 318 cmd.ExecuteNonQuery();
323 } 319 }
324 320
325 using (MySqlCommand cmd = new MySqlCommand("delete from landaccesslist where LandUUID=?UUID", m_connection)) 321 using (
322 MySqlCommand cmd = new MySqlCommand("delete from landaccesslist where LandUUID=?UUID", m_connection)
323 )
326 { 324 {
327 cmd.Parameters.Add(new MySqlParameter("?UUID", Util.ToRawUuidString(globalID))); 325 cmd.Parameters.Add(new MySqlParameter("?UUID", Util.ToRawUuidString(globalID)));
328 cmd.ExecuteNonQuery(); 326 cmd.ExecuteNonQuery();
@@ -336,7 +334,7 @@ namespace OpenSim.Framework.Data.MySQL
336 { 334 {
337 DataTable land = m_landTable; 335 DataTable land = m_landTable;
338 DataTable landaccesslist = m_landAccessListTable; 336 DataTable landaccesslist = m_landAccessListTable;
339 337
340 DataRow landRow = land.Rows.Find(Util.ToRawUuidString(parcel.landData.globalID)); 338 DataRow landRow = land.Rows.Find(Util.ToRawUuidString(parcel.landData.globalID));
341 if (landRow == null) 339 if (landRow == null)
342 { 340 {
@@ -349,7 +347,9 @@ namespace OpenSim.Framework.Data.MySQL
349 fillLandRow(landRow, parcel.landData, regionUUID); 347 fillLandRow(landRow, parcel.landData, regionUUID);
350 } 348 }
351 349
352 using (MySqlCommand cmd = new MySqlCommand("delete from landaccesslist where LandUUID=?LandUUID", m_connection)) 350 using (
351 MySqlCommand cmd =
352 new MySqlCommand("delete from landaccesslist where LandUUID=?LandUUID", m_connection))
353 { 353 {
354 cmd.Parameters.Add(new MySqlParameter("?LandUUID", Util.ToRawUuidString(parcel.landData.globalID))); 354 cmd.Parameters.Add(new MySqlParameter("?LandUUID", Util.ToRawUuidString(parcel.landData.globalID)));
355 cmd.ExecuteNonQuery(); 355 cmd.ExecuteNonQuery();
@@ -361,13 +361,12 @@ namespace OpenSim.Framework.Data.MySQL
361 fillLandAccessRow(newAccessRow, entry, parcel.landData.globalID); 361 fillLandAccessRow(newAccessRow, entry, parcel.landData.globalID);
362 landaccesslist.Rows.Add(newAccessRow); 362 landaccesslist.Rows.Add(newAccessRow);
363 } 363 }
364
365 } 364 }
366 365
367 Commit(); 366 Commit();
368 } 367 }
369 368
370 public List<Framework.LandData> LoadLandObjects(LLUUID regionUUID) 369 public List<LandData> LoadLandObjects(LLUUID regionUUID)
371 { 370 {
372 List<LandData> landDataForRegion = new List<LandData>(); 371 List<LandData> landDataForRegion = new List<LandData>();
373 lock (m_dataSet) 372 lock (m_dataSet)
@@ -403,7 +402,7 @@ namespace OpenSim.Framework.Data.MySQL
403 foreach (DataRow row in table.Rows) 402 foreach (DataRow row in table.Rows)
404 { 403 {
405 //--- Display the original values, if there are any. 404 //--- Display the original values, if there are any.
406 if (row.HasVersion(System.Data.DataRowVersion.Original)) 405 if (row.HasVersion(DataRowVersion.Original))
407 { 406 {
408 Debug.Write("Original Row Values ===> "); 407 Debug.Write("Original Row Values ===> ");
409 foreach (DataColumn column in table.Columns) 408 foreach (DataColumn column in table.Columns)
@@ -412,7 +411,7 @@ namespace OpenSim.Framework.Data.MySQL
412 Debug.WriteLine(""); 411 Debug.WriteLine("");
413 } 412 }
414 //--- Display the current values, if there are any. 413 //--- Display the current values, if there are any.
415 if (row.HasVersion(System.Data.DataRowVersion.Current)) 414 if (row.HasVersion(DataRowVersion.Current))
416 { 415 {
417 Debug.Write("Current Row Values ====> "); 416 Debug.Write("Current Row Values ====> ");
418 foreach (DataColumn column in table.Columns) 417 foreach (DataColumn column in table.Columns)
@@ -470,9 +469,9 @@ namespace OpenSim.Framework.Data.MySQL
470 { 469 {
471 DataTable terrain = new DataTable("terrain"); 470 DataTable terrain = new DataTable("terrain");
472 471
473 createCol(terrain, "RegionUUID", typeof(String)); 472 createCol(terrain, "RegionUUID", typeof (String));
474 createCol(terrain, "Revision", typeof(Int32)); 473 createCol(terrain, "Revision", typeof (Int32));
475 DataColumn heightField = createCol(terrain, "Heightfield", typeof(Byte[])); 474 DataColumn heightField = createCol(terrain, "Heightfield", typeof (Byte[]));
476 return terrain; 475 return terrain;
477 } 476 }
478 477
@@ -480,62 +479,62 @@ namespace OpenSim.Framework.Data.MySQL
480 { 479 {
481 DataTable prims = new DataTable("prims"); 480 DataTable prims = new DataTable("prims");
482 481
483 createCol(prims, "UUID", typeof(String)); 482 createCol(prims, "UUID", typeof (String));
484 createCol(prims, "RegionUUID", typeof(String)); 483 createCol(prims, "RegionUUID", typeof (String));
485 createCol(prims, "ParentID", typeof(Int32)); 484 createCol(prims, "ParentID", typeof (Int32));
486 createCol(prims, "CreationDate", typeof(Int32)); 485 createCol(prims, "CreationDate", typeof (Int32));
487 createCol(prims, "Name", typeof(String)); 486 createCol(prims, "Name", typeof (String));
488 createCol(prims, "SceneGroupID", typeof(String)); 487 createCol(prims, "SceneGroupID", typeof (String));
489 // various text fields 488 // various text fields
490 createCol(prims, "Text", typeof(String)); 489 createCol(prims, "Text", typeof (String));
491 createCol(prims, "Description", typeof(String)); 490 createCol(prims, "Description", typeof (String));
492 createCol(prims, "SitName", typeof(String)); 491 createCol(prims, "SitName", typeof (String));
493 createCol(prims, "TouchName", typeof(String)); 492 createCol(prims, "TouchName", typeof (String));
494 // permissions 493 // permissions
495 createCol(prims, "ObjectFlags", typeof(Int32)); 494 createCol(prims, "ObjectFlags", typeof (Int32));
496 createCol(prims, "CreatorID", typeof(String)); 495 createCol(prims, "CreatorID", typeof (String));
497 createCol(prims, "OwnerID", typeof(String)); 496 createCol(prims, "OwnerID", typeof (String));
498 createCol(prims, "GroupID", typeof(String)); 497 createCol(prims, "GroupID", typeof (String));
499 createCol(prims, "LastOwnerID", typeof(String)); 498 createCol(prims, "LastOwnerID", typeof (String));
500 createCol(prims, "OwnerMask", typeof(Int32)); 499 createCol(prims, "OwnerMask", typeof (Int32));
501 createCol(prims, "NextOwnerMask", typeof(Int32)); 500 createCol(prims, "NextOwnerMask", typeof (Int32));
502 createCol(prims, "GroupMask", typeof(Int32)); 501 createCol(prims, "GroupMask", typeof (Int32));
503 createCol(prims, "EveryoneMask", typeof(Int32)); 502 createCol(prims, "EveryoneMask", typeof (Int32));
504 createCol(prims, "BaseMask", typeof(Int32)); 503 createCol(prims, "BaseMask", typeof (Int32));
505 // vectors 504 // vectors
506 createCol(prims, "PositionX", typeof(Double)); 505 createCol(prims, "PositionX", typeof (Double));
507 createCol(prims, "PositionY", typeof(Double)); 506 createCol(prims, "PositionY", typeof (Double));
508 createCol(prims, "PositionZ", typeof(Double)); 507 createCol(prims, "PositionZ", typeof (Double));
509 createCol(prims, "GroupPositionX", typeof(Double)); 508 createCol(prims, "GroupPositionX", typeof (Double));
510 createCol(prims, "GroupPositionY", typeof(Double)); 509 createCol(prims, "GroupPositionY", typeof (Double));
511 createCol(prims, "GroupPositionZ", typeof(Double)); 510 createCol(prims, "GroupPositionZ", typeof (Double));
512 createCol(prims, "VelocityX", typeof(Double)); 511 createCol(prims, "VelocityX", typeof (Double));
513 createCol(prims, "VelocityY", typeof(Double)); 512 createCol(prims, "VelocityY", typeof (Double));
514 createCol(prims, "VelocityZ", typeof(Double)); 513 createCol(prims, "VelocityZ", typeof (Double));
515 createCol(prims, "AngularVelocityX", typeof(Double)); 514 createCol(prims, "AngularVelocityX", typeof (Double));
516 createCol(prims, "AngularVelocityY", typeof(Double)); 515 createCol(prims, "AngularVelocityY", typeof (Double));
517 createCol(prims, "AngularVelocityZ", typeof(Double)); 516 createCol(prims, "AngularVelocityZ", typeof (Double));
518 createCol(prims, "AccelerationX", typeof(Double)); 517 createCol(prims, "AccelerationX", typeof (Double));
519 createCol(prims, "AccelerationY", typeof(Double)); 518 createCol(prims, "AccelerationY", typeof (Double));
520 createCol(prims, "AccelerationZ", typeof(Double)); 519 createCol(prims, "AccelerationZ", typeof (Double));
521 // quaternions 520 // quaternions
522 createCol(prims, "RotationX", typeof(Double)); 521 createCol(prims, "RotationX", typeof (Double));
523 createCol(prims, "RotationY", typeof(Double)); 522 createCol(prims, "RotationY", typeof (Double));
524 createCol(prims, "RotationZ", typeof(Double)); 523 createCol(prims, "RotationZ", typeof (Double));
525 createCol(prims, "RotationW", typeof(Double)); 524 createCol(prims, "RotationW", typeof (Double));
526 // sit target 525 // sit target
527 createCol(prims, "SitTargetOffsetX", typeof(Double)); 526 createCol(prims, "SitTargetOffsetX", typeof (Double));
528 createCol(prims, "SitTargetOffsetY", typeof(Double)); 527 createCol(prims, "SitTargetOffsetY", typeof (Double));
529 createCol(prims, "SitTargetOffsetZ", typeof(Double)); 528 createCol(prims, "SitTargetOffsetZ", typeof (Double));
530 529
531 createCol(prims, "SitTargetOrientW", typeof(Double)); 530 createCol(prims, "SitTargetOrientW", typeof (Double));
532 createCol(prims, "SitTargetOrientX", typeof(Double)); 531 createCol(prims, "SitTargetOrientX", typeof (Double));
533 createCol(prims, "SitTargetOrientY", typeof(Double)); 532 createCol(prims, "SitTargetOrientY", typeof (Double));
534 createCol(prims, "SitTargetOrientZ", typeof(Double)); 533 createCol(prims, "SitTargetOrientZ", typeof (Double));
535 534
536 535
537 // Add in contraints 536 // Add in contraints
538 prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] }; 537 prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]};
539 538
540 return prims; 539 return prims;
541 } 540 }
@@ -543,42 +542,42 @@ namespace OpenSim.Framework.Data.MySQL
543 private DataTable createLandTable() 542 private DataTable createLandTable()
544 { 543 {
545 DataTable land = new DataTable("land"); 544 DataTable land = new DataTable("land");
546 createCol(land, "UUID", typeof(String)); 545 createCol(land, "UUID", typeof (String));
547 createCol(land, "RegionUUID", typeof(String)); 546 createCol(land, "RegionUUID", typeof (String));
548 createCol(land, "LocalLandID", typeof(Int32)); 547 createCol(land, "LocalLandID", typeof (Int32));
549 548
550 // Bitmap is a byte[512] 549 // Bitmap is a byte[512]
551 createCol(land, "Bitmap", typeof(Byte[])); 550 createCol(land, "Bitmap", typeof (Byte[]));
552 551
553 createCol(land, "Name", typeof(String)); 552 createCol(land, "Name", typeof (String));
554 createCol(land, "Description", typeof(String)); 553 createCol(land, "Description", typeof (String));
555 createCol(land, "OwnerUUID", typeof(String)); 554 createCol(land, "OwnerUUID", typeof (String));
556 createCol(land, "IsGroupOwned", typeof(Int32)); 555 createCol(land, "IsGroupOwned", typeof (Int32));
557 createCol(land, "Area", typeof(Int32)); 556 createCol(land, "Area", typeof (Int32));
558 createCol(land, "AuctionID", typeof(Int32)); //Unemplemented 557 createCol(land, "AuctionID", typeof (Int32)); //Unemplemented
559 createCol(land, "Category", typeof(Int32)); //Enum libsecondlife.Parcel.ParcelCategory 558 createCol(land, "Category", typeof (Int32)); //Enum libsecondlife.Parcel.ParcelCategory
560 createCol(land, "ClaimDate", typeof(Int32)); 559 createCol(land, "ClaimDate", typeof (Int32));
561 createCol(land, "ClaimPrice", typeof(Int32)); 560 createCol(land, "ClaimPrice", typeof (Int32));
562 createCol(land, "GroupUUID", typeof(String)); 561 createCol(land, "GroupUUID", typeof (String));
563 createCol(land, "SalePrice", typeof(Int32)); 562 createCol(land, "SalePrice", typeof (Int32));
564 createCol(land, "LandStatus", typeof(Int32)); //Enum. libsecondlife.Parcel.ParcelStatus 563 createCol(land, "LandStatus", typeof (Int32)); //Enum. libsecondlife.Parcel.ParcelStatus
565 createCol(land, "LandFlags", typeof(Int32)); 564 createCol(land, "LandFlags", typeof (Int32));
566 createCol(land, "LandingType", typeof(Int32)); 565 createCol(land, "LandingType", typeof (Int32));
567 createCol(land, "MediaAutoScale", typeof(Int32)); 566 createCol(land, "MediaAutoScale", typeof (Int32));
568 createCol(land, "MediaTextureUUID", typeof(String)); 567 createCol(land, "MediaTextureUUID", typeof (String));
569 createCol(land, "MediaURL", typeof(String)); 568 createCol(land, "MediaURL", typeof (String));
570 createCol(land, "MusicURL", typeof(String)); 569 createCol(land, "MusicURL", typeof (String));
571 createCol(land, "PassHours", typeof(Double)); 570 createCol(land, "PassHours", typeof (Double));
572 createCol(land, "PassPrice", typeof(Int32)); 571 createCol(land, "PassPrice", typeof (Int32));
573 createCol(land, "SnapshotUUID", typeof(String)); 572 createCol(land, "SnapshotUUID", typeof (String));
574 createCol(land, "UserLocationX", typeof(Double)); 573 createCol(land, "UserLocationX", typeof (Double));
575 createCol(land, "UserLocationY", typeof(Double)); 574 createCol(land, "UserLocationY", typeof (Double));
576 createCol(land, "UserLocationZ", typeof(Double)); 575 createCol(land, "UserLocationZ", typeof (Double));
577 createCol(land, "UserLookAtX", typeof(Double)); 576 createCol(land, "UserLookAtX", typeof (Double));
578 createCol(land, "UserLookAtY", typeof(Double)); 577 createCol(land, "UserLookAtY", typeof (Double));
579 createCol(land, "UserLookAtZ", typeof(Double)); 578 createCol(land, "UserLookAtZ", typeof (Double));
580 579
581 land.PrimaryKey = new DataColumn[] { land.Columns["UUID"] }; 580 land.PrimaryKey = new DataColumn[] {land.Columns["UUID"]};
582 581
583 return land; 582 return land;
584 } 583 }
@@ -586,9 +585,9 @@ namespace OpenSim.Framework.Data.MySQL
586 private DataTable createLandAccessListTable() 585 private DataTable createLandAccessListTable()
587 { 586 {
588 DataTable landaccess = new DataTable("landaccesslist"); 587 DataTable landaccess = new DataTable("landaccesslist");
589 createCol(landaccess, "LandUUID", typeof(String)); 588 createCol(landaccess, "LandUUID", typeof (String));
590 createCol(landaccess, "AccessUUID", typeof(String)); 589 createCol(landaccess, "AccessUUID", typeof (String));
591 createCol(landaccess, "Flags", typeof(Int32)); 590 createCol(landaccess, "Flags", typeof (Int32));
592 591
593 return landaccess; 592 return landaccess;
594 } 593 }
@@ -596,38 +595,38 @@ namespace OpenSim.Framework.Data.MySQL
596 private DataTable createShapeTable() 595 private DataTable createShapeTable()
597 { 596 {
598 DataTable shapes = new DataTable("primshapes"); 597 DataTable shapes = new DataTable("primshapes");
599 createCol(shapes, "UUID", typeof(String)); 598 createCol(shapes, "UUID", typeof (String));
600 // shape is an enum 599 // shape is an enum
601 createCol(shapes, "Shape", typeof(Int32)); 600 createCol(shapes, "Shape", typeof (Int32));
602 // vectors 601 // vectors
603 createCol(shapes, "ScaleX", typeof(Double)); 602 createCol(shapes, "ScaleX", typeof (Double));
604 createCol(shapes, "ScaleY", typeof(Double)); 603 createCol(shapes, "ScaleY", typeof (Double));
605 createCol(shapes, "ScaleZ", typeof(Double)); 604 createCol(shapes, "ScaleZ", typeof (Double));
606 // paths 605 // paths
607 createCol(shapes, "PCode", typeof(Int32)); 606 createCol(shapes, "PCode", typeof (Int32));
608 createCol(shapes, "PathBegin", typeof(Int32)); 607 createCol(shapes, "PathBegin", typeof (Int32));
609 createCol(shapes, "PathEnd", typeof(Int32)); 608 createCol(shapes, "PathEnd", typeof (Int32));
610 createCol(shapes, "PathScaleX", typeof(Int32)); 609 createCol(shapes, "PathScaleX", typeof (Int32));
611 createCol(shapes, "PathScaleY", typeof(Int32)); 610 createCol(shapes, "PathScaleY", typeof (Int32));
612 createCol(shapes, "PathShearX", typeof(Int32)); 611 createCol(shapes, "PathShearX", typeof (Int32));
613 createCol(shapes, "PathShearY", typeof(Int32)); 612 createCol(shapes, "PathShearY", typeof (Int32));
614 createCol(shapes, "PathSkew", typeof(Int32)); 613 createCol(shapes, "PathSkew", typeof (Int32));
615 createCol(shapes, "PathCurve", typeof(Int32)); 614 createCol(shapes, "PathCurve", typeof (Int32));
616 createCol(shapes, "PathRadiusOffset", typeof(Int32)); 615 createCol(shapes, "PathRadiusOffset", typeof (Int32));
617 createCol(shapes, "PathRevolutions", typeof(Int32)); 616 createCol(shapes, "PathRevolutions", typeof (Int32));
618 createCol(shapes, "PathTaperX", typeof(Int32)); 617 createCol(shapes, "PathTaperX", typeof (Int32));
619 createCol(shapes, "PathTaperY", typeof(Int32)); 618 createCol(shapes, "PathTaperY", typeof (Int32));
620 createCol(shapes, "PathTwist", typeof(Int32)); 619 createCol(shapes, "PathTwist", typeof (Int32));
621 createCol(shapes, "PathTwistBegin", typeof(Int32)); 620 createCol(shapes, "PathTwistBegin", typeof (Int32));
622 // profile 621 // profile
623 createCol(shapes, "ProfileBegin", typeof(Int32)); 622 createCol(shapes, "ProfileBegin", typeof (Int32));
624 createCol(shapes, "ProfileEnd", typeof(Int32)); 623 createCol(shapes, "ProfileEnd", typeof (Int32));
625 createCol(shapes, "ProfileCurve", typeof(Int32)); 624 createCol(shapes, "ProfileCurve", typeof (Int32));
626 createCol(shapes, "ProfileHollow", typeof(Int32)); 625 createCol(shapes, "ProfileHollow", typeof (Int32));
627 createCol(shapes, "Texture", typeof(Byte[])); 626 createCol(shapes, "Texture", typeof (Byte[]));
628 createCol(shapes, "ExtraParams", typeof(Byte[])); 627 createCol(shapes, "ExtraParams", typeof (Byte[]));
629 628
630 shapes.PrimaryKey = new DataColumn[] { shapes.Columns["UUID"] }; 629 shapes.PrimaryKey = new DataColumn[] {shapes.Columns["UUID"]};
631 630
632 return shapes; 631 return shapes;
633 } 632 }
@@ -643,23 +642,23 @@ namespace OpenSim.Framework.Data.MySQL
643 private SceneObjectPart buildPrim(DataRow row) 642 private SceneObjectPart buildPrim(DataRow row)
644 { 643 {
645 SceneObjectPart prim = new SceneObjectPart(); 644 SceneObjectPart prim = new SceneObjectPart();
646 prim.UUID = new LLUUID((String)row["UUID"]); 645 prim.UUID = new LLUUID((String) row["UUID"]);
647 // explicit conversion of integers is required, which sort 646 // explicit conversion of integers is required, which sort
648 // of sucks. No idea if there is a shortcut here or not. 647 // of sucks. No idea if there is a shortcut here or not.
649 prim.ParentID = Convert.ToUInt32(row["ParentID"]); 648 prim.ParentID = Convert.ToUInt32(row["ParentID"]);
650 prim.CreationDate = Convert.ToInt32(row["CreationDate"]); 649 prim.CreationDate = Convert.ToInt32(row["CreationDate"]);
651 prim.Name = (String)row["Name"]; 650 prim.Name = (String) row["Name"];
652 // various text fields 651 // various text fields
653 prim.Text = (String)row["Text"]; 652 prim.Text = (String) row["Text"];
654 prim.Description = (String)row["Description"]; 653 prim.Description = (String) row["Description"];
655 prim.SitName = (String)row["SitName"]; 654 prim.SitName = (String) row["SitName"];
656 prim.TouchName = (String)row["TouchName"]; 655 prim.TouchName = (String) row["TouchName"];
657 // permissions 656 // permissions
658 prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); 657 prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]);
659 prim.CreatorID = new LLUUID((String)row["CreatorID"]); 658 prim.CreatorID = new LLUUID((String) row["CreatorID"]);
660 prim.OwnerID = new LLUUID((String)row["OwnerID"]); 659 prim.OwnerID = new LLUUID((String) row["OwnerID"]);
661 prim.GroupID = new LLUUID((String)row["GroupID"]); 660 prim.GroupID = new LLUUID((String) row["GroupID"]);
662 prim.LastOwnerID = new LLUUID((String)row["LastOwnerID"]); 661 prim.LastOwnerID = new LLUUID((String) row["LastOwnerID"]);
663 prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]); 662 prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]);
664 prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]); 663 prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]);
665 prim.GroupMask = Convert.ToUInt32(row["GroupMask"]); 664 prim.GroupMask = Convert.ToUInt32(row["GroupMask"]);
@@ -701,19 +700,27 @@ namespace OpenSim.Framework.Data.MySQL
701 try 700 try
702 { 701 {
703 prim.SetSitTargetLL(new LLVector3( 702 prim.SetSitTargetLL(new LLVector3(
704 Convert.ToSingle(row["SitTargetOffsetX"]), 703 Convert.ToSingle(row["SitTargetOffsetX"]),
705 Convert.ToSingle(row["SitTargetOffsetY"]), 704 Convert.ToSingle(row["SitTargetOffsetY"]),
706 Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( 705 Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion(
707 Convert.ToSingle(row["SitTargetOrientX"]), 706 Convert.ToSingle(
708 Convert.ToSingle(row["SitTargetOrientY"]), 707 row["SitTargetOrientX"]),
709 Convert.ToSingle(row["SitTargetOrientZ"]), 708 Convert.ToSingle(
710 Convert.ToSingle(row["SitTargetOrientW"]))); 709 row["SitTargetOrientY"]),
710 Convert.ToSingle(
711 row["SitTargetOrientZ"]),
712 Convert.ToSingle(
713 row["SitTargetOrientW"])));
711 } 714 }
712 catch (System.InvalidCastException) 715 catch (InvalidCastException)
713 { 716 {
714 // Database table was created before we got here and needs to be created! :P 717 // Database table was created before we got here and needs to be created! :P
715 718
716 using (MySqlCommand cmd = new MySqlCommand("ALTER TABLE `prims` ADD COLUMN `SitTargetOffsetX` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetY` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetZ` float NOT NULL default 0, ADD COLUMN `SitTargetOrientW` float NOT NULL default 0, ADD COLUMN `SitTargetOrientX` float NOT NULL default 0, ADD COLUMN `SitTargetOrientY` float NOT NULL default 0, ADD COLUMN `SitTargetOrientZ` float NOT NULL default 0;", m_connection)) 719 using (
720 MySqlCommand cmd =
721 new MySqlCommand(
722 "ALTER TABLE `prims` ADD COLUMN `SitTargetOffsetX` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetY` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetZ` float NOT NULL default 0, ADD COLUMN `SitTargetOrientW` float NOT NULL default 0, ADD COLUMN `SitTargetOrientX` float NOT NULL default 0, ADD COLUMN `SitTargetOrientY` float NOT NULL default 0, ADD COLUMN `SitTargetOrientZ` float NOT NULL default 0;",
723 m_connection))
717 { 724 {
718 cmd.ExecuteNonQuery(); 725 cmd.ExecuteNonQuery();
719 } 726 }
@@ -725,36 +732,42 @@ namespace OpenSim.Framework.Data.MySQL
725 { 732 {
726 LandData newData = new LandData(); 733 LandData newData = new LandData();
727 734
728 newData.globalID = new LLUUID((String)row["UUID"]); 735 newData.globalID = new LLUUID((String) row["UUID"]);
729 newData.localID = Convert.ToInt32(row["LocalLandID"]); 736 newData.localID = Convert.ToInt32(row["LocalLandID"]);
730 737
731 // Bitmap is a byte[512] 738 // Bitmap is a byte[512]
732 newData.landBitmapByteArray = (Byte[])row["Bitmap"]; 739 newData.landBitmapByteArray = (Byte[]) row["Bitmap"];
733 740
734 newData.landName = (String)row["Name"]; 741 newData.landName = (String) row["Name"];
735 newData.landDesc = (String)row["Description"]; 742 newData.landDesc = (String) row["Description"];
736 newData.ownerID = (String)row["OwnerUUID"]; 743 newData.ownerID = (String) row["OwnerUUID"];
737 newData.isGroupOwned = Convert.ToBoolean(row["IsGroupOwned"]); 744 newData.isGroupOwned = Convert.ToBoolean(row["IsGroupOwned"]);
738 newData.area = Convert.ToInt32(row["Area"]); 745 newData.area = Convert.ToInt32(row["Area"]);
739 newData.auctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented 746 newData.auctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented
740 newData.category = (Parcel.ParcelCategory)Convert.ToInt32(row["Category"]); //Enum libsecondlife.Parcel.ParcelCategory 747 newData.category = (Parcel.ParcelCategory) Convert.ToInt32(row["Category"]);
748 //Enum libsecondlife.Parcel.ParcelCategory
741 newData.claimDate = Convert.ToInt32(row["ClaimDate"]); 749 newData.claimDate = Convert.ToInt32(row["ClaimDate"]);
742 newData.claimPrice = Convert.ToInt32(row["ClaimPrice"]); 750 newData.claimPrice = Convert.ToInt32(row["ClaimPrice"]);
743 newData.groupID = new LLUUID((String)row["GroupUUID"]); 751 newData.groupID = new LLUUID((String) row["GroupUUID"]);
744 newData.salePrice = Convert.ToInt32(row["SalePrice"]); 752 newData.salePrice = Convert.ToInt32(row["SalePrice"]);
745 newData.landStatus = (Parcel.ParcelStatus)Convert.ToInt32(row["LandStatus"]); //Enum. libsecondlife.Parcel.ParcelStatus 753 newData.landStatus = (Parcel.ParcelStatus) Convert.ToInt32(row["LandStatus"]);
754 //Enum. libsecondlife.Parcel.ParcelStatus
746 newData.landFlags = Convert.ToUInt32(row["LandFlags"]); 755 newData.landFlags = Convert.ToUInt32(row["LandFlags"]);
747 newData.landingType = Convert.ToByte(row["LandingType"]); 756 newData.landingType = Convert.ToByte(row["LandingType"]);
748 newData.mediaAutoScale = Convert.ToByte(row["MediaAutoScale"]); 757 newData.mediaAutoScale = Convert.ToByte(row["MediaAutoScale"]);
749 newData.mediaID = new LLUUID((String)row["MediaTextureUUID"]); 758 newData.mediaID = new LLUUID((String) row["MediaTextureUUID"]);
750 newData.mediaURL = (String)row["MediaURL"]; 759 newData.mediaURL = (String) row["MediaURL"];
751 newData.musicURL = (String)row["MusicURL"]; 760 newData.musicURL = (String) row["MusicURL"];
752 newData.passHours = Convert.ToSingle(row["PassHours"]); 761 newData.passHours = Convert.ToSingle(row["PassHours"]);
753 newData.passPrice = Convert.ToInt32(row["PassPrice"]); 762 newData.passPrice = Convert.ToInt32(row["PassPrice"]);
754 newData.snapshotID = (String)row["SnapshotUUID"]; 763 newData.snapshotID = (String) row["SnapshotUUID"];
755 764
756 newData.userLocation = new LLVector3(Convert.ToSingle(row["UserLocationX"]), Convert.ToSingle(row["UserLocationY"]), Convert.ToSingle(row["UserLocationZ"])); 765 newData.userLocation =
757 newData.userLookAt = new LLVector3(Convert.ToSingle(row["UserLookAtX"]), Convert.ToSingle(row["UserLookAtY"]), Convert.ToSingle(row["UserLookAtZ"])); 766 new LLVector3(Convert.ToSingle(row["UserLocationX"]), Convert.ToSingle(row["UserLocationY"]),
767 Convert.ToSingle(row["UserLocationZ"]));
768 newData.userLookAt =
769 new LLVector3(Convert.ToSingle(row["UserLookAtX"]), Convert.ToSingle(row["UserLookAtY"]),
770 Convert.ToSingle(row["UserLookAtZ"]));
758 newData.parcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); 771 newData.parcelAccessList = new List<ParcelManager.ParcelAccessEntry>();
759 772
760 return newData; 773 return newData;
@@ -763,7 +776,7 @@ namespace OpenSim.Framework.Data.MySQL
763 private ParcelManager.ParcelAccessEntry buildLandAccessData(DataRow row) 776 private ParcelManager.ParcelAccessEntry buildLandAccessData(DataRow row)
764 { 777 {
765 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); 778 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
766 entry.AgentID = new LLUUID((string)row["AccessUUID"]); 779 entry.AgentID = new LLUUID((string) row["AccessUUID"]);
767 entry.Flags = (ParcelManager.AccessList) Convert.ToInt32(row["Flags"]); 780 entry.Flags = (ParcelManager.AccessList) Convert.ToInt32(row["Flags"]);
768 entry.Time = new DateTime(); 781 entry.Time = new DateTime();
769 return entry; 782 return entry;
@@ -771,7 +784,7 @@ namespace OpenSim.Framework.Data.MySQL
771 784
772 private Array serializeTerrain(double[,] val) 785 private Array serializeTerrain(double[,] val)
773 { 786 {
774 MemoryStream str = new MemoryStream(65536 * sizeof(double)); 787 MemoryStream str = new MemoryStream(65536*sizeof (double));
775 BinaryWriter bw = new BinaryWriter(str); 788 BinaryWriter bw = new BinaryWriter(str);
776 789
777 // TODO: COMPATIBILITY - Add byte-order conversions 790 // TODO: COMPATIBILITY - Add byte-order conversions
@@ -789,7 +802,8 @@ namespace OpenSim.Framework.Data.MySQL
789 row["ParentID"] = prim.ParentID; 802 row["ParentID"] = prim.ParentID;
790 row["CreationDate"] = prim.CreationDate; 803 row["CreationDate"] = prim.CreationDate;
791 row["Name"] = prim.Name; 804 row["Name"] = prim.Name;
792 row["SceneGroupID"] = Util.ToRawUuidString(sceneGroupID); // the UUID of the root part for this SceneObjectGroup 805 row["SceneGroupID"] = Util.ToRawUuidString(sceneGroupID);
806 // the UUID of the root part for this SceneObjectGroup
793 // various text fields 807 // various text fields
794 row["Text"] = prim.Text; 808 row["Text"] = prim.Text;
795 row["Description"] = prim.Description; 809 row["Description"] = prim.Description;
@@ -841,18 +855,20 @@ namespace OpenSim.Framework.Data.MySQL
841 row["SitTargetOrientX"] = sitTargetOrient.X; 855 row["SitTargetOrientX"] = sitTargetOrient.X;
842 row["SitTargetOrientY"] = sitTargetOrient.Y; 856 row["SitTargetOrientY"] = sitTargetOrient.Y;
843 row["SitTargetOrientZ"] = sitTargetOrient.Z; 857 row["SitTargetOrientZ"] = sitTargetOrient.Z;
844 } 858 }
845 catch (MySql.Data.MySqlClient.MySqlException) 859 catch (MySqlException)
846 { 860 {
847 // Database table was created before we got here and needs to be created! :P 861 // Database table was created before we got here and needs to be created! :P
848 862
849 using (MySqlCommand cmd = new MySqlCommand("ALTER TABLE `prims` ADD COLUMN `SitTargetOffsetX` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetY` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetZ` float NOT NULL default 0, ADD COLUMN `SitTargetOrientW` float NOT NULL default 0, ADD COLUMN `SitTargetOrientX` float NOT NULL default 0, ADD COLUMN `SitTargetOrientY` float NOT NULL default 0, ADD COLUMN `SitTargetOrientZ` float NOT NULL default 0;", m_connection)) 863 using (
864 MySqlCommand cmd =
865 new MySqlCommand(
866 "ALTER TABLE `prims` ADD COLUMN `SitTargetOffsetX` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetY` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetZ` float NOT NULL default 0, ADD COLUMN `SitTargetOrientW` float NOT NULL default 0, ADD COLUMN `SitTargetOrientX` float NOT NULL default 0, ADD COLUMN `SitTargetOrientY` float NOT NULL default 0, ADD COLUMN `SitTargetOrientZ` float NOT NULL default 0;",
867 m_connection))
850 { 868 {
851 cmd.ExecuteNonQuery(); 869 cmd.ExecuteNonQuery();
852 } 870 }
853 } 871 }
854
855
856 } 872 }
857 873
858 private void fillLandRow(DataRow row, LandData land, LLUUID regionUUID) 874 private void fillLandRow(DataRow row, LandData land, LLUUID regionUUID)
@@ -929,11 +945,11 @@ namespace OpenSim.Framework.Data.MySQL
929 s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]); 945 s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]);
930 s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]); 946 s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]);
931 s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); 947 s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]);
932 948
933 byte[] textureEntry = (byte[])row["Texture"]; 949 byte[] textureEntry = (byte[]) row["Texture"];
934 s.TextureEntry = textureEntry; 950 s.TextureEntry = textureEntry;
935 951
936 s.ExtraParams = (byte[])row["ExtraParams"]; 952 s.ExtraParams = (byte[]) row["ExtraParams"];
937 953
938 return s; 954 return s;
939 } 955 }
@@ -1146,7 +1162,7 @@ namespace OpenSim.Framework.Data.MySQL
1146 da.UpdateCommand = updateCommand; 1162 da.UpdateCommand = updateCommand;
1147 1163
1148 MySqlCommand delete = new MySqlCommand("delete from prims where UUID=?UUID"); 1164 MySqlCommand delete = new MySqlCommand("delete from prims where UUID=?UUID");
1149 delete.Parameters.Add(createMySqlParameter("UUID", typeof(String))); 1165 delete.Parameters.Add(createMySqlParameter("UUID", typeof (String)));
1150 delete.Connection = conn; 1166 delete.Connection = conn;
1151 da.DeleteCommand = delete; 1167 da.DeleteCommand = delete;
1152 } 1168 }
@@ -1181,7 +1197,7 @@ namespace OpenSim.Framework.Data.MySQL
1181 da.UpdateCommand.Connection = conn; 1197 da.UpdateCommand.Connection = conn;
1182 1198
1183 MySqlCommand delete = new MySqlCommand("delete from primshapes where UUID = ?UUID"); 1199 MySqlCommand delete = new MySqlCommand("delete from primshapes where UUID = ?UUID");
1184 delete.Parameters.Add(createMySqlParameter("UUID", typeof(String))); 1200 delete.Parameters.Add(createMySqlParameter("UUID", typeof (String)));
1185 delete.Connection = conn; 1201 delete.Connection = conn;
1186 da.DeleteCommand = delete; 1202 da.DeleteCommand = delete;
1187 } 1203 }
@@ -1337,27 +1353,27 @@ namespace OpenSim.Framework.Data.MySQL
1337 1353
1338 private DbType dbtypeFromType(Type type) 1354 private DbType dbtypeFromType(Type type)
1339 { 1355 {
1340 if (type == typeof(String)) 1356 if (type == typeof (String))
1341 { 1357 {
1342 return DbType.String; 1358 return DbType.String;
1343 } 1359 }
1344 else if (type == typeof(Int32)) 1360 else if (type == typeof (Int32))
1345 { 1361 {
1346 return DbType.Int32; 1362 return DbType.Int32;
1347 } 1363 }
1348 else if (type == typeof(Double)) 1364 else if (type == typeof (Double))
1349 { 1365 {
1350 return DbType.Double; 1366 return DbType.Double;
1351 } 1367 }
1352 else if (type == typeof(Byte)) 1368 else if (type == typeof (Byte))
1353 { 1369 {
1354 return DbType.Byte; 1370 return DbType.Byte;
1355 } 1371 }
1356 else if (type == typeof(Double)) 1372 else if (type == typeof (Double))
1357 { 1373 {
1358 return DbType.Double; 1374 return DbType.Double;
1359 } 1375 }
1360 else if (type == typeof(Byte[])) 1376 else if (type == typeof (Byte[]))
1361 { 1377 {
1362 return DbType.Binary; 1378 return DbType.Binary;
1363 } 1379 }
@@ -1371,19 +1387,19 @@ namespace OpenSim.Framework.Data.MySQL
1371 // slightly differently. 1387 // slightly differently.
1372 private string MySqlType(Type type) 1388 private string MySqlType(Type type)
1373 { 1389 {
1374 if (type == typeof(String)) 1390 if (type == typeof (String))
1375 { 1391 {
1376 return "varchar(255)"; 1392 return "varchar(255)";
1377 } 1393 }
1378 else if (type == typeof(Int32)) 1394 else if (type == typeof (Int32))
1379 { 1395 {
1380 return "integer"; 1396 return "integer";
1381 } 1397 }
1382 else if (type == typeof(Double)) 1398 else if (type == typeof (Double))
1383 { 1399 {
1384 return "float"; 1400 return "float";
1385 } 1401 }
1386 else if (type == typeof(Byte[])) 1402 else if (type == typeof (Byte[]))
1387 { 1403 {
1388 return "longblob"; 1404 return "longblob";
1389 } 1405 }
@@ -1393,4 +1409,4 @@ namespace OpenSim.Framework.Data.MySQL
1393 } 1409 }
1394 } 1410 }
1395 } 1411 }
1396} 1412} \ No newline at end of file
diff --git a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
index 7843562..7cfac12 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using System.Security.Cryptography; 32using System.Security.Cryptography;
33using System.Text; 33using System.Text;
34using System.Text.RegularExpressions;
34using libsecondlife; 35using libsecondlife;
35using OpenSim.Framework.Console; 36using OpenSim.Framework.Console;
36 37
@@ -62,7 +63,7 @@ namespace OpenSim.Framework.Data.MySQL
62 database = 63 database =
63 new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, 64 new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
64 settingPort); 65 settingPort);
65 66
66 TestTables(); 67 TestTables();
67 } 68 }
68 69
@@ -80,7 +81,7 @@ namespace OpenSim.Framework.Data.MySQL
80 81
81 UpgradeRegionsTable(tableList["regions"]); 82 UpgradeRegionsTable(tableList["regions"]);
82 } 83 }
83 84
84 /// <summary> 85 /// <summary>
85 /// Create or upgrade the table if necessary 86 /// Create or upgrade the table if necessary
86 /// </summary> 87 /// </summary>
@@ -94,10 +95,10 @@ namespace OpenSim.Framework.Data.MySQL
94 database.ExecuteResourceSql("CreateRegionsTable.sql"); 95 database.ExecuteResourceSql("CreateRegionsTable.sql");
95 return; 96 return;
96 } 97 }
97 } 98 }
98 99
99 #endregion 100 #endregion
100 101
101 /// <summary> 102 /// <summary>
102 /// Shuts down the grid interface 103 /// Shuts down the grid interface
103 /// </summary> 104 /// </summary>
@@ -203,42 +204,41 @@ namespace OpenSim.Framework.Data.MySQL
203 return null; 204 return null;
204 } 205 }
205 } 206 }
207
206 /// <summary> 208 /// <summary>
207 /// // Returns a list of avatar and UUIDs that match the query 209 /// // Returns a list of avatar and UUIDs that match the query
208 /// </summary> 210 /// </summary>
209
210 public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) 211 public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query)
211 { 212 {
212 List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); 213 List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>();
213 214
214 System.Text.RegularExpressions.Regex objAlphaNumericPattern = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]"); 215 Regex objAlphaNumericPattern = new Regex("[^a-zA-Z0-9]");
215 216
216 string[] querysplit; 217 string[] querysplit;
217 querysplit = query.Split(' '); 218 querysplit = query.Split(' ');
218 if (querysplit.Length == 2) 219 if (querysplit.Length == 2)
219 { 220 {
220 Dictionary<string, string> param = new Dictionary<string, string>(); 221 Dictionary<string, string> param = new Dictionary<string, string>();
221 param["?first"] = objAlphaNumericPattern.Replace(querysplit[0],"") + "%"; 222 param["?first"] = objAlphaNumericPattern.Replace(querysplit[0], "") + "%";
222 param["?second"] = objAlphaNumericPattern.Replace(querysplit[1], "") + "%"; 223 param["?second"] = objAlphaNumericPattern.Replace(querysplit[1], "") + "%";
223 try 224 try
224 { 225 {
225 lock (database) 226 lock (database)
226 { 227 {
227
228
229 IDbCommand result = 228 IDbCommand result =
230 database.Query("SELECT UUID,username,surname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100", param); 229 database.Query(
230 "SELECT UUID,username,surname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100",
231 param);
231 IDataReader reader = result.ExecuteReader(); 232 IDataReader reader = result.ExecuteReader();
232 233
233 234
234 while (reader.Read()) 235 while (reader.Read())
235 { 236 {
236 AvatarPickerAvatar user = new AvatarPickerAvatar(); 237 AvatarPickerAvatar user = new AvatarPickerAvatar();
237 user.AvatarID = new LLUUID((string)reader["UUID"]); 238 user.AvatarID = new LLUUID((string) reader["UUID"]);
238 user.firstName = (string)reader["username"]; 239 user.firstName = (string) reader["username"];
239 user.lastName = (string)reader["surname"]; 240 user.lastName = (string) reader["surname"];
240 returnlist.Add(user); 241 returnlist.Add(user);
241
242 } 242 }
243 reader.Close(); 243 reader.Close();
244 result.Dispose(); 244 result.Dispose();
@@ -250,33 +250,30 @@ namespace OpenSim.Framework.Data.MySQL
250 MainLog.Instance.Error(e.ToString()); 250 MainLog.Instance.Error(e.ToString());
251 return returnlist; 251 return returnlist;
252 } 252 }
253
254
255
256 } 253 }
257 else if (querysplit.Length == 1) 254 else if (querysplit.Length == 1)
258 { 255 {
259
260 try 256 try
261 { 257 {
262 lock (database) 258 lock (database)
263 { 259 {
264 Dictionary<string, string> param = new Dictionary<string, string>(); 260 Dictionary<string, string> param = new Dictionary<string, string>();
265 param["?first"] = objAlphaNumericPattern.Replace(querysplit[0],"") + "%"; 261 param["?first"] = objAlphaNumericPattern.Replace(querysplit[0], "") + "%";
266 262
267 IDbCommand result = 263 IDbCommand result =
268 database.Query("SELECT UUID,username,surname FROM users WHERE username like ?first OR lastname like ?second", param); 264 database.Query(
265 "SELECT UUID,username,surname FROM users WHERE username like ?first OR lastname like ?second",
266 param);
269 IDataReader reader = result.ExecuteReader(); 267 IDataReader reader = result.ExecuteReader();
270 268
271 269
272 while (reader.Read()) 270 while (reader.Read())
273 { 271 {
274 AvatarPickerAvatar user = new AvatarPickerAvatar(); 272 AvatarPickerAvatar user = new AvatarPickerAvatar();
275 user.AvatarID = new LLUUID((string)reader["UUID"]); 273 user.AvatarID = new LLUUID((string) reader["UUID"]);
276 user.firstName = (string)reader["username"]; 274 user.firstName = (string) reader["username"];
277 user.lastName = (string)reader["surname"]; 275 user.lastName = (string) reader["surname"];
278 returnlist.Add(user); 276 returnlist.Add(user);
279
280 } 277 }
281 reader.Close(); 278 reader.Close();
282 result.Dispose(); 279 result.Dispose();
@@ -413,4 +410,4 @@ namespace OpenSim.Framework.Data.MySQL
413 } 410 }
414 } 411 }
415 } 412 }
416} 413} \ No newline at end of file
diff --git a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
index a47a126..c317f4a 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
@@ -232,7 +232,7 @@ namespace OpenSim.Framework.Data.MySQL
232 List<InventoryFolderBase> items = new List<InventoryFolderBase>(); 232 List<InventoryFolderBase> items = new List<InventoryFolderBase>();
233 while (reader.Read()) 233 while (reader.Read())
234 items.Add(readInventoryFolder(reader)); 234 items.Add(readInventoryFolder(reader));
235 235
236 InventoryFolderBase rootFolder = null; 236 InventoryFolderBase rootFolder = null;
237 237
238 // There should only ever be one root folder for a user. However, if there's more 238 // There should only ever be one root folder for a user. However, if there's more
@@ -637,4 +637,4 @@ namespace OpenSim.Framework.Data.MySQL
637 } 637 }
638 } 638 }
639 } 639 }
640} 640} \ No newline at end of file
diff --git a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
index eda5cc5..d2605fa 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs
@@ -103,4 +103,4 @@ namespace OpenSim.Framework.Data.MySQL
103 return "0.1"; 103 return "0.1";
104 } 104 }
105 } 105 }
106} 106} \ No newline at end of file
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
index d652db8..96f0c4d 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLManager.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs
@@ -666,4 +666,4 @@ namespace OpenSim.Framework.Data.MySQL
666 return returnval; 666 return returnval;
667 } 667 }
668 } 668 }
669} 669} \ No newline at end of file
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
index 4b86d80..2d96f6e 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
@@ -28,6 +28,7 @@
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Data; 30using System.Data;
31using System.Text.RegularExpressions;
31using libsecondlife; 32using libsecondlife;
32using OpenSim.Framework.Console; 33using OpenSim.Framework.Console;
33 34
@@ -61,7 +62,7 @@ namespace OpenSim.Framework.Data.MySQL
61 database = 62 database =
62 new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, 63 new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
63 settingPort); 64 settingPort);
64 65
65 TestTables(); 66 TestTables();
66 } 67 }
67 68
@@ -81,7 +82,7 @@ namespace OpenSim.Framework.Data.MySQL
81 UpgradeAgentsTable(tableList["agents"]); 82 UpgradeAgentsTable(tableList["agents"]);
82 UpgradeUsersTable(tableList["users"]); 83 UpgradeUsersTable(tableList["users"]);
83 } 84 }
84 85
85 /// <summary> 86 /// <summary>
86 /// Create or upgrade the table if necessary 87 /// Create or upgrade the table if necessary
87 /// </summary> 88 /// </summary>
@@ -95,8 +96,8 @@ namespace OpenSim.Framework.Data.MySQL
95 database.ExecuteResourceSql("CreateAgentsTable.sql"); 96 database.ExecuteResourceSql("CreateAgentsTable.sql");
96 return; 97 return;
97 } 98 }
98 } 99 }
99 100
100 /// <summary> 101 /// <summary>
101 /// Create or upgrade the table if necessary 102 /// Create or upgrade the table if necessary
102 /// </summary> 103 /// </summary>
@@ -110,8 +111,8 @@ namespace OpenSim.Framework.Data.MySQL
110 database.ExecuteResourceSql("CreateUsersTable.sql"); 111 database.ExecuteResourceSql("CreateUsersTable.sql");
111 return; 112 return;
112 } 113 }
113 } 114 }
114 115
115 #endregion 116 #endregion
116 117
117 // see IUserData 118 // see IUserData
@@ -144,11 +145,11 @@ namespace OpenSim.Framework.Data.MySQL
144 } 145 }
145 } 146 }
146 147
147 public List<OpenSim.Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) 148 public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query)
148 { 149 {
149 List<OpenSim.Framework.AvatarPickerAvatar> returnlist = new List<OpenSim.Framework.AvatarPickerAvatar>(); 150 List<Framework.AvatarPickerAvatar> returnlist = new List<Framework.AvatarPickerAvatar>();
150 151
151 System.Text.RegularExpressions.Regex objAlphaNumericPattern = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]"); 152 Regex objAlphaNumericPattern = new Regex("[^a-zA-Z0-9]");
152 153
153 string[] querysplit; 154 string[] querysplit;
154 querysplit = query.Split(' '); 155 querysplit = query.Split(' ');
@@ -161,21 +162,20 @@ namespace OpenSim.Framework.Data.MySQL
161 { 162 {
162 lock (database) 163 lock (database)
163 { 164 {
164
165
166 IDbCommand result = 165 IDbCommand result =
167 database.Query("SELECT UUID,username,lastname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100", param); 166 database.Query(
167 "SELECT UUID,username,lastname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100",
168 param);
168 IDataReader reader = result.ExecuteReader(); 169 IDataReader reader = result.ExecuteReader();
169 170
170 171
171 while (reader.Read()) 172 while (reader.Read())
172 { 173 {
173 OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); 174 Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar();
174 user.AvatarID = new LLUUID((string)reader["UUID"]); 175 user.AvatarID = new LLUUID((string) reader["UUID"]);
175 user.firstName = (string)reader["username"]; 176 user.firstName = (string) reader["username"];
176 user.lastName = (string)reader["lastname"]; 177 user.lastName = (string) reader["lastname"];
177 returnlist.Add(user); 178 returnlist.Add(user);
178
179 } 179 }
180 reader.Close(); 180 reader.Close();
181 result.Dispose(); 181 result.Dispose();
@@ -187,13 +187,9 @@ namespace OpenSim.Framework.Data.MySQL
187 MainLog.Instance.Error(e.ToString()); 187 MainLog.Instance.Error(e.ToString());
188 return returnlist; 188 return returnlist;
189 } 189 }
190
191
192
193 } 190 }
194 else if (querysplit.Length == 1) 191 else if (querysplit.Length == 1)
195 { 192 {
196
197 try 193 try
198 { 194 {
199 lock (database) 195 lock (database)
@@ -202,18 +198,19 @@ namespace OpenSim.Framework.Data.MySQL
202 param["?first"] = objAlphaNumericPattern.Replace(querysplit[0], "") + "%"; 198 param["?first"] = objAlphaNumericPattern.Replace(querysplit[0], "") + "%";
203 199
204 IDbCommand result = 200 IDbCommand result =
205 database.Query("SELECT UUID,username,lastname FROM users WHERE username like ?first OR lastname like ?first LIMIT 100", param); 201 database.Query(
202 "SELECT UUID,username,lastname FROM users WHERE username like ?first OR lastname like ?first LIMIT 100",
203 param);
206 IDataReader reader = result.ExecuteReader(); 204 IDataReader reader = result.ExecuteReader();
207 205
208 206
209 while (reader.Read()) 207 while (reader.Read())
210 { 208 {
211 OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); 209 Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar();
212 user.AvatarID = new LLUUID((string)reader["UUID"]); 210 user.AvatarID = new LLUUID((string) reader["UUID"]);
213 user.firstName = (string)reader["username"]; 211 user.firstName = (string) reader["username"];
214 user.lastName = (string)reader["lastname"]; 212 user.lastName = (string) reader["lastname"];
215 returnlist.Add(user); 213 returnlist.Add(user);
216
217 } 214 }
218 reader.Close(); 215 reader.Close();
219 result.Dispose(); 216 result.Dispose();
@@ -402,4 +399,4 @@ namespace OpenSim.Framework.Data.MySQL
402 return "0.1"; 399 return "0.1";
403 } 400 }
404 } 401 }
405} 402} \ No newline at end of file