aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/MySQL
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Data/MySQL')
-rw-r--r--OpenSim/Data/MySQL/MySQLGenericTableHandler.cs27
-rw-r--r--OpenSim/Data/MySQL/MySQLSimulationData.cs30
-rw-r--r--OpenSim/Data/MySQL/MySQLXInventoryData.cs10
3 files changed, 46 insertions, 21 deletions
diff --git a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs
index cfffbd8..754cf72 100644
--- a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs
+++ b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs
@@ -264,18 +264,33 @@ namespace OpenSim.Data.MySQL
264 } 264 }
265 } 265 }
266 266
267 public virtual bool Delete(string field, string val) 267 public virtual bool Delete(string field, string key)
268 { 268 {
269 return Delete(new string[] { field }, new string[] { key });
270 }
271
272 public virtual bool Delete(string[] fields, string[] keys)
273 {
274 if (fields.Length != keys.Length)
275 return false;
276
277 List<string> terms = new List<string>();
278
269 using (MySqlCommand cmd = new MySqlCommand()) 279 using (MySqlCommand cmd = new MySqlCommand())
270 { 280 {
281 for (int i = 0 ; i < fields.Length ; i++)
282 {
283 cmd.Parameters.AddWithValue(fields[i], keys[i]);
284 terms.Add("`" + fields[i] + "` = ?" + fields[i]);
285 }
271 286
272 cmd.CommandText = String.Format("delete from {0} where `{1}` = ?{1}", m_Realm, field); 287 string where = String.Join(" and ", terms.ToArray());
273 cmd.Parameters.AddWithValue(field, val);
274 288
275 if (ExecuteNonQuery(cmd) > 0) 289 string query = String.Format("delete from {0} where {1}", m_Realm, where);
276 return true;
277 290
278 return false; 291 cmd.CommandText = query;
292
293 return ExecuteNonQuery(cmd) > 0;
279 } 294 }
280 } 295 }
281 } 296 }
diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs
index e14d775..3306968 100644
--- a/OpenSim/Data/MySQL/MySQLSimulationData.cs
+++ b/OpenSim/Data/MySQL/MySQLSimulationData.cs
@@ -66,7 +66,7 @@ namespace OpenSim.Data.MySQL
66 Initialise(connectionString); 66 Initialise(connectionString);
67 } 67 }
68 68
69 public void Initialise(string connectionString) 69 public virtual void Initialise(string connectionString)
70 { 70 {
71 m_connectionString = connectionString; 71 m_connectionString = connectionString;
72 72
@@ -130,7 +130,7 @@ namespace OpenSim.Data.MySQL
130 130
131 public void Dispose() {} 131 public void Dispose() {}
132 132
133 public void StoreObject(SceneObjectGroup obj, UUID regionUUID) 133 public virtual void StoreObject(SceneObjectGroup obj, UUID regionUUID)
134 { 134 {
135 uint flags = obj.RootPart.GetEffectiveObjectFlags(); 135 uint flags = obj.RootPart.GetEffectiveObjectFlags();
136 136
@@ -258,7 +258,7 @@ namespace OpenSim.Data.MySQL
258 } 258 }
259 } 259 }
260 260
261 public void RemoveObject(UUID obj, UUID regionUUID) 261 public virtual void RemoveObject(UUID obj, UUID regionUUID)
262 { 262 {
263// m_log.DebugFormat("[REGION DB]: Deleting scene object {0} from {1} in database", obj, regionUUID); 263// m_log.DebugFormat("[REGION DB]: Deleting scene object {0} from {1} in database", obj, regionUUID);
264 264
@@ -407,7 +407,7 @@ namespace OpenSim.Data.MySQL
407 } 407 }
408 } 408 }
409 409
410 public List<SceneObjectGroup> LoadObjects(UUID regionID) 410 public virtual List<SceneObjectGroup> LoadObjects(UUID regionID)
411 { 411 {
412 const int ROWS_PER_QUERY = 5000; 412 const int ROWS_PER_QUERY = 5000;
413 413
@@ -576,7 +576,7 @@ namespace OpenSim.Data.MySQL
576 } 576 }
577 } 577 }
578 578
579 public void StoreTerrain(double[,] ter, UUID regionID) 579 public virtual void StoreTerrain(double[,] ter, UUID regionID)
580 { 580 {
581 m_log.Info("[REGION DB]: Storing terrain"); 581 m_log.Info("[REGION DB]: Storing terrain");
582 582
@@ -605,7 +605,7 @@ namespace OpenSim.Data.MySQL
605 } 605 }
606 } 606 }
607 607
608 public double[,] LoadTerrain(UUID regionID) 608 public virtual double[,] LoadTerrain(UUID regionID)
609 { 609 {
610 double[,] terrain = null; 610 double[,] terrain = null;
611 611
@@ -655,7 +655,7 @@ namespace OpenSim.Data.MySQL
655 return terrain; 655 return terrain;
656 } 656 }
657 657
658 public void RemoveLandObject(UUID globalID) 658 public virtual void RemoveLandObject(UUID globalID)
659 { 659 {
660 lock (m_dbLock) 660 lock (m_dbLock)
661 { 661 {
@@ -674,7 +674,7 @@ namespace OpenSim.Data.MySQL
674 } 674 }
675 } 675 }
676 676
677 public void StoreLandObject(ILandObject parcel) 677 public virtual void StoreLandObject(ILandObject parcel)
678 { 678 {
679 lock (m_dbLock) 679 lock (m_dbLock)
680 { 680 {
@@ -731,7 +731,7 @@ namespace OpenSim.Data.MySQL
731 } 731 }
732 } 732 }
733 733
734 public RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID) 734 public virtual RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID)
735 { 735 {
736 RegionLightShareData nWP = new RegionLightShareData(); 736 RegionLightShareData nWP = new RegionLightShareData();
737 nWP.OnSave += StoreRegionWindlightSettings; 737 nWP.OnSave += StoreRegionWindlightSettings;
@@ -828,7 +828,7 @@ namespace OpenSim.Data.MySQL
828 return nWP; 828 return nWP;
829 } 829 }
830 830
831 public RegionSettings LoadRegionSettings(UUID regionUUID) 831 public virtual RegionSettings LoadRegionSettings(UUID regionUUID)
832 { 832 {
833 RegionSettings rs = null; 833 RegionSettings rs = null;
834 834
@@ -866,7 +866,7 @@ namespace OpenSim.Data.MySQL
866 return rs; 866 return rs;
867 } 867 }
868 868
869 public void StoreRegionWindlightSettings(RegionLightShareData wl) 869 public virtual void StoreRegionWindlightSettings(RegionLightShareData wl)
870 { 870 {
871 using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) 871 using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
872 { 872 {
@@ -969,7 +969,7 @@ namespace OpenSim.Data.MySQL
969 } 969 }
970 } 970 }
971 971
972 public void RemoveRegionWindlightSettings(UUID regionID) 972 public virtual void RemoveRegionWindlightSettings(UUID regionID)
973 { 973 {
974 using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) 974 using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
975 { 975 {
@@ -984,7 +984,7 @@ namespace OpenSim.Data.MySQL
984 } 984 }
985 } 985 }
986 986
987 public void StoreRegionSettings(RegionSettings rs) 987 public virtual void StoreRegionSettings(RegionSettings rs)
988 { 988 {
989 lock (m_dbLock) 989 lock (m_dbLock)
990 { 990 {
@@ -1036,7 +1036,7 @@ namespace OpenSim.Data.MySQL
1036 } 1036 }
1037 } 1037 }
1038 1038
1039 public List<LandData> LoadLandObjects(UUID regionUUID) 1039 public virtual List<LandData> LoadLandObjects(UUID regionUUID)
1040 { 1040 {
1041 List<LandData> landData = new List<LandData>(); 1041 List<LandData> landData = new List<LandData>();
1042 1042
@@ -1802,7 +1802,7 @@ namespace OpenSim.Data.MySQL
1802 cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml()); 1802 cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml());
1803 } 1803 }
1804 1804
1805 public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) 1805 public virtual void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items)
1806 { 1806 {
1807 lock (m_dbLock) 1807 lock (m_dbLock)
1808 { 1808 {
diff --git a/OpenSim/Data/MySQL/MySQLXInventoryData.cs b/OpenSim/Data/MySQL/MySQLXInventoryData.cs
index 481da49..caf18a4 100644
--- a/OpenSim/Data/MySQL/MySQLXInventoryData.cs
+++ b/OpenSim/Data/MySQL/MySQLXInventoryData.cs
@@ -85,11 +85,21 @@ namespace OpenSim.Data.MySQL
85 return m_Folders.Delete(field, val); 85 return m_Folders.Delete(field, val);
86 } 86 }
87 87
88 public bool DeleteFolders(string[] fields, string[] vals)
89 {
90 return m_Folders.Delete(fields, vals);
91 }
92
88 public bool DeleteItems(string field, string val) 93 public bool DeleteItems(string field, string val)
89 { 94 {
90 return m_Items.Delete(field, val); 95 return m_Items.Delete(field, val);
91 } 96 }
92 97
98 public bool DeleteItems(string[] fields, string[] vals)
99 {
100 return m_Items.Delete(fields, vals);
101 }
102
93 public bool MoveItem(string id, string newParent) 103 public bool MoveItem(string id, string newParent)
94 { 104 {
95 return m_Items.MoveItem(id, newParent); 105 return m_Items.MoveItem(id, newParent);