aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Storage
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Storage')
-rw-r--r--OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs309
-rw-r--r--OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs306
-rw-r--r--OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs5
3 files changed, 326 insertions, 294 deletions
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs
index 60aeb83..5818583 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs
@@ -33,8 +33,8 @@ using System.Data.SqlClient;
33using System.IO; 33using System.IO;
34using libsecondlife; 34using libsecondlife;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using OpenSim.Framework.Data;
37using OpenSim.Framework.Console; 36using OpenSim.Framework.Console;
37using OpenSim.Framework.Data;
38using OpenSim.Region.Environment.Interfaces; 38using OpenSim.Region.Environment.Interfaces;
39using OpenSim.Region.Environment.LandManagement; 39using OpenSim.Region.Environment.LandManagement;
40using OpenSim.Region.Environment.Scenes; 40using OpenSim.Region.Environment.Scenes;
@@ -62,7 +62,9 @@ namespace OpenSim.DataStore.MSSQL
62 string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); 62 string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id");
63 string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); 63 string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
64 64
65 string connectionString = "Data Source=" + settingDataSource + ";Initial Catalog=" + settingInitialCatalog + ";Persist Security Info=" + settingPersistSecurityInfo + ";User ID=" + settingUserId + ";Password=" + settingPassword + ";"; 65 string connectionString = "Data Source=" + settingDataSource + ";Initial Catalog=" + settingInitialCatalog +
66 ";Persist Security Info=" + settingPersistSecurityInfo + ";User ID=" +
67 settingUserId + ";Password=" + settingPassword + ";";
66 68
67 ds = new DataSet(); 69 ds = new DataSet();
68 70
@@ -85,11 +87,12 @@ namespace OpenSim.DataStore.MSSQL
85 // primDa.FillSchema(ds, SchemaType.Source, "PrimSchema"); 87 // primDa.FillSchema(ds, SchemaType.Source, "PrimSchema");
86 TestTables(conn); 88 TestTables(conn);
87 89
88 lock(ds) { 90 lock (ds)
91 {
89 ds.Tables.Add(createPrimTable()); 92 ds.Tables.Add(createPrimTable());
90 setupPrimCommands(primDa, conn); 93 setupPrimCommands(primDa, conn);
91 primDa.Fill(ds.Tables["prims"]); 94 primDa.Fill(ds.Tables["prims"]);
92 95
93 ds.Tables.Add(createShapeTable()); 96 ds.Tables.Add(createShapeTable());
94 setupShapeCommands(shapeDa, conn); 97 setupShapeCommands(shapeDa, conn);
95 98
@@ -122,7 +125,8 @@ namespace OpenSim.DataStore.MSSQL
122 125
123 public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID) 126 public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID)
124 { 127 {
125 lock (ds) { 128 lock (ds)
129 {
126 foreach (SceneObjectPart prim in obj.Children.Values) 130 foreach (SceneObjectPart prim in obj.Children.Values)
127 { 131 {
128 MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); 132 MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID);
@@ -140,11 +144,12 @@ namespace OpenSim.DataStore.MSSQL
140 DataTable shapes = ds.Tables["primshapes"]; 144 DataTable shapes = ds.Tables["primshapes"];
141 145
142 string selectExp = "SceneGroupID = '" + obj.ToString() + "'"; 146 string selectExp = "SceneGroupID = '" + obj.ToString() + "'";
143 lock (ds) { 147 lock (ds)
148 {
144 DataRow[] primRows = prims.Select(selectExp); 149 DataRow[] primRows = prims.Select(selectExp);
145 foreach (DataRow row in primRows) 150 foreach (DataRow row in primRows)
146 { 151 {
147 LLUUID uuid = new LLUUID((string)row["UUID"]); 152 LLUUID uuid = new LLUUID((string) row["UUID"]);
148 DataRow shapeRow = shapes.Rows.Find(uuid); 153 DataRow shapeRow = shapes.Rows.Find(uuid);
149 if (shapeRow != null) 154 if (shapeRow != null)
150 { 155 {
@@ -153,7 +158,7 @@ namespace OpenSim.DataStore.MSSQL
153 row.Delete(); 158 row.Delete();
154 } 159 }
155 } 160 }
156 161
157 Commit(); 162 Commit();
158 } 163 }
159 164
@@ -169,16 +174,18 @@ namespace OpenSim.DataStore.MSSQL
169 string byRegion = "RegionUUID = '" + regionUUID.ToString() + "'"; 174 string byRegion = "RegionUUID = '" + regionUUID.ToString() + "'";
170 string orderByParent = "ParentID ASC"; 175 string orderByParent = "ParentID ASC";
171 176
172 lock (ds) { 177 lock (ds)
178 {
173 DataRow[] primsForRegion = prims.Select(byRegion, orderByParent); 179 DataRow[] primsForRegion = prims.Select(byRegion, orderByParent);
174 MainLog.Instance.Verbose("DATASTORE", "Loaded " + primsForRegion.Length + " prims for region: " + regionUUID); 180 MainLog.Instance.Verbose("DATASTORE",
175 181 "Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
182
176 foreach (DataRow primRow in primsForRegion) 183 foreach (DataRow primRow in primsForRegion)
177 { 184 {
178 try 185 try
179 { 186 {
180 string uuid = (string)primRow["UUID"]; 187 string uuid = (string) primRow["UUID"];
181 string objID = (string)primRow["SceneGroupID"]; 188 string objID = (string) primRow["SceneGroupID"];
182 if (uuid == objID) //is new SceneObjectGroup ? 189 if (uuid == objID) //is new SceneObjectGroup ?
183 { 190 {
184 SceneObjectGroup group = new SceneObjectGroup(); 191 SceneObjectGroup group = new SceneObjectGroup();
@@ -190,12 +197,13 @@ namespace OpenSim.DataStore.MSSQL
190 } 197 }
191 else 198 else
192 { 199 {
193 MainLog.Instance.Notice("No shape found for prim in storage, so setting default box shape"); 200 MainLog.Instance.Notice(
201 "No shape found for prim in storage, so setting default box shape");
194 prim.Shape = BoxShape.Default; 202 prim.Shape = BoxShape.Default;
195 } 203 }
196 group.AddPart(prim); 204 group.AddPart(prim);
197 group.RootPart = prim; 205 group.RootPart = prim;
198 206
199 createdObjects.Add(group.UUID, group); 207 createdObjects.Add(group.UUID, group);
200 retvals.Add(group); 208 retvals.Add(group);
201 } 209 }
@@ -209,7 +217,8 @@ namespace OpenSim.DataStore.MSSQL
209 } 217 }
210 else 218 else
211 { 219 {
212 MainLog.Instance.Notice("No shape found for prim in storage, so setting default box shape"); 220 MainLog.Instance.Notice(
221 "No shape found for prim in storage, so setting default box shape");
213 prim.Shape = BoxShape.Default; 222 prim.Shape = BoxShape.Default;
214 } 223 }
215 createdObjects[new LLUUID(objID)].AddPart(prim); 224 createdObjects[new LLUUID(objID)].AddPart(prim);
@@ -249,7 +258,7 @@ namespace OpenSim.DataStore.MSSQL
249 258
250 public double[,] LoadTerrain(LLUUID regionID) 259 public double[,] LoadTerrain(LLUUID regionID)
251 { 260 {
252 double[,] terret = new double[256, 256]; 261 double[,] terret = new double[256,256];
253 terret.Initialize(); 262 terret.Initialize();
254 263
255 DataTable terrain = ds.Tables["terrain"]; 264 DataTable terrain = ds.Tables["terrain"];
@@ -264,16 +273,16 @@ namespace OpenSim.DataStore.MSSQL
264 { 273 {
265 DataRow row = rows[0]; 274 DataRow row = rows[0];
266 275
267 byte[] heightmap = (byte[])row["Heightfield"]; 276 byte[] heightmap = (byte[]) row["Heightfield"];
268 for (int x = 0; x < 256; x++) 277 for (int x = 0; x < 256; x++)
269 { 278 {
270 for (int y = 0; y < 256; y++) 279 for (int y = 0; y < 256; y++)
271 { 280 {
272 terret[x, y] = BitConverter.ToDouble(heightmap, ((x * 256) + y) * 8); 281 terret[x, y] = BitConverter.ToDouble(heightmap, ((x*256) + y)*8);
273 } 282 }
274 } 283 }
275 284
276 rev = (int)row["Revision"]; 285 rev = (int) row["Revision"];
277 } 286 }
278 else 287 else
279 { 288 {
@@ -290,22 +299,21 @@ namespace OpenSim.DataStore.MSSQL
290 299
291 public void RemoveLandObject(LLUUID globalID) 300 public void RemoveLandObject(LLUUID globalID)
292 { 301 {
293
294 } 302 }
295 303
296 public void StoreLandObject(Land parcel, LLUUID regionUUID) 304 public void StoreLandObject(Land parcel, LLUUID regionUUID)
297 { 305 {
298
299 } 306 }
300 307
301 public List<Framework.LandData> LoadLandObjects(LLUUID regionUUID) 308 public List<LandData> LoadLandObjects(LLUUID regionUUID)
302 { 309 {
303 return new List<LandData>(); 310 return new List<LandData>();
304 } 311 }
305 312
306 public void Commit() 313 public void Commit()
307 { 314 {
308 lock (ds) { 315 lock (ds)
316 {
309 primDa.Update(ds, "prims"); 317 primDa.Update(ds, "prims");
310 shapeDa.Update(ds, "primshapes"); 318 shapeDa.Update(ds, "primshapes");
311 terrainDa.Update(ds, "terrain"); 319 terrainDa.Update(ds, "terrain");
@@ -326,7 +334,7 @@ namespace OpenSim.DataStore.MSSQL
326 * 334 *
327 **********************************************************************/ 335 **********************************************************************/
328 336
329 private void createCol(DataTable dt, string name, System.Type type) 337 private void createCol(DataTable dt, string name, Type type)
330 { 338 {
331 DataColumn col = new DataColumn(name, type); 339 DataColumn col = new DataColumn(name, type);
332 dt.Columns.Add(col); 340 dt.Columns.Add(col);
@@ -336,9 +344,9 @@ namespace OpenSim.DataStore.MSSQL
336 { 344 {
337 DataTable terrain = new DataTable("terrain"); 345 DataTable terrain = new DataTable("terrain");
338 346
339 createCol(terrain, "RegionUUID", typeof(String)); 347 createCol(terrain, "RegionUUID", typeof (String));
340 createCol(terrain, "Revision", typeof(Int32)); 348 createCol(terrain, "Revision", typeof (Int32));
341 createCol(terrain, "Heightfield", typeof(Byte[])); 349 createCol(terrain, "Heightfield", typeof (Byte[]));
342 350
343 return terrain; 351 return terrain;
344 } 352 }
@@ -347,62 +355,62 @@ namespace OpenSim.DataStore.MSSQL
347 { 355 {
348 DataTable prims = new DataTable("prims"); 356 DataTable prims = new DataTable("prims");
349 357
350 createCol(prims, "UUID", typeof(System.String)); 358 createCol(prims, "UUID", typeof (String));
351 createCol(prims, "RegionUUID", typeof(System.String)); 359 createCol(prims, "RegionUUID", typeof (String));
352 createCol(prims, "ParentID", typeof(System.Int32)); 360 createCol(prims, "ParentID", typeof (Int32));
353 createCol(prims, "CreationDate", typeof(System.Int32)); 361 createCol(prims, "CreationDate", typeof (Int32));
354 createCol(prims, "Name", typeof(System.String)); 362 createCol(prims, "Name", typeof (String));
355 createCol(prims, "SceneGroupID", typeof(System.String)); 363 createCol(prims, "SceneGroupID", typeof (String));
356 // various text fields 364 // various text fields
357 createCol(prims, "Text", typeof(System.String)); 365 createCol(prims, "Text", typeof (String));
358 createCol(prims, "Description", typeof(System.String)); 366 createCol(prims, "Description", typeof (String));
359 createCol(prims, "SitName", typeof(System.String)); 367 createCol(prims, "SitName", typeof (String));
360 createCol(prims, "TouchName", typeof(System.String)); 368 createCol(prims, "TouchName", typeof (String));
361 // permissions 369 // permissions
362 createCol(prims, "ObjectFlags", typeof(System.Int32)); 370 createCol(prims, "ObjectFlags", typeof (Int32));
363 createCol(prims, "CreatorID", typeof(System.String)); 371 createCol(prims, "CreatorID", typeof (String));
364 createCol(prims, "OwnerID", typeof(System.String)); 372 createCol(prims, "OwnerID", typeof (String));
365 createCol(prims, "GroupID", typeof(System.String)); 373 createCol(prims, "GroupID", typeof (String));
366 createCol(prims, "LastOwnerID", typeof(System.String)); 374 createCol(prims, "LastOwnerID", typeof (String));
367 createCol(prims, "OwnerMask", typeof(System.Int32)); 375 createCol(prims, "OwnerMask", typeof (Int32));
368 createCol(prims, "NextOwnerMask", typeof(System.Int32)); 376 createCol(prims, "NextOwnerMask", typeof (Int32));
369 createCol(prims, "GroupMask", typeof(System.Int32)); 377 createCol(prims, "GroupMask", typeof (Int32));
370 createCol(prims, "EveryoneMask", typeof(System.Int32)); 378 createCol(prims, "EveryoneMask", typeof (Int32));
371 createCol(prims, "BaseMask", typeof(System.Int32)); 379 createCol(prims, "BaseMask", typeof (Int32));
372 // vectors 380 // vectors
373 createCol(prims, "PositionX", typeof(System.Double)); 381 createCol(prims, "PositionX", typeof (Double));
374 createCol(prims, "PositionY", typeof(System.Double)); 382 createCol(prims, "PositionY", typeof (Double));
375 createCol(prims, "PositionZ", typeof(System.Double)); 383 createCol(prims, "PositionZ", typeof (Double));
376 createCol(prims, "GroupPositionX", typeof(System.Double)); 384 createCol(prims, "GroupPositionX", typeof (Double));
377 createCol(prims, "GroupPositionY", typeof(System.Double)); 385 createCol(prims, "GroupPositionY", typeof (Double));
378 createCol(prims, "GroupPositionZ", typeof(System.Double)); 386 createCol(prims, "GroupPositionZ", typeof (Double));
379 createCol(prims, "VelocityX", typeof(System.Double)); 387 createCol(prims, "VelocityX", typeof (Double));
380 createCol(prims, "VelocityY", typeof(System.Double)); 388 createCol(prims, "VelocityY", typeof (Double));
381 createCol(prims, "VelocityZ", typeof(System.Double)); 389 createCol(prims, "VelocityZ", typeof (Double));
382 createCol(prims, "AngularVelocityX", typeof(System.Double)); 390 createCol(prims, "AngularVelocityX", typeof (Double));
383 createCol(prims, "AngularVelocityY", typeof(System.Double)); 391 createCol(prims, "AngularVelocityY", typeof (Double));
384 createCol(prims, "AngularVelocityZ", typeof(System.Double)); 392 createCol(prims, "AngularVelocityZ", typeof (Double));
385 createCol(prims, "AccelerationX", typeof(System.Double)); 393 createCol(prims, "AccelerationX", typeof (Double));
386 createCol(prims, "AccelerationY", typeof(System.Double)); 394 createCol(prims, "AccelerationY", typeof (Double));
387 createCol(prims, "AccelerationZ", typeof(System.Double)); 395 createCol(prims, "AccelerationZ", typeof (Double));
388 // quaternions 396 // quaternions
389 createCol(prims, "RotationX", typeof(System.Double)); 397 createCol(prims, "RotationX", typeof (Double));
390 createCol(prims, "RotationY", typeof(System.Double)); 398 createCol(prims, "RotationY", typeof (Double));
391 createCol(prims, "RotationZ", typeof(System.Double)); 399 createCol(prims, "RotationZ", typeof (Double));
392 createCol(prims, "RotationW", typeof(System.Double)); 400 createCol(prims, "RotationW", typeof (Double));
393 401
394 // sit target 402 // sit target
395 createCol(prims, "SitTargetOffsetX", typeof(System.Double)); 403 createCol(prims, "SitTargetOffsetX", typeof (Double));
396 createCol(prims, "SitTargetOffsetY", typeof(System.Double)); 404 createCol(prims, "SitTargetOffsetY", typeof (Double));
397 createCol(prims, "SitTargetOffsetZ", typeof(System.Double)); 405 createCol(prims, "SitTargetOffsetZ", typeof (Double));
398 406
399 createCol(prims, "SitTargetOrientW", typeof(System.Double)); 407 createCol(prims, "SitTargetOrientW", typeof (Double));
400 createCol(prims, "SitTargetOrientX", typeof(System.Double)); 408 createCol(prims, "SitTargetOrientX", typeof (Double));
401 createCol(prims, "SitTargetOrientY", typeof(System.Double)); 409 createCol(prims, "SitTargetOrientY", typeof (Double));
402 createCol(prims, "SitTargetOrientZ", typeof(System.Double)); 410 createCol(prims, "SitTargetOrientZ", typeof (Double));
403 411
404 // Add in contraints 412 // Add in contraints
405 prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] }; 413 prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]};
406 414
407 return prims; 415 return prims;
408 } 416 }
@@ -410,40 +418,40 @@ namespace OpenSim.DataStore.MSSQL
410 private DataTable createShapeTable() 418 private DataTable createShapeTable()
411 { 419 {
412 DataTable shapes = new DataTable("primshapes"); 420 DataTable shapes = new DataTable("primshapes");
413 createCol(shapes, "UUID", typeof(System.String)); 421 createCol(shapes, "UUID", typeof (String));
414 // shape is an enum 422 // shape is an enum
415 createCol(shapes, "Shape", typeof(System.Int32)); 423 createCol(shapes, "Shape", typeof (Int32));
416 // vectors 424 // vectors
417 createCol(shapes, "ScaleX", typeof(System.Double)); 425 createCol(shapes, "ScaleX", typeof (Double));
418 createCol(shapes, "ScaleY", typeof(System.Double)); 426 createCol(shapes, "ScaleY", typeof (Double));
419 createCol(shapes, "ScaleZ", typeof(System.Double)); 427 createCol(shapes, "ScaleZ", typeof (Double));
420 // paths 428 // paths
421 createCol(shapes, "PCode", typeof(System.Int32)); 429 createCol(shapes, "PCode", typeof (Int32));
422 createCol(shapes, "PathBegin", typeof(System.Int32)); 430 createCol(shapes, "PathBegin", typeof (Int32));
423 createCol(shapes, "PathEnd", typeof(System.Int32)); 431 createCol(shapes, "PathEnd", typeof (Int32));
424 createCol(shapes, "PathScaleX", typeof(System.Int32)); 432 createCol(shapes, "PathScaleX", typeof (Int32));
425 createCol(shapes, "PathScaleY", typeof(System.Int32)); 433 createCol(shapes, "PathScaleY", typeof (Int32));
426 createCol(shapes, "PathShearX", typeof(System.Int32)); 434 createCol(shapes, "PathShearX", typeof (Int32));
427 createCol(shapes, "PathShearY", typeof(System.Int32)); 435 createCol(shapes, "PathShearY", typeof (Int32));
428 createCol(shapes, "PathSkew", typeof(System.Int32)); 436 createCol(shapes, "PathSkew", typeof (Int32));
429 createCol(shapes, "PathCurve", typeof(System.Int32)); 437 createCol(shapes, "PathCurve", typeof (Int32));
430 createCol(shapes, "PathRadiusOffset", typeof(System.Int32)); 438 createCol(shapes, "PathRadiusOffset", typeof (Int32));
431 createCol(shapes, "PathRevolutions", typeof(System.Int32)); 439 createCol(shapes, "PathRevolutions", typeof (Int32));
432 createCol(shapes, "PathTaperX", typeof(System.Int32)); 440 createCol(shapes, "PathTaperX", typeof (Int32));
433 createCol(shapes, "PathTaperY", typeof(System.Int32)); 441 createCol(shapes, "PathTaperY", typeof (Int32));
434 createCol(shapes, "PathTwist", typeof(System.Int32)); 442 createCol(shapes, "PathTwist", typeof (Int32));
435 createCol(shapes, "PathTwistBegin", typeof(System.Int32)); 443 createCol(shapes, "PathTwistBegin", typeof (Int32));
436 // profile 444 // profile
437 createCol(shapes, "ProfileBegin", typeof(System.Int32)); 445 createCol(shapes, "ProfileBegin", typeof (Int32));
438 createCol(shapes, "ProfileEnd", typeof(System.Int32)); 446 createCol(shapes, "ProfileEnd", typeof (Int32));
439 createCol(shapes, "ProfileCurve", typeof(System.Int32)); 447 createCol(shapes, "ProfileCurve", typeof (Int32));
440 createCol(shapes, "ProfileHollow", typeof(System.Int32)); 448 createCol(shapes, "ProfileHollow", typeof (Int32));
441 // text TODO: this isn't right, but I'm not sure the right 449 // text TODO: this isn't right, but I'm not sure the right
442 // way to specify this as a blob atm 450 // way to specify this as a blob atm
443 createCol(shapes, "Texture", typeof(System.Byte[])); 451 createCol(shapes, "Texture", typeof (Byte[]));
444 createCol(shapes, "ExtraParams", typeof(System.Byte[])); 452 createCol(shapes, "ExtraParams", typeof (Byte[]));
445 453
446 shapes.PrimaryKey = new DataColumn[] { shapes.Columns["UUID"] }; 454 shapes.PrimaryKey = new DataColumn[] {shapes.Columns["UUID"]};
447 455
448 return shapes; 456 return shapes;
449 } 457 }
@@ -462,23 +470,23 @@ namespace OpenSim.DataStore.MSSQL
462 // interesting has to be done to actually get these values 470 // interesting has to be done to actually get these values
463 // back out. Not enough time to figure it out yet. 471 // back out. Not enough time to figure it out yet.
464 SceneObjectPart prim = new SceneObjectPart(); 472 SceneObjectPart prim = new SceneObjectPart();
465 prim.UUID = new LLUUID((String)row["UUID"]); 473 prim.UUID = new LLUUID((String) row["UUID"]);
466 // explicit conversion of integers is required, which sort 474 // explicit conversion of integers is required, which sort
467 // of sucks. No idea if there is a shortcut here or not. 475 // of sucks. No idea if there is a shortcut here or not.
468 prim.ParentID = Convert.ToUInt32(row["ParentID"]); 476 prim.ParentID = Convert.ToUInt32(row["ParentID"]);
469 prim.CreationDate = Convert.ToInt32(row["CreationDate"]); 477 prim.CreationDate = Convert.ToInt32(row["CreationDate"]);
470 prim.Name = (String)row["Name"]; 478 prim.Name = (String) row["Name"];
471 // various text fields 479 // various text fields
472 prim.Text = (String)row["Text"]; 480 prim.Text = (String) row["Text"];
473 prim.Description = (String)row["Description"]; 481 prim.Description = (String) row["Description"];
474 prim.SitName = (String)row["SitName"]; 482 prim.SitName = (String) row["SitName"];
475 prim.TouchName = (String)row["TouchName"]; 483 prim.TouchName = (String) row["TouchName"];
476 // permissions 484 // permissions
477 prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); 485 prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]);
478 prim.CreatorID = new LLUUID((String)row["CreatorID"]); 486 prim.CreatorID = new LLUUID((String) row["CreatorID"]);
479 prim.OwnerID = new LLUUID((String)row["OwnerID"]); 487 prim.OwnerID = new LLUUID((String) row["OwnerID"]);
480 prim.GroupID = new LLUUID((String)row["GroupID"]); 488 prim.GroupID = new LLUUID((String) row["GroupID"]);
481 prim.LastOwnerID = new LLUUID((String)row["LastOwnerID"]); 489 prim.LastOwnerID = new LLUUID((String) row["LastOwnerID"]);
482 prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]); 490 prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]);
483 prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]); 491 prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]);
484 prim.GroupMask = Convert.ToUInt32(row["GroupMask"]); 492 prim.GroupMask = Convert.ToUInt32(row["GroupMask"]);
@@ -521,15 +529,19 @@ namespace OpenSim.DataStore.MSSQL
521 try 529 try
522 { 530 {
523 prim.SetSitTargetLL(new LLVector3( 531 prim.SetSitTargetLL(new LLVector3(
524 Convert.ToSingle(row["SitTargetOffsetX"]), 532 Convert.ToSingle(row["SitTargetOffsetX"]),
525 Convert.ToSingle(row["SitTargetOffsetY"]), 533 Convert.ToSingle(row["SitTargetOffsetY"]),
526 Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( 534 Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion(
527 Convert.ToSingle(row["SitTargetOrientX"]), 535 Convert.ToSingle(
528 Convert.ToSingle(row["SitTargetOrientY"]), 536 row["SitTargetOrientX"]),
529 Convert.ToSingle(row["SitTargetOrientZ"]), 537 Convert.ToSingle(
530 Convert.ToSingle(row["SitTargetOrientW"]))); 538 row["SitTargetOrientY"]),
539 Convert.ToSingle(
540 row["SitTargetOrientZ"]),
541 Convert.ToSingle(
542 row["SitTargetOrientW"])));
531 } 543 }
532 catch (System.InvalidCastException) 544 catch (InvalidCastException)
533 { 545 {
534 // Database table was created before we got here and now has null values :P 546 // Database table was created before we got here and now has null values :P
535 } 547 }
@@ -598,11 +610,10 @@ namespace OpenSim.DataStore.MSSQL
598 row["SitTargetOrientY"] = sitTargetOrient.Y; 610 row["SitTargetOrientY"] = sitTargetOrient.Y;
599 row["SitTargetOrientZ"] = sitTargetOrient.Z; 611 row["SitTargetOrientZ"] = sitTargetOrient.Z;
600 } 612 }
601 catch (System.Exception) 613 catch (Exception)
602 { 614 {
603 // TODO: Add Sit Target Rows! 615 // TODO: Add Sit Target Rows!
604 } 616 }
605
606 } 617 }
607 618
608 private PrimitiveBaseShape buildShape(DataRow row) 619 private PrimitiveBaseShape buildShape(DataRow row)
@@ -634,14 +645,14 @@ namespace OpenSim.DataStore.MSSQL
634 s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]); 645 s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]);
635 s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]); 646 s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]);
636 s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); 647 s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]);
637 648
638 // text TODO: this isn't right] = but I'm not sure the right 649 // text TODO: this isn't right] = but I'm not sure the right
639 // way to specify this as a blob atm 650 // way to specify this as a blob atm
640 byte[] textureEntry = (byte[])row["Texture"]; 651 byte[] textureEntry = (byte[]) row["Texture"];
641 s.TextureEntry = textureEntry; 652 s.TextureEntry = textureEntry;
642
643 653
644 s.ExtraParams = (byte[])row["ExtraParams"]; 654
655 s.ExtraParams = (byte[]) row["ExtraParams"];
645 // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); 656 // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
646 // string texture = encoding.GetString((Byte[])row["Texture"]); 657 // string texture = encoding.GetString((Byte[])row["Texture"]);
647 // if (!texture.StartsWith("<")) 658 // if (!texture.StartsWith("<"))
@@ -774,7 +785,7 @@ namespace OpenSim.DataStore.MSSQL
774 sql += ") values (@"; 785 sql += ") values (@";
775 sql += String.Join(", @", cols); 786 sql += String.Join(", @", cols);
776 sql += ")"; 787 sql += ")";
777 SqlCommand cmd = new SqlCommand(sql); 788 SqlCommand cmd = new SqlCommand(sql);
778 // this provides the binding for all our parameters, so 789 // this provides the binding for all our parameters, so
779 // much less code than it used to be 790 // much less code than it used to be
780 foreach (DataColumn col in dt.Columns) 791 foreach (DataColumn col in dt.Columns)
@@ -791,14 +802,15 @@ namespace OpenSim.DataStore.MSSQL
791 foreach (DataColumn col in dt.Columns) 802 foreach (DataColumn col in dt.Columns)
792 { 803 {
793 if (subsql.Length > 0) 804 if (subsql.Length > 0)
794 { // a map function would rock so much here 805 {
806 // a map function would rock so much here
795 subsql += ", "; 807 subsql += ", ";
796 } 808 }
797 subsql += col.ColumnName + "= @" + col.ColumnName; 809 subsql += col.ColumnName + "= @" + col.ColumnName;
798 } 810 }
799 sql += subsql; 811 sql += subsql;
800 sql += " where " + pk; 812 sql += " where " + pk;
801 SqlCommand cmd = new SqlCommand(sql); 813 SqlCommand cmd = new SqlCommand(sql);
802 // this provides the binding for all our parameters, so 814 // this provides the binding for all our parameters, so
803 // much less code than it used to be 815 // much less code than it used to be
804 816
@@ -817,7 +829,8 @@ namespace OpenSim.DataStore.MSSQL
817 foreach (DataColumn col in dt.Columns) 829 foreach (DataColumn col in dt.Columns)
818 { 830 {
819 if (subsql.Length > 0) 831 if (subsql.Length > 0)
820 { // a map function would rock so much here 832 {
833 // a map function would rock so much here
821 subsql += ",\n"; 834 subsql += ",\n";
822 } 835 }
823 subsql += col.ColumnName + " " + SqlType(col.DataType); 836 subsql += col.ColumnName + " " + SqlType(col.DataType);
@@ -828,7 +841,7 @@ namespace OpenSim.DataStore.MSSQL
828 } 841 }
829 sql += subsql; 842 sql += subsql;
830 sql += ")"; 843 sql += ")";
831 844
832 return sql; 845 return sql;
833 } 846 }
834 847
@@ -837,7 +850,7 @@ namespace OpenSim.DataStore.MSSQL
837 row["RegionUUID"] = regionUUID; 850 row["RegionUUID"] = regionUUID;
838 row["Revision"] = rev; 851 row["Revision"] = rev;
839 852
840 MemoryStream str = new MemoryStream(65536 * sizeof(double)); 853 MemoryStream str = new MemoryStream(65536*sizeof (double));
841 BinaryWriter bw = new BinaryWriter(str); 854 BinaryWriter bw = new BinaryWriter(str);
842 855
843 // TODO: COMPATIBILITY - Add byte-order conversions 856 // TODO: COMPATIBILITY - Add byte-order conversions
@@ -868,7 +881,7 @@ namespace OpenSim.DataStore.MSSQL
868 /// for us. 881 /// for us.
869 ///</summary> 882 ///</summary>
870 ///<returns>a built Sql parameter</returns> 883 ///<returns>a built Sql parameter</returns>
871 private SqlParameter createSqlParameter(string name, System.Type type) 884 private SqlParameter createSqlParameter(string name, Type type)
872 { 885 {
873 SqlParameter param = new SqlParameter(); 886 SqlParameter param = new SqlParameter();
874 param.ParameterName = "@" + name; 887 param.ParameterName = "@" + name;
@@ -887,7 +900,7 @@ namespace OpenSim.DataStore.MSSQL
887 da.UpdateCommand.Connection = conn; 900 da.UpdateCommand.Connection = conn;
888 901
889 SqlCommand delete = new SqlCommand("delete from prims where UUID = @UUID"); 902 SqlCommand delete = new SqlCommand("delete from prims where UUID = @UUID");
890 delete.Parameters.Add(createSqlParameter("UUID", typeof(System.String))); 903 delete.Parameters.Add(createSqlParameter("UUID", typeof (String)));
891 delete.Connection = conn; 904 delete.Connection = conn;
892 da.DeleteCommand = delete; 905 da.DeleteCommand = delete;
893 } 906 }
@@ -901,7 +914,7 @@ namespace OpenSim.DataStore.MSSQL
901 da.UpdateCommand.Connection = conn; 914 da.UpdateCommand.Connection = conn;
902 915
903 SqlCommand delete = new SqlCommand("delete from primshapes where UUID = @UUID"); 916 SqlCommand delete = new SqlCommand("delete from primshapes where UUID = @UUID");
904 delete.Parameters.Add(createSqlParameter("UUID", typeof(System.String))); 917 delete.Parameters.Add(createSqlParameter("UUID", typeof (String)));
905 delete.Connection = conn; 918 delete.Connection = conn;
906 da.DeleteCommand = delete; 919 da.DeleteCommand = delete;
907 } 920 }
@@ -957,14 +970,13 @@ namespace OpenSim.DataStore.MSSQL
957 970
958 private bool TestTables(SqlConnection conn) 971 private bool TestTables(SqlConnection conn)
959 { 972 {
960
961 SqlCommand primSelectCmd = new SqlCommand(primSelect, conn); 973 SqlCommand primSelectCmd = new SqlCommand(primSelect, conn);
962 SqlDataAdapter pDa = new SqlDataAdapter(primSelectCmd); 974 SqlDataAdapter pDa = new SqlDataAdapter(primSelectCmd);
963 SqlCommand shapeSelectCmd = new SqlCommand(shapeSelect, conn); 975 SqlCommand shapeSelectCmd = new SqlCommand(shapeSelect, conn);
964 SqlDataAdapter sDa = new SqlDataAdapter(shapeSelectCmd); 976 SqlDataAdapter sDa = new SqlDataAdapter(shapeSelectCmd);
965 SqlCommand terrainSelectCmd = new SqlCommand(terrainSelect, conn); 977 SqlCommand terrainSelectCmd = new SqlCommand(terrainSelect, conn);
966 SqlDataAdapter tDa = new SqlDataAdapter(terrainSelectCmd); 978 SqlDataAdapter tDa = new SqlDataAdapter(terrainSelectCmd);
967 979
968 DataSet tmpDS = new DataSet(); 980 DataSet tmpDS = new DataSet();
969 try 981 try
970 { 982 {
@@ -978,7 +990,7 @@ namespace OpenSim.DataStore.MSSQL
978 InitDB(conn); 990 InitDB(conn);
979 } 991 }
980 992
981 try 993 try
982 { 994 {
983 if (tmpDS.Tables == null || tmpDS.Tables.Count == 0) 995 if (tmpDS.Tables == null || tmpDS.Tables.Count == 0)
984 { 996 {
@@ -986,11 +998,10 @@ namespace OpenSim.DataStore.MSSQL
986 sDa.Fill(tmpDS, "primshapes"); 998 sDa.Fill(tmpDS, "primshapes");
987 tDa.Fill(tmpDS, "terrain"); 999 tDa.Fill(tmpDS, "terrain");
988 } 1000 }
989
990 } 1001 }
991 catch (SqlException e) 1002 catch (SqlException e)
992 { 1003 {
993 MainLog.Instance.Verbose("DATASTORE", e.ToString()); 1004 MainLog.Instance.Verbose("DATASTORE", e.ToString());
994 } 1005 }
995 1006
996 foreach (DataColumn col in createPrimTable().Columns) 1007 foreach (DataColumn col in createPrimTable().Columns)
@@ -1028,19 +1039,19 @@ namespace OpenSim.DataStore.MSSQL
1028 1039
1029 private DbType dbtypeFromType(Type type) 1040 private DbType dbtypeFromType(Type type)
1030 { 1041 {
1031 if (type == typeof(System.String)) 1042 if (type == typeof (String))
1032 { 1043 {
1033 return DbType.String; 1044 return DbType.String;
1034 } 1045 }
1035 else if (type == typeof(System.Int32)) 1046 else if (type == typeof (Int32))
1036 { 1047 {
1037 return DbType.Int32; 1048 return DbType.Int32;
1038 } 1049 }
1039 else if (type == typeof(System.Double)) 1050 else if (type == typeof (Double))
1040 { 1051 {
1041 return DbType.Double; 1052 return DbType.Double;
1042 } 1053 }
1043 else if (type == typeof(System.Byte[])) 1054 else if (type == typeof (Byte[]))
1044 { 1055 {
1045 return DbType.Binary; 1056 return DbType.Binary;
1046 } 1057 }
@@ -1054,19 +1065,19 @@ namespace OpenSim.DataStore.MSSQL
1054 // slightly differently. 1065 // slightly differently.
1055 private string SqlType(Type type) 1066 private string SqlType(Type type)
1056 { 1067 {
1057 if (type == typeof(System.String)) 1068 if (type == typeof (String))
1058 { 1069 {
1059 return "varchar(255)"; 1070 return "varchar(255)";
1060 } 1071 }
1061 else if (type == typeof(System.Int32)) 1072 else if (type == typeof (Int32))
1062 { 1073 {
1063 return "integer"; 1074 return "integer";
1064 } 1075 }
1065 else if (type == typeof(System.Double)) 1076 else if (type == typeof (Double))
1066 { 1077 {
1067 return "float"; 1078 return "float";
1068 } 1079 }
1069 else if (type == typeof(System.Byte[])) 1080 else if (type == typeof (Byte[]))
1070 { 1081 {
1071 return "image"; 1082 return "image";
1072 } 1083 }
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
index c885310..065d37d 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
@@ -59,7 +59,7 @@ namespace OpenSim.DataStore.MonoSqlite
59 private SqliteConnection m_conn; 59 private SqliteConnection m_conn;
60 60
61 private String m_connectionString; 61 private String m_connectionString;
62 62
63 private bool persistPrimInventories; 63 private bool persistPrimInventories;
64 64
65 /*********************************************************************** 65 /***********************************************************************
@@ -71,7 +71,7 @@ namespace OpenSim.DataStore.MonoSqlite
71 // see IRegionDataStore 71 // see IRegionDataStore
72 public void Initialise(string connectionString, bool persistPrimInventories) 72 public void Initialise(string connectionString, bool persistPrimInventories)
73 { 73 {
74 m_connectionString = connectionString; 74 m_connectionString = connectionString;
75 this.persistPrimInventories = persistPrimInventories; 75 this.persistPrimInventories = persistPrimInventories;
76 76
77 ds = new DataSet(); 77 ds = new DataSet();
@@ -182,20 +182,20 @@ namespace OpenSim.DataStore.MonoSqlite
182 { 182 {
183 foreach (SceneObjectPart prim in obj.Children.Values) 183 foreach (SceneObjectPart prim in obj.Children.Values)
184 { 184 {
185 if ((prim.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0) 185 if ((prim.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0)
186 { 186 {
187 MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); 187 MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID);
188 addPrim(prim, Util.ToRawUuidString(obj.UUID), Util.ToRawUuidString(regionUUID)); 188 addPrim(prim, Util.ToRawUuidString(obj.UUID), Util.ToRawUuidString(regionUUID));
189 } 189 }
190 else if (Stopped(prim)) 190 else if (Stopped(prim))
191 { 191 {
192 MainLog.Instance.Verbose("DATASTORE", "Adding stopped obj: " + obj.UUID + " to region: " + regionUUID); 192 MainLog.Instance.Verbose("DATASTORE",
193 "Adding stopped obj: " + obj.UUID + " to region: " + regionUUID);
193 addPrim(prim, Util.ToRawUuidString(obj.UUID), Util.ToRawUuidString(regionUUID)); 194 addPrim(prim, Util.ToRawUuidString(obj.UUID), Util.ToRawUuidString(regionUUID));
194 } 195 }
195 else 196 else
196 { 197 {
197 // MainLog.Instance.Verbose("DATASTORE", "Ignoring Physical obj: " + obj.UUID + " in region: " + regionUUID); 198 // MainLog.Instance.Verbose("DATASTORE", "Ignoring Physical obj: " + obj.UUID + " in region: " + regionUUID);
198
199 } 199 }
200 } 200 }
201 } 201 }
@@ -307,18 +307,19 @@ namespace OpenSim.DataStore.MonoSqlite
307 307
308 public void StoreTerrain(double[,] ter, LLUUID regionID) 308 public void StoreTerrain(double[,] ter, LLUUID regionID)
309 { 309 {
310 lock (ds) { 310 lock (ds)
311 {
311 int revision = Util.UnixTimeSinceEpoch(); 312 int revision = Util.UnixTimeSinceEpoch();
312 313
313 // the following is an work around for .NET. The perf 314 // the following is an work around for .NET. The perf
314 // issues associated with it aren't as bad as you think. 315 // issues associated with it aren't as bad as you think.
315 SqliteConnection conn = new SqliteConnection(m_connectionString); 316 SqliteConnection conn = new SqliteConnection(m_connectionString);
316 conn.Open(); 317 conn.Open();
317 MainLog.Instance.Verbose("DATASTORE", "Storing terrain revision r" + revision.ToString()); 318 MainLog.Instance.Verbose("DATASTORE", "Storing terrain revision r" + revision.ToString());
318 String sql = "insert into terrain(RegionUUID, Revision, Heightfield)" + 319 String sql = "insert into terrain(RegionUUID, Revision, Heightfield)" +
319 " values(:RegionUUID, :Revision, :Heightfield)"; 320 " values(:RegionUUID, :Revision, :Heightfield)";
320 321
321 using(SqliteCommand cmd = new SqliteCommand(sql, conn)) 322 using (SqliteCommand cmd = new SqliteCommand(sql, conn))
322 { 323 {
323 cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); 324 cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID)));
324 cmd.Parameters.Add(new SqliteParameter(":Revision", revision)); 325 cmd.Parameters.Add(new SqliteParameter(":Revision", revision));
@@ -333,7 +334,10 @@ namespace OpenSim.DataStore.MonoSqlite
333 // revisions in the database, as this old 334 // revisions in the database, as this old
334 // implementation is a DOS attack waiting to happen. 335 // implementation is a DOS attack waiting to happen.
335 336
336 using(SqliteCommand cmd = new SqliteCommand("delete from terrain where RegionUUID=:RegionUUID and Revision < :Revision", conn)) 337 using (
338 SqliteCommand cmd =
339 new SqliteCommand("delete from terrain where RegionUUID=:RegionUUID and Revision < :Revision",
340 conn))
337 { 341 {
338 cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); 342 cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID)));
339 cmd.Parameters.Add(new SqliteParameter(":Revision", revision)); 343 cmd.Parameters.Add(new SqliteParameter(":Revision", revision));
@@ -345,21 +349,22 @@ namespace OpenSim.DataStore.MonoSqlite
345 349
346 public double[,] LoadTerrain(LLUUID regionID) 350 public double[,] LoadTerrain(LLUUID regionID)
347 { 351 {
348 lock (ds) { 352 lock (ds)
353 {
349 double[,] terret = new double[256,256]; 354 double[,] terret = new double[256,256];
350 terret.Initialize(); 355 terret.Initialize();
351 // the following is an work around for .NET. The perf 356 // the following is an work around for .NET. The perf
352 // issues associated with it aren't as bad as you think. 357 // issues associated with it aren't as bad as you think.
353 SqliteConnection conn = new SqliteConnection(m_connectionString); 358 SqliteConnection conn = new SqliteConnection(m_connectionString);
354 conn.Open(); 359 conn.Open();
355 String sql = "select RegionUUID, Revision, Heightfield from terrain" + 360 String sql = "select RegionUUID, Revision, Heightfield from terrain" +
356 " where RegionUUID=:RegionUUID order by Revision desc"; 361 " where RegionUUID=:RegionUUID order by Revision desc";
357 362
358 363
359 using (SqliteCommand cmd = new SqliteCommand(sql, conn)) 364 using (SqliteCommand cmd = new SqliteCommand(sql, conn))
360 { 365 {
361 cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); 366 cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID)));
362 367
363 using (IDataReader row = cmd.ExecuteReader()) 368 using (IDataReader row = cmd.ExecuteReader())
364 { 369 {
365 int rev = 0; 370 int rev = 0;
@@ -374,7 +379,7 @@ namespace OpenSim.DataStore.MonoSqlite
374 terret[x, y] = BitConverter.ToDouble(heightmap, ((x*256) + y)*8); 379 terret[x, y] = BitConverter.ToDouble(heightmap, ((x*256) + y)*8);
375 } 380 }
376 } 381 }
377 rev = (int)row["Revision"]; 382 rev = (int) row["Revision"];
378 } 383 }
379 else 384 else
380 { 385 {
@@ -382,7 +387,7 @@ namespace OpenSim.DataStore.MonoSqlite
382 conn.Close(); 387 conn.Close();
383 return null; 388 return null;
384 } 389 }
385 390
386 MainLog.Instance.Verbose("DATASTORE", "Loaded terrain revision r" + rev.ToString()); 391 MainLog.Instance.Verbose("DATASTORE", "Loaded terrain revision r" + rev.ToString());
387 } 392 }
388 } 393 }
@@ -434,7 +439,8 @@ namespace OpenSim.DataStore.MonoSqlite
434 fillLandRow(landRow, parcel.landData, regionUUID); 439 fillLandRow(landRow, parcel.landData, regionUUID);
435 } 440 }
436 441
437 using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", conn)) 442 using (
443 SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", conn))
438 { 444 {
439 cmd.Parameters.Add(new SqliteParameter(":LandUUID", Util.ToRawUuidString(parcel.landData.globalID))); 445 cmd.Parameters.Add(new SqliteParameter(":LandUUID", Util.ToRawUuidString(parcel.landData.globalID)));
440 cmd.ExecuteNonQuery(); 446 cmd.ExecuteNonQuery();
@@ -447,16 +453,15 @@ namespace OpenSim.DataStore.MonoSqlite
447 landaccesslist.Rows.Add(newAccessRow); 453 landaccesslist.Rows.Add(newAccessRow);
448 } 454 }
449 conn.Close(); 455 conn.Close();
450
451 } 456 }
452 457
453 Commit(); 458 Commit();
454 } 459 }
455 460
456 public List<Framework.LandData> LoadLandObjects(LLUUID regionUUID) 461 public List<LandData> LoadLandObjects(LLUUID regionUUID)
457 { 462 {
458 List<LandData> landDataForRegion = new List<LandData>(); 463 List<LandData> landDataForRegion = new List<LandData>();
459 lock(ds) 464 lock (ds)
460 { 465 {
461 DataTable land = ds.Tables["land"]; 466 DataTable land = ds.Tables["land"];
462 DataTable landaccesslist = ds.Tables["landaccesslist"]; 467 DataTable landaccesslist = ds.Tables["landaccesslist"];
@@ -570,14 +575,14 @@ namespace OpenSim.DataStore.MonoSqlite
570 createCol(prims, "RotationW", typeof (Double)); 575 createCol(prims, "RotationW", typeof (Double));
571 576
572 // sit target 577 // sit target
573 createCol(prims, "SitTargetOffsetX", typeof(Double)); 578 createCol(prims, "SitTargetOffsetX", typeof (Double));
574 createCol(prims, "SitTargetOffsetY", typeof(Double)); 579 createCol(prims, "SitTargetOffsetY", typeof (Double));
575 createCol(prims, "SitTargetOffsetZ", typeof(Double)); 580 createCol(prims, "SitTargetOffsetZ", typeof (Double));
576 581
577 createCol(prims, "SitTargetOrientW", typeof(Double)); 582 createCol(prims, "SitTargetOrientW", typeof (Double));
578 createCol(prims, "SitTargetOrientX", typeof(Double)); 583 createCol(prims, "SitTargetOrientX", typeof (Double));
579 createCol(prims, "SitTargetOrientY", typeof(Double)); 584 createCol(prims, "SitTargetOrientY", typeof (Double));
580 createCol(prims, "SitTargetOrientZ", typeof(Double)); 585 createCol(prims, "SitTargetOrientZ", typeof (Double));
581 586
582 // Add in contraints 587 // Add in contraints
583 prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]}; 588 prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]};
@@ -621,11 +626,11 @@ namespace OpenSim.DataStore.MonoSqlite
621 createCol(shapes, "Texture", typeof (Byte[])); 626 createCol(shapes, "Texture", typeof (Byte[]));
622 createCol(shapes, "ExtraParams", typeof (Byte[])); 627 createCol(shapes, "ExtraParams", typeof (Byte[]));
623 628
624 shapes.PrimaryKey = new DataColumn[] { shapes.Columns["UUID"] }; 629 shapes.PrimaryKey = new DataColumn[] {shapes.Columns["UUID"]};
625 630
626 return shapes; 631 return shapes;
627 } 632 }
628 633
629 private DataTable createItemsTable() 634 private DataTable createItemsTable()
630 { 635 {
631 DataTable items = new DataTable("primitems"); 636 DataTable items = new DataTable("primitems");
@@ -635,10 +640,10 @@ namespace OpenSim.DataStore.MonoSqlite
635 createCol(items, "assetID", typeof (String)); 640 createCol(items, "assetID", typeof (String));
636 createCol(items, "assetType", typeof (Int32)); 641 createCol(items, "assetType", typeof (Int32));
637 createCol(items, "parentFolderID", typeof (String)); 642 createCol(items, "parentFolderID", typeof (String));
638 643
639 createCol(items, "name", typeof (String)); 644 createCol(items, "name", typeof (String));
640 createCol(items, "description", typeof (String)); 645 createCol(items, "description", typeof (String));
641 646
642 createCol(items, "creationDate", typeof (Int64)); 647 createCol(items, "creationDate", typeof (Int64));
643 createCol(items, "creatorID", typeof (String)); 648 createCol(items, "creatorID", typeof (String));
644 createCol(items, "ownerID", typeof (String)); 649 createCol(items, "ownerID", typeof (String));
@@ -651,50 +656,50 @@ namespace OpenSim.DataStore.MonoSqlite
651 createCol(items, "everyonePermissions", typeof (Int32)); 656 createCol(items, "everyonePermissions", typeof (Int32));
652 createCol(items, "groupPermissions", typeof (Int32)); 657 createCol(items, "groupPermissions", typeof (Int32));
653 658
654 items.PrimaryKey = new DataColumn[] { items.Columns["UUID"] }; 659 items.PrimaryKey = new DataColumn[] {items.Columns["UUID"]};
655 660
656 return items; 661 return items;
657 } 662 }
658 663
659 private DataTable createLandTable() 664 private DataTable createLandTable()
660 { 665 {
661 DataTable land = new DataTable("land"); 666 DataTable land = new DataTable("land");
662 createCol(land, "UUID", typeof(String)); 667 createCol(land, "UUID", typeof (String));
663 createCol(land, "RegionUUID", typeof(String)); 668 createCol(land, "RegionUUID", typeof (String));
664 createCol(land, "LocalLandID", typeof(UInt32)); 669 createCol(land, "LocalLandID", typeof (UInt32));
665 670
666 // Bitmap is a byte[512] 671 // Bitmap is a byte[512]
667 createCol(land, "Bitmap", typeof(Byte[])); 672 createCol(land, "Bitmap", typeof (Byte[]));
668 673
669 createCol(land, "Name", typeof(String)); 674 createCol(land, "Name", typeof (String));
670 createCol(land, "Desc", typeof(String)); 675 createCol(land, "Desc", typeof (String));
671 createCol(land, "OwnerUUID", typeof(String)); 676 createCol(land, "OwnerUUID", typeof (String));
672 createCol(land, "IsGroupOwned", typeof(Boolean)); 677 createCol(land, "IsGroupOwned", typeof (Boolean));
673 createCol(land, "Area", typeof(Int32)); 678 createCol(land, "Area", typeof (Int32));
674 createCol(land, "AuctionID", typeof(Int32)); //Unemplemented 679 createCol(land, "AuctionID", typeof (Int32)); //Unemplemented
675 createCol(land, "Category", typeof(Int32)); //Enum libsecondlife.Parcel.ParcelCategory 680 createCol(land, "Category", typeof (Int32)); //Enum libsecondlife.Parcel.ParcelCategory
676 createCol(land, "ClaimDate", typeof(Int32)); 681 createCol(land, "ClaimDate", typeof (Int32));
677 createCol(land, "ClaimPrice", typeof(Int32)); 682 createCol(land, "ClaimPrice", typeof (Int32));
678 createCol(land, "GroupUUID", typeof(string)); 683 createCol(land, "GroupUUID", typeof (string));
679 createCol(land, "SalePrice", typeof(Int32)); 684 createCol(land, "SalePrice", typeof (Int32));
680 createCol(land, "LandStatus", typeof(Int32)); //Enum. libsecondlife.Parcel.ParcelStatus 685 createCol(land, "LandStatus", typeof (Int32)); //Enum. libsecondlife.Parcel.ParcelStatus
681 createCol(land, "LandFlags", typeof(UInt32)); 686 createCol(land, "LandFlags", typeof (UInt32));
682 createCol(land, "LandingType", typeof(Byte)); 687 createCol(land, "LandingType", typeof (Byte));
683 createCol(land, "MediaAutoScale", typeof(Byte)); 688 createCol(land, "MediaAutoScale", typeof (Byte));
684 createCol(land, "MediaTextureUUID", typeof(String)); 689 createCol(land, "MediaTextureUUID", typeof (String));
685 createCol(land, "MediaURL", typeof(String)); 690 createCol(land, "MediaURL", typeof (String));
686 createCol(land, "MusicURL", typeof(String)); 691 createCol(land, "MusicURL", typeof (String));
687 createCol(land, "PassHours", typeof(Double)); 692 createCol(land, "PassHours", typeof (Double));
688 createCol(land, "PassPrice", typeof(UInt32)); 693 createCol(land, "PassPrice", typeof (UInt32));
689 createCol(land, "SnapshotUUID", typeof(String)); 694 createCol(land, "SnapshotUUID", typeof (String));
690 createCol(land, "UserLocationX", typeof(Double)); 695 createCol(land, "UserLocationX", typeof (Double));
691 createCol(land, "UserLocationY", typeof(Double)); 696 createCol(land, "UserLocationY", typeof (Double));
692 createCol(land, "UserLocationZ", typeof(Double)); 697 createCol(land, "UserLocationZ", typeof (Double));
693 createCol(land, "UserLookAtX", typeof(Double)); 698 createCol(land, "UserLookAtX", typeof (Double));
694 createCol(land, "UserLookAtY", typeof(Double)); 699 createCol(land, "UserLookAtY", typeof (Double));
695 createCol(land, "UserLookAtZ", typeof(Double)); 700 createCol(land, "UserLookAtZ", typeof (Double));
696 701
697 land.PrimaryKey = new DataColumn[] { land.Columns["UUID"] }; 702 land.PrimaryKey = new DataColumn[] {land.Columns["UUID"]};
698 703
699 return land; 704 return land;
700 } 705 }
@@ -702,9 +707,9 @@ namespace OpenSim.DataStore.MonoSqlite
702 private DataTable createLandAccessListTable() 707 private DataTable createLandAccessListTable()
703 { 708 {
704 DataTable landaccess = new DataTable("landaccesslist"); 709 DataTable landaccess = new DataTable("landaccesslist");
705 createCol(landaccess, "LandUUID", typeof(String)); 710 createCol(landaccess, "LandUUID", typeof (String));
706 createCol(landaccess, "AccessUUID", typeof(String)); 711 createCol(landaccess, "AccessUUID", typeof (String));
707 createCol(landaccess, "Flags", typeof(UInt32)); 712 createCol(landaccess, "Flags", typeof (UInt32));
708 713
709 return landaccess; 714 return landaccess;
710 } 715 }
@@ -782,35 +787,43 @@ namespace OpenSim.DataStore.MonoSqlite
782 try 787 try
783 { 788 {
784 prim.SetSitTargetLL(new LLVector3( 789 prim.SetSitTargetLL(new LLVector3(
785 Convert.ToSingle(row["SitTargetOffsetX"]), 790 Convert.ToSingle(row["SitTargetOffsetX"]),
786 Convert.ToSingle(row["SitTargetOffsetY"]), 791 Convert.ToSingle(row["SitTargetOffsetY"]),
787 Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( 792 Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion(
788 Convert.ToSingle(row["SitTargetOrientX"]), 793 Convert.ToSingle(
789 Convert.ToSingle(row["SitTargetOrientY"]), 794 row["SitTargetOrientX"]),
790 Convert.ToSingle(row["SitTargetOrientZ"]), 795 Convert.ToSingle(
791 Convert.ToSingle(row["SitTargetOrientW"]))); 796 row["SitTargetOrientY"]),
797 Convert.ToSingle(
798 row["SitTargetOrientZ"]),
799 Convert.ToSingle(
800 row["SitTargetOrientW"])));
792 } 801 }
793 catch (System.InvalidCastException) 802 catch (InvalidCastException)
794 { 803 {
795 // Database table was created before we got here and now has null values :P 804 // Database table was created before we got here and now has null values :P
796 m_conn.Open(); 805 m_conn.Open();
797 SqliteCommand cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetX float NOT NULL default 0;", m_conn); 806 SqliteCommand cmd =
807 new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetX float NOT NULL default 0;", m_conn);
798 cmd.ExecuteNonQuery(); 808 cmd.ExecuteNonQuery();
799 cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetY float NOT NULL default 0;", m_conn); 809 cmd =
810 new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetY float NOT NULL default 0;", m_conn);
800 cmd.ExecuteNonQuery(); 811 cmd.ExecuteNonQuery();
801 cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetZ float NOT NULL default 0;", m_conn); 812 cmd =
813 new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetZ float NOT NULL default 0;", m_conn);
802 cmd.ExecuteNonQuery(); 814 cmd.ExecuteNonQuery();
803 cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientW float NOT NULL default 0;", m_conn); 815 cmd =
816 new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientW float NOT NULL default 0;", m_conn);
804 cmd.ExecuteNonQuery(); 817 cmd.ExecuteNonQuery();
805 cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientX float NOT NULL default 0;", m_conn); 818 cmd =
819 new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientX float NOT NULL default 0;", m_conn);
806 cmd.ExecuteNonQuery(); 820 cmd.ExecuteNonQuery();
807 cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientY float NOT NULL default 0;", m_conn); 821 cmd =
822 new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientY float NOT NULL default 0;", m_conn);
808 cmd.ExecuteNonQuery(); 823 cmd.ExecuteNonQuery();
809 cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientZ float NOT NULL default 0;", m_conn); 824 cmd =
825 new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientZ float NOT NULL default 0;", m_conn);
810 cmd.ExecuteNonQuery(); 826 cmd.ExecuteNonQuery();
811
812
813
814 } 827 }
815 828
816 return prim; 829 return prim;
@@ -820,36 +833,42 @@ namespace OpenSim.DataStore.MonoSqlite
820 { 833 {
821 LandData newData = new LandData(); 834 LandData newData = new LandData();
822 835
823 newData.globalID = new LLUUID((String)row["UUID"]); 836 newData.globalID = new LLUUID((String) row["UUID"]);
824 newData.localID= Convert.ToInt32(row["LocalLandID"]); 837 newData.localID = Convert.ToInt32(row["LocalLandID"]);
825 838
826 // Bitmap is a byte[512] 839 // Bitmap is a byte[512]
827 newData.landBitmapByteArray = (Byte[]) row["Bitmap"]; 840 newData.landBitmapByteArray = (Byte[]) row["Bitmap"];
828 841
829 newData.landName= (String) row["Name"]; 842 newData.landName = (String) row["Name"];
830 newData.landDesc= (String) row["Desc"]; 843 newData.landDesc = (String) row["Desc"];
831 newData.ownerID= (String) row["OwnerUUID"]; 844 newData.ownerID = (String) row["OwnerUUID"];
832 newData.isGroupOwned= (Boolean) row["IsGroupOwned"]; 845 newData.isGroupOwned = (Boolean) row["IsGroupOwned"];
833 newData.area= Convert.ToInt32(row["Area"]); 846 newData.area = Convert.ToInt32(row["Area"]);
834 newData.auctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented 847 newData.auctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented
835 newData.category= (Parcel.ParcelCategory) Convert.ToInt32(row["Category"]); //Enum libsecondlife.Parcel.ParcelCategory 848 newData.category = (Parcel.ParcelCategory) Convert.ToInt32(row["Category"]);
836 newData.claimDate= Convert.ToInt32(row["ClaimDate"]); 849 //Enum libsecondlife.Parcel.ParcelCategory
837 newData.claimPrice= Convert.ToInt32(row["ClaimPrice"]); 850 newData.claimDate = Convert.ToInt32(row["ClaimDate"]);
838 newData.groupID= new LLUUID((String)row["GroupUUID"]); 851 newData.claimPrice = Convert.ToInt32(row["ClaimPrice"]);
852 newData.groupID = new LLUUID((String) row["GroupUUID"]);
839 newData.salePrice = Convert.ToInt32(row["SalePrice"]); 853 newData.salePrice = Convert.ToInt32(row["SalePrice"]);
840 newData.landStatus= (Parcel.ParcelStatus) Convert.ToInt32(row["LandStatus"]); //Enum. libsecondlife.Parcel.ParcelStatus 854 newData.landStatus = (Parcel.ParcelStatus) Convert.ToInt32(row["LandStatus"]);
841 newData.landFlags= Convert.ToUInt32(row["LandFlags"]); 855 //Enum. libsecondlife.Parcel.ParcelStatus
842 newData.landingType= (Byte) row["LandingType"]; 856 newData.landFlags = Convert.ToUInt32(row["LandFlags"]);
843 newData.mediaAutoScale= (Byte) row["MediaAutoScale"]; 857 newData.landingType = (Byte) row["LandingType"];
844 newData.mediaID= new LLUUID((String)row["MediaTextureUUID"]); 858 newData.mediaAutoScale = (Byte) row["MediaAutoScale"];
845 newData.mediaURL= (String) row["MediaURL"]; 859 newData.mediaID = new LLUUID((String) row["MediaTextureUUID"]);
846 newData.musicURL= (String) row["MusicURL"]; 860 newData.mediaURL = (String) row["MediaURL"];
847 newData.passHours= Convert.ToSingle(row["PassHours"]); 861 newData.musicURL = (String) row["MusicURL"];
848 newData.passPrice= Convert.ToInt32(row["PassPrice"]); 862 newData.passHours = Convert.ToSingle(row["PassHours"]);
849 newData.snapshotID= (String) row["SnapshotUUID"]; 863 newData.passPrice = Convert.ToInt32(row["PassPrice"]);
850 864 newData.snapshotID = (String) row["SnapshotUUID"];
851 newData.userLocation = new LLVector3(Convert.ToSingle(row["UserLocationX"]),Convert.ToSingle(row["UserLocationY"]), Convert.ToSingle(row["UserLocationZ"])); 865
852 newData.userLookAt = new LLVector3(Convert.ToSingle(row["UserLookAtX"]),Convert.ToSingle(row["UserLookAtY"]), Convert.ToSingle(row["UserLookAtZ"])); 866 newData.userLocation =
867 new LLVector3(Convert.ToSingle(row["UserLocationX"]), Convert.ToSingle(row["UserLocationY"]),
868 Convert.ToSingle(row["UserLocationZ"]));
869 newData.userLookAt =
870 new LLVector3(Convert.ToSingle(row["UserLookAtX"]), Convert.ToSingle(row["UserLookAtY"]),
871 Convert.ToSingle(row["UserLookAtZ"]));
853 newData.parcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); 872 newData.parcelAccessList = new List<ParcelManager.ParcelAccessEntry>();
854 873
855 return newData; 874 return newData;
@@ -858,13 +877,13 @@ namespace OpenSim.DataStore.MonoSqlite
858 private ParcelManager.ParcelAccessEntry buildLandAccessData(DataRow row) 877 private ParcelManager.ParcelAccessEntry buildLandAccessData(DataRow row)
859 { 878 {
860 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); 879 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
861 entry.AgentID = new LLUUID((string)row["AccessUUID"]); 880 entry.AgentID = new LLUUID((string) row["AccessUUID"]);
862 entry.Flags = (ParcelManager.AccessList)row["Flags"]; 881 entry.Flags = (ParcelManager.AccessList) row["Flags"];
863 entry.Time = new DateTime(); 882 entry.Time = new DateTime();
864 return entry; 883 return entry;
865 } 884 }
866 885
867 private Array serializeTerrain(double[,] val) 886 private Array serializeTerrain(double[,] val)
868 { 887 {
869 MemoryStream str = new MemoryStream(65536*sizeof (double)); 888 MemoryStream str = new MemoryStream(65536*sizeof (double));
870 BinaryWriter bw = new BinaryWriter(str); 889 BinaryWriter bw = new BinaryWriter(str);
@@ -900,7 +919,8 @@ namespace OpenSim.DataStore.MonoSqlite
900 row["ParentID"] = prim.ParentID; 919 row["ParentID"] = prim.ParentID;
901 row["CreationDate"] = prim.CreationDate; 920 row["CreationDate"] = prim.CreationDate;
902 row["Name"] = prim.Name; 921 row["Name"] = prim.Name;
903 row["SceneGroupID"] = Util.ToRawUuidString(sceneGroupID); // the UUID of the root part for this SceneObjectGroup 922 row["SceneGroupID"] = Util.ToRawUuidString(sceneGroupID);
923 // the UUID of the root part for this SceneObjectGroup
904 // various text fields 924 // various text fields
905 row["Text"] = prim.Text; 925 row["Text"] = prim.Text;
906 row["Description"] = prim.Description; 926 row["Description"] = prim.Description;
@@ -1028,10 +1048,10 @@ namespace OpenSim.DataStore.MonoSqlite
1028 s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); 1048 s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]);
1029 // text TODO: this isn't right] = but I'm not sure the right 1049 // text TODO: this isn't right] = but I'm not sure the right
1030 // way to specify this as a blob atm 1050 // way to specify this as a blob atm
1031 1051
1032 byte[] textureEntry = (byte[])row["Texture"]; 1052 byte[] textureEntry = (byte[]) row["Texture"];
1033 s.TextureEntry = textureEntry; 1053 s.TextureEntry = textureEntry;
1034 1054
1035 1055
1036 s.ExtraParams = (byte[]) row["ExtraParams"]; 1056 s.ExtraParams = (byte[]) row["ExtraParams"];
1037 // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); 1057 // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
@@ -1278,6 +1298,7 @@ namespace OpenSim.DataStore.MonoSqlite
1278 da.InsertCommand = createInsertCommand("landaccesslist", ds.Tables["landaccesslist"]); 1298 da.InsertCommand = createInsertCommand("landaccesslist", ds.Tables["landaccesslist"]);
1279 da.InsertCommand.Connection = conn; 1299 da.InsertCommand.Connection = conn;
1280 } 1300 }
1301
1281 private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn) 1302 private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn)
1282 { 1303 {
1283 da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]); 1304 da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]);
@@ -1331,7 +1352,7 @@ namespace OpenSim.DataStore.MonoSqlite
1331 { 1352 {
1332 MainLog.Instance.Warn("SQLITE", "Shapes Table Already Exists"); 1353 MainLog.Instance.Warn("SQLITE", "Shapes Table Already Exists");
1333 } 1354 }
1334 1355
1335 if (persistPrimInventories) 1356 if (persistPrimInventories)
1336 { 1357 {
1337 try 1358 try
@@ -1341,7 +1362,7 @@ namespace OpenSim.DataStore.MonoSqlite
1341 catch (SqliteSyntaxException) 1362 catch (SqliteSyntaxException)
1342 { 1363 {
1343 MainLog.Instance.Warn("SQLITE", "Primitives Inventory Table Already Exists"); 1364 MainLog.Instance.Warn("SQLITE", "Primitives Inventory Table Already Exists");
1344 } 1365 }
1345 } 1366 }
1346 1367
1347 try 1368 try
@@ -1377,32 +1398,31 @@ namespace OpenSim.DataStore.MonoSqlite
1377 { 1398 {
1378 SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn); 1399 SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn);
1379 SqliteDataAdapter pDa = new SqliteDataAdapter(primSelectCmd); 1400 SqliteDataAdapter pDa = new SqliteDataAdapter(primSelectCmd);
1380 1401
1381 SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, conn); 1402 SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, conn);
1382 SqliteDataAdapter sDa = new SqliteDataAdapter(shapeSelectCmd); 1403 SqliteDataAdapter sDa = new SqliteDataAdapter(shapeSelectCmd);
1383 1404
1384 SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, conn); 1405 SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, conn);
1385 SqliteDataAdapter iDa = new SqliteDataAdapter(itemsSelectCmd); 1406 SqliteDataAdapter iDa = new SqliteDataAdapter(itemsSelectCmd);
1386 1407
1387 SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, conn); 1408 SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, conn);
1388 SqliteDataAdapter tDa = new SqliteDataAdapter(terrainSelectCmd); 1409 SqliteDataAdapter tDa = new SqliteDataAdapter(terrainSelectCmd);
1389 1410
1390 SqliteCommand landSelectCmd = new SqliteCommand(landSelect, conn); 1411 SqliteCommand landSelectCmd = new SqliteCommand(landSelect, conn);
1391 SqliteDataAdapter lDa = new SqliteDataAdapter(landSelectCmd); 1412 SqliteDataAdapter lDa = new SqliteDataAdapter(landSelectCmd);
1392 1413
1393 SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, conn); 1414 SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, conn);
1394 SqliteDataAdapter lalDa = new SqliteDataAdapter(landAccessListSelectCmd); 1415 SqliteDataAdapter lalDa = new SqliteDataAdapter(landAccessListSelectCmd);
1395 1416
1396 DataSet tmpDS = new DataSet(); 1417 DataSet tmpDS = new DataSet();
1397 try 1418 try
1398 { 1419 {
1399
1400 pDa.Fill(tmpDS, "prims"); 1420 pDa.Fill(tmpDS, "prims");
1401 sDa.Fill(tmpDS, "primshapes"); 1421 sDa.Fill(tmpDS, "primshapes");
1402 1422
1403 if (persistPrimInventories) 1423 if (persistPrimInventories)
1404 iDa.Fill(tmpDS, "primitems"); 1424 iDa.Fill(tmpDS, "primitems");
1405 1425
1406 tDa.Fill(tmpDS, "terrain"); 1426 tDa.Fill(tmpDS, "terrain");
1407 lDa.Fill(tmpDS, "land"); 1427 lDa.Fill(tmpDS, "land");
1408 lalDa.Fill(tmpDS, "landaccesslist"); 1428 lalDa.Fill(tmpDS, "landaccesslist");
@@ -1415,13 +1435,13 @@ namespace OpenSim.DataStore.MonoSqlite
1415 1435
1416 pDa.Fill(tmpDS, "prims"); 1436 pDa.Fill(tmpDS, "prims");
1417 sDa.Fill(tmpDS, "primshapes"); 1437 sDa.Fill(tmpDS, "primshapes");
1418 1438
1419 if (persistPrimInventories) 1439 if (persistPrimInventories)
1420 iDa.Fill(tmpDS, "primitems"); 1440 iDa.Fill(tmpDS, "primitems");
1421 1441
1422 tDa.Fill(tmpDS, "terrain"); 1442 tDa.Fill(tmpDS, "terrain");
1423 lDa.Fill(tmpDS, "land"); 1443 lDa.Fill(tmpDS, "land");
1424 lalDa.Fill(tmpDS,"landaccesslist"); 1444 lalDa.Fill(tmpDS, "landaccesslist");
1425 1445
1426 foreach (DataColumn col in createPrimTable().Columns) 1446 foreach (DataColumn col in createPrimTable().Columns)
1427 { 1447 {
@@ -1431,7 +1451,7 @@ namespace OpenSim.DataStore.MonoSqlite
1431 return false; 1451 return false;
1432 } 1452 }
1433 } 1453 }
1434 1454
1435 foreach (DataColumn col in createShapeTable().Columns) 1455 foreach (DataColumn col in createShapeTable().Columns)
1436 { 1456 {
1437 if (!tmpDS.Tables["primshapes"].Columns.Contains(col.ColumnName)) 1457 if (!tmpDS.Tables["primshapes"].Columns.Contains(col.ColumnName))
@@ -1440,9 +1460,9 @@ namespace OpenSim.DataStore.MonoSqlite
1440 return false; 1460 return false;
1441 } 1461 }
1442 } 1462 }
1443 1463
1444 // TODO Not restoring prim inventories quite yet 1464 // TODO Not restoring prim inventories quite yet
1445 1465
1446 foreach (DataColumn col in createTerrainTable().Columns) 1466 foreach (DataColumn col in createTerrainTable().Columns)
1447 { 1467 {
1448 if (!tmpDS.Tables["terrain"].Columns.Contains(col.ColumnName)) 1468 if (!tmpDS.Tables["terrain"].Columns.Contains(col.ColumnName))
@@ -1451,7 +1471,7 @@ namespace OpenSim.DataStore.MonoSqlite
1451 return false; 1471 return false;
1452 } 1472 }
1453 } 1473 }
1454 1474
1455 foreach (DataColumn col in createLandTable().Columns) 1475 foreach (DataColumn col in createLandTable().Columns)
1456 { 1476 {
1457 if (!tmpDS.Tables["land"].Columns.Contains(col.ColumnName)) 1477 if (!tmpDS.Tables["land"].Columns.Contains(col.ColumnName))
@@ -1460,7 +1480,7 @@ namespace OpenSim.DataStore.MonoSqlite
1460 return false; 1480 return false;
1461 } 1481 }
1462 } 1482 }
1463 1483
1464 foreach (DataColumn col in createLandAccessListTable().Columns) 1484 foreach (DataColumn col in createLandAccessListTable().Columns)
1465 { 1485 {
1466 if (!tmpDS.Tables["landaccesslist"].Columns.Contains(col.ColumnName)) 1486 if (!tmpDS.Tables["landaccesslist"].Columns.Contains(col.ColumnName))
@@ -1469,7 +1489,7 @@ namespace OpenSim.DataStore.MonoSqlite
1469 return false; 1489 return false;
1470 } 1490 }
1471 } 1491 }
1472 1492
1473 return true; 1493 return true;
1474 } 1494 }
1475 1495
@@ -1526,7 +1546,7 @@ namespace OpenSim.DataStore.MonoSqlite
1526 else if (type == typeof (Int64)) 1546 else if (type == typeof (Int64))
1527 { 1547 {
1528 return "integer"; 1548 return "integer";
1529 } 1549 }
1530 else if (type == typeof (Double)) 1550 else if (type == typeof (Double))
1531 { 1551 {
1532 return "float"; 1552 return "float";
@@ -1541,4 +1561,4 @@ namespace OpenSim.DataStore.MonoSqlite
1541 } 1561 }
1542 } 1562 }
1543 } 1563 }
1544} 1564} \ No newline at end of file
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs
index da05018..035c3ba 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs
@@ -28,6 +28,7 @@
28 28
29using System.Collections.Generic; 29using System.Collections.Generic;
30using libsecondlife; 30using libsecondlife;
31using OpenSim.Framework;
31using OpenSim.Region.Environment.Interfaces; 32using OpenSim.Region.Environment.Interfaces;
32using OpenSim.Region.Environment.LandManagement; 33using OpenSim.Region.Environment.LandManagement;
33using OpenSim.Region.Environment.Scenes; 34using OpenSim.Region.Environment.Scenes;
@@ -71,9 +72,9 @@ namespace OpenSim.DataStore.NullStorage
71 { 72 {
72 } 73 }
73 74
74 public List<Framework.LandData> LoadLandObjects(LLUUID regionUUID) 75 public List<LandData> LoadLandObjects(LLUUID regionUUID)
75 { 76 {
76 return new List<Framework.LandData>(); 77 return new List<LandData>();
77 } 78 }
78 79
79 public void Shutdown() 80 public void Shutdown()