diff options
Diffstat (limited to 'OpenSim/Data/MySQL')
-rw-r--r-- | OpenSim/Data/MySQL/MySQLGenericTableHandler.cs | 27 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLSimulationData.cs | 30 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLXInventoryData.cs | 10 |
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); |