diff options
Diffstat (limited to '')
23 files changed, 245 insertions, 108 deletions
diff --git a/OpenSim/Data/AssetDataBase.cs b/OpenSim/Data/AssetDataBase.cs index e1a810c..b4ae913 100644 --- a/OpenSim/Data/AssetDataBase.cs +++ b/OpenSim/Data/AssetDataBase.cs | |||
@@ -38,7 +38,7 @@ namespace OpenSim.Data | |||
38 | { | 38 | { |
39 | public abstract AssetBase GetAsset(UUID uuid); | 39 | public abstract AssetBase GetAsset(UUID uuid); |
40 | 40 | ||
41 | public abstract void StoreAsset(AssetBase asset); | 41 | public abstract bool StoreAsset(AssetBase asset); |
42 | public abstract bool ExistsAsset(UUID uuid); | 42 | public abstract bool ExistsAsset(UUID uuid); |
43 | 43 | ||
44 | public abstract List<AssetMetadata> FetchAssetMetadataSet(int start, int count); | 44 | public abstract List<AssetMetadata> FetchAssetMetadataSet(int start, int count); |
diff --git a/OpenSim/Data/IAssetData.cs b/OpenSim/Data/IAssetData.cs index f31b215c..0c8eadd 100644 --- a/OpenSim/Data/IAssetData.cs +++ b/OpenSim/Data/IAssetData.cs | |||
@@ -34,7 +34,7 @@ namespace OpenSim.Data | |||
34 | public interface IAssetDataPlugin : IPlugin | 34 | public interface IAssetDataPlugin : IPlugin |
35 | { | 35 | { |
36 | AssetBase GetAsset(UUID uuid); | 36 | AssetBase GetAsset(UUID uuid); |
37 | void StoreAsset(AssetBase asset); | 37 | bool StoreAsset(AssetBase asset); |
38 | bool ExistsAsset(UUID uuid); | 38 | bool ExistsAsset(UUID uuid); |
39 | List<AssetMetadata> FetchAssetMetadataSet(int start, int count); | 39 | List<AssetMetadata> FetchAssetMetadataSet(int start, int count); |
40 | void Initialise(string connect); | 40 | void Initialise(string connect); |
diff --git a/OpenSim/Data/IUserAccountData.cs b/OpenSim/Data/IUserAccountData.cs index 906ba6c..bc7eda7 100644 --- a/OpenSim/Data/IUserAccountData.cs +++ b/OpenSim/Data/IUserAccountData.cs | |||
@@ -50,5 +50,6 @@ namespace OpenSim.Data | |||
50 | bool Store(UserAccountData data); | 50 | bool Store(UserAccountData data); |
51 | bool Delete(string field, string val); | 51 | bool Delete(string field, string val); |
52 | UserAccountData[] GetUsers(UUID scopeID, string query); | 52 | UserAccountData[] GetUsers(UUID scopeID, string query); |
53 | UserAccountData[] GetUsersWhere(UUID scopeID, string where); | ||
53 | } | 54 | } |
54 | } | 55 | } |
diff --git a/OpenSim/Data/MSSQL/MSSQLAssetData.cs b/OpenSim/Data/MSSQL/MSSQLAssetData.cs index f3e008d..12f2477 100644 --- a/OpenSim/Data/MSSQL/MSSQLAssetData.cs +++ b/OpenSim/Data/MSSQL/MSSQLAssetData.cs | |||
@@ -143,7 +143,7 @@ namespace OpenSim.Data.MSSQL | |||
143 | /// Create asset in m_database | 143 | /// Create asset in m_database |
144 | /// </summary> | 144 | /// </summary> |
145 | /// <param name="asset">the asset</param> | 145 | /// <param name="asset">the asset</param> |
146 | override public void StoreAsset(AssetBase asset) | 146 | override public bool StoreAsset(AssetBase asset) |
147 | { | 147 | { |
148 | 148 | ||
149 | string sql = | 149 | string sql = |
@@ -196,10 +196,12 @@ namespace OpenSim.Data.MSSQL | |||
196 | try | 196 | try |
197 | { | 197 | { |
198 | command.ExecuteNonQuery(); | 198 | command.ExecuteNonQuery(); |
199 | return true; | ||
199 | } | 200 | } |
200 | catch(Exception e) | 201 | catch(Exception e) |
201 | { | 202 | { |
202 | m_log.Error("[ASSET DB]: Error storing item :" + e.Message); | 203 | m_log.Error("[ASSET DB]: Error storing item :" + e.Message); |
204 | return false; | ||
203 | } | 205 | } |
204 | } | 206 | } |
205 | } | 207 | } |
diff --git a/OpenSim/Data/MSSQL/MSSQLAvatarData.cs b/OpenSim/Data/MSSQL/MSSQLAvatarData.cs index 301b424..49a6b09 100644 --- a/OpenSim/Data/MSSQL/MSSQLAvatarData.cs +++ b/OpenSim/Data/MSSQL/MSSQLAvatarData.cs | |||
@@ -43,7 +43,7 @@ namespace OpenSim.Data.MSSQL | |||
43 | public class MSSQLAvatarData : MSSQLGenericTableHandler<AvatarBaseData>, | 43 | public class MSSQLAvatarData : MSSQLGenericTableHandler<AvatarBaseData>, |
44 | IAvatarData | 44 | IAvatarData |
45 | { | 45 | { |
46 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | public MSSQLAvatarData(string connectionString, string realm) : | 48 | public MSSQLAvatarData(string connectionString, string realm) : |
49 | base(connectionString, realm, "Avatar") | 49 | base(connectionString, realm, "Avatar") |
diff --git a/OpenSim/Data/MSSQL/MSSQLGenericTableHandler.cs b/OpenSim/Data/MSSQL/MSSQLGenericTableHandler.cs index 4145d95..8f471c4 100644 --- a/OpenSim/Data/MSSQL/MSSQLGenericTableHandler.cs +++ b/OpenSim/Data/MSSQL/MSSQLGenericTableHandler.cs | |||
@@ -40,8 +40,8 @@ namespace OpenSim.Data.MSSQL | |||
40 | { | 40 | { |
41 | public class MSSQLGenericTableHandler<T> where T : class, new() | 41 | public class MSSQLGenericTableHandler<T> where T : class, new() |
42 | { | 42 | { |
43 | // private static readonly ILog m_log = | 43 | private static readonly ILog m_log = |
44 | // LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 44 | LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
46 | protected string m_ConnectionString; | 46 | protected string m_ConnectionString; |
47 | protected MSSQLManager m_database; //used for parameter type translation | 47 | protected MSSQLManager m_database; //used for parameter type translation |
diff --git a/OpenSim/Data/MSSQL/MSSQLGridUserData.cs b/OpenSim/Data/MSSQL/MSSQLGridUserData.cs index 8ec8d49..fd52122 100644 --- a/OpenSim/Data/MSSQL/MSSQLGridUserData.cs +++ b/OpenSim/Data/MSSQL/MSSQLGridUserData.cs | |||
@@ -43,7 +43,7 @@ namespace OpenSim.Data.MSSQL | |||
43 | public class MSSQLGridUserData : MSSQLGenericTableHandler<GridUserData>, | 43 | public class MSSQLGridUserData : MSSQLGenericTableHandler<GridUserData>, |
44 | IGridUserData | 44 | IGridUserData |
45 | { | 45 | { |
46 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | public MSSQLGridUserData(string connectionString, string realm) : | 48 | public MSSQLGridUserData(string connectionString, string realm) : |
49 | base(connectionString, realm, "GridUserStore") | 49 | base(connectionString, realm, "GridUserStore") |
diff --git a/OpenSim/Data/MSSQL/MSSQLManager.cs b/OpenSim/Data/MSSQL/MSSQLManager.cs index 9a0015c..62c38d3 100644 --- a/OpenSim/Data/MSSQL/MSSQLManager.cs +++ b/OpenSim/Data/MSSQL/MSSQLManager.cs | |||
@@ -41,7 +41,7 @@ namespace OpenSim.Data.MSSQL | |||
41 | /// </summary> | 41 | /// </summary> |
42 | public class MSSQLManager | 42 | public class MSSQLManager |
43 | { | 43 | { |
44 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
46 | /// <summary> | 46 | /// <summary> |
47 | /// Connection string for ADO.net | 47 | /// Connection string for ADO.net |
@@ -185,6 +185,8 @@ namespace OpenSim.Data.MSSQL | |||
185 | return parameter; | 185 | return parameter; |
186 | } | 186 | } |
187 | 187 | ||
188 | private static readonly Dictionary<string, string> emptyDictionary = new Dictionary<string, string>(); | ||
189 | |||
188 | /// <summary> | 190 | /// <summary> |
189 | /// Checks if we need to do some migrations to the database | 191 | /// Checks if we need to do some migrations to the database |
190 | /// </summary> | 192 | /// </summary> |
diff --git a/OpenSim/Data/MSSQL/MSSQLPresenceData.cs b/OpenSim/Data/MSSQL/MSSQLPresenceData.cs index 0c71e79..deff2ed 100644 --- a/OpenSim/Data/MSSQL/MSSQLPresenceData.cs +++ b/OpenSim/Data/MSSQL/MSSQLPresenceData.cs | |||
@@ -43,7 +43,7 @@ namespace OpenSim.Data.MSSQL | |||
43 | public class MSSQLPresenceData : MSSQLGenericTableHandler<PresenceData>, | 43 | public class MSSQLPresenceData : MSSQLGenericTableHandler<PresenceData>, |
44 | IPresenceData | 44 | IPresenceData |
45 | { | 45 | { |
46 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | public MSSQLPresenceData(string connectionString, string realm) : | 48 | public MSSQLPresenceData(string connectionString, string realm) : |
49 | base(connectionString, realm, "Presence") | 49 | base(connectionString, realm, "Presence") |
diff --git a/OpenSim/Data/MSSQL/MSSQLSimulationData.cs b/OpenSim/Data/MSSQL/MSSQLSimulationData.cs index 5135050..bc5beeb 100644 --- a/OpenSim/Data/MSSQL/MSSQLSimulationData.cs +++ b/OpenSim/Data/MSSQL/MSSQLSimulationData.cs | |||
@@ -2226,6 +2226,11 @@ VALUES | |||
2226 | } | 2226 | } |
2227 | } | 2227 | } |
2228 | 2228 | ||
2229 | public UUID[] GetObjectIDs(UUID regionID) | ||
2230 | { | ||
2231 | return new UUID[0]; | ||
2232 | } | ||
2233 | |||
2229 | public void SaveExtra(UUID regionID, string name, string value) | 2234 | public void SaveExtra(UUID regionID, string name, string value) |
2230 | { | 2235 | { |
2231 | } | 2236 | } |
diff --git a/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs b/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs index 7feec91..dd0689c 100644 --- a/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs +++ b/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs | |||
@@ -242,5 +242,10 @@ namespace OpenSim.Data.MSSQL | |||
242 | return DoQuery(cmd); | 242 | return DoQuery(cmd); |
243 | } | 243 | } |
244 | } | 244 | } |
245 | |||
246 | public UserAccountData[] GetUsersWhere(UUID scopeID, string where) | ||
247 | { | ||
248 | return null; | ||
249 | } | ||
245 | } | 250 | } |
246 | } | 251 | } |
diff --git a/OpenSim/Data/MSSQL/MSSQLXInventoryData.cs b/OpenSim/Data/MSSQL/MSSQLXInventoryData.cs index 9164ffe..e261aba 100644 --- a/OpenSim/Data/MSSQL/MSSQLXInventoryData.cs +++ b/OpenSim/Data/MSSQL/MSSQLXInventoryData.cs | |||
@@ -40,8 +40,8 @@ namespace OpenSim.Data.MSSQL | |||
40 | { | 40 | { |
41 | public class MSSQLXInventoryData : IXInventoryData | 41 | public class MSSQLXInventoryData : IXInventoryData |
42 | { | 42 | { |
43 | // private static readonly ILog m_log = LogManager.GetLogger( | 43 | private static readonly ILog m_log = LogManager.GetLogger( |
44 | // MethodBase.GetCurrentMethod().DeclaringType); | 44 | MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
46 | private MSSQLFolderHandler m_Folders; | 46 | private MSSQLFolderHandler m_Folders; |
47 | private MSSQLItemHandler m_Items; | 47 | private MSSQLItemHandler m_Items; |
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs index 21362b9..59cc22a 100644 --- a/OpenSim/Data/MySQL/MySQLAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLAssetData.cs | |||
@@ -156,7 +156,7 @@ namespace OpenSim.Data.MySQL | |||
156 | /// </summary> | 156 | /// </summary> |
157 | /// <param name="asset">Asset UUID to create</param> | 157 | /// <param name="asset">Asset UUID to create</param> |
158 | /// <remarks>On failure : Throw an exception and attempt to reconnect to database</remarks> | 158 | /// <remarks>On failure : Throw an exception and attempt to reconnect to database</remarks> |
159 | override public void StoreAsset(AssetBase asset) | 159 | override public bool StoreAsset(AssetBase asset) |
160 | { | 160 | { |
161 | lock (m_dbLock) | 161 | lock (m_dbLock) |
162 | { | 162 | { |
@@ -206,15 +206,14 @@ namespace OpenSim.Data.MySQL | |||
206 | cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags); | 206 | cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags); |
207 | cmd.Parameters.AddWithValue("?data", asset.Data); | 207 | cmd.Parameters.AddWithValue("?data", asset.Data); |
208 | cmd.ExecuteNonQuery(); | 208 | cmd.ExecuteNonQuery(); |
209 | return true; | ||
209 | } | 210 | } |
210 | } | 211 | } |
211 | catch (Exception e) | 212 | catch (Exception e) |
212 | { | 213 | { |
213 | m_log.Error( | 214 | m_log.ErrorFormat("[ASSET DB]: MySQL failure creating asset {0} with name \"{1}\". Error: {2}", |
214 | string.Format( | 215 | asset.FullID, asset.Name, e.Message); |
215 | "[ASSET DB]: MySQL failure creating asset {0} with name {1}. Exception ", | 216 | return false; |
216 | asset.FullID, asset.Name) | ||
217 | , e); | ||
218 | } | 217 | } |
219 | } | 218 | } |
220 | } | 219 | } |
@@ -383,4 +382,4 @@ namespace OpenSim.Data.MySQL | |||
383 | 382 | ||
384 | #endregion | 383 | #endregion |
385 | } | 384 | } |
386 | } \ No newline at end of file | 385 | } |
diff --git a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs index 35fa89f..dc657c8 100644 --- a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs +++ b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs | |||
@@ -175,6 +175,11 @@ namespace OpenSim.Data.MySQL | |||
175 | int v = Convert.ToInt32(reader[name]); | 175 | int v = Convert.ToInt32(reader[name]); |
176 | m_Fields[name].SetValue(row, v); | 176 | m_Fields[name].SetValue(row, v); |
177 | } | 177 | } |
178 | else if (m_Fields[name].FieldType == typeof(uint)) | ||
179 | { | ||
180 | uint v = Convert.ToUInt32(reader[name]); | ||
181 | m_Fields[name].SetValue(row, v); | ||
182 | } | ||
178 | else | 183 | else |
179 | { | 184 | { |
180 | m_Fields[name].SetValue(row, reader[name]); | 185 | m_Fields[name].SetValue(row, reader[name]); |
@@ -362,4 +367,4 @@ namespace OpenSim.Data.MySQL | |||
362 | } | 367 | } |
363 | 368 | ||
364 | } | 369 | } |
365 | } \ No newline at end of file | 370 | } |
diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs index cf367ef..feacbb2 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 | ||
@@ -113,7 +113,7 @@ namespace OpenSim.Data.MySQL | |||
113 | 113 | ||
114 | public void Dispose() {} | 114 | public void Dispose() {} |
115 | 115 | ||
116 | public void StoreObject(SceneObjectGroup obj, UUID regionUUID) | 116 | public virtual void StoreObject(SceneObjectGroup obj, UUID regionUUID) |
117 | { | 117 | { |
118 | uint flags = obj.RootPart.GetEffectiveObjectFlags(); | 118 | uint flags = obj.RootPart.GetEffectiveObjectFlags(); |
119 | 119 | ||
@@ -173,9 +173,10 @@ namespace OpenSim.Data.MySQL | |||
173 | "ParticleSystem, ClickAction, Material, " + | 173 | "ParticleSystem, ClickAction, Material, " + |
174 | "CollisionSound, CollisionSoundVolume, " + | 174 | "CollisionSound, CollisionSoundVolume, " + |
175 | "PassTouches, " + | 175 | "PassTouches, " + |
176 | "PassCollisions, " + | ||
176 | "LinkNumber, MediaURL, KeyframeMotion, " + | 177 | "LinkNumber, MediaURL, KeyframeMotion, " + |
177 | "PhysicsShapeType, Density, GravityModifier, " + | 178 | "PhysicsShapeType, Density, GravityModifier, " + |
178 | "Friction, Restitution, DynAttrs " + | 179 | "Friction, Restitution, Vehicle, DynAttrs " + |
179 | ") values (" + "?UUID, " + | 180 | ") values (" + "?UUID, " + |
180 | "?CreationDate, ?Name, ?Text, " + | 181 | "?CreationDate, ?Name, ?Text, " + |
181 | "?Description, ?SitName, ?TouchName, " + | 182 | "?Description, ?SitName, ?TouchName, " + |
@@ -207,10 +208,10 @@ namespace OpenSim.Data.MySQL | |||
207 | "?SaleType, ?ColorR, ?ColorG, " + | 208 | "?SaleType, ?ColorR, ?ColorG, " + |
208 | "?ColorB, ?ColorA, ?ParticleSystem, " + | 209 | "?ColorB, ?ColorA, ?ParticleSystem, " + |
209 | "?ClickAction, ?Material, ?CollisionSound, " + | 210 | "?ClickAction, ?Material, ?CollisionSound, " + |
210 | "?CollisionSoundVolume, ?PassTouches, " + | 211 | "?CollisionSoundVolume, ?PassTouches, ?PassCollisions, " + |
211 | "?LinkNumber, ?MediaURL, ?KeyframeMotion, " + | 212 | "?LinkNumber, ?MediaURL, ?KeyframeMotion, " + |
212 | "?PhysicsShapeType, ?Density, ?GravityModifier, " + | 213 | "?PhysicsShapeType, ?Density, ?GravityModifier, " + |
213 | "?Friction, ?Restitution, ?DynAttrs)"; | 214 | "?Friction, ?Restitution, ?Vehicle, ?DynAttrs)"; |
214 | 215 | ||
215 | FillPrimCommand(cmd, prim, obj.UUID, regionUUID); | 216 | FillPrimCommand(cmd, prim, obj.UUID, regionUUID); |
216 | 217 | ||
@@ -250,7 +251,7 @@ namespace OpenSim.Data.MySQL | |||
250 | } | 251 | } |
251 | } | 252 | } |
252 | 253 | ||
253 | public void RemoveObject(UUID obj, UUID regionUUID) | 254 | public virtual void RemoveObject(UUID obj, UUID regionUUID) |
254 | { | 255 | { |
255 | // m_log.DebugFormat("[REGION DB]: Deleting scene object {0} from {1} in database", obj, regionUUID); | 256 | // m_log.DebugFormat("[REGION DB]: Deleting scene object {0} from {1} in database", obj, regionUUID); |
256 | 257 | ||
@@ -399,7 +400,7 @@ namespace OpenSim.Data.MySQL | |||
399 | } | 400 | } |
400 | } | 401 | } |
401 | 402 | ||
402 | public List<SceneObjectGroup> LoadObjects(UUID regionID) | 403 | public virtual List<SceneObjectGroup> LoadObjects(UUID regionID) |
403 | { | 404 | { |
404 | const int ROWS_PER_QUERY = 5000; | 405 | const int ROWS_PER_QUERY = 5000; |
405 | 406 | ||
@@ -570,36 +571,51 @@ namespace OpenSim.Data.MySQL | |||
570 | } | 571 | } |
571 | } | 572 | } |
572 | 573 | ||
573 | public void StoreTerrain(double[,] ter, UUID regionID) | 574 | public virtual void StoreTerrain(double[,] ter, UUID regionID) |
574 | { | 575 | { |
575 | m_log.Info("[REGION DB]: Storing terrain"); | 576 | Util.FireAndForget(delegate(object x) |
576 | |||
577 | lock (m_dbLock) | ||
578 | { | 577 | { |
579 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) | 578 | double[,] oldTerrain = LoadTerrain(regionID); |
580 | { | ||
581 | dbcon.Open(); | ||
582 | 579 | ||
583 | using (MySqlCommand cmd = dbcon.CreateCommand()) | 580 | m_log.Info("[REGION DB]: Storing terrain"); |
581 | |||
582 | lock (m_dbLock) | ||
583 | { | ||
584 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) | ||
584 | { | 585 | { |
585 | cmd.CommandText = "delete from terrain where RegionUUID = ?RegionUUID"; | 586 | dbcon.Open(); |
586 | cmd.Parameters.AddWithValue("RegionUUID", regionID.ToString()); | ||
587 | 587 | ||
588 | ExecuteNonQuery(cmd); | 588 | using (MySqlCommand cmd = dbcon.CreateCommand()) |
589 | { | ||
590 | cmd.CommandText = "delete from terrain where RegionUUID = ?RegionUUID"; | ||
591 | cmd.Parameters.AddWithValue("RegionUUID", regionID.ToString()); | ||
592 | |||
593 | using (MySqlCommand cmd2 = dbcon.CreateCommand()) | ||
594 | { | ||
595 | try | ||
596 | { | ||
597 | cmd2.CommandText = "insert into terrain (RegionUUID, " + | ||
598 | "Revision, Heightfield) values (?RegionUUID, " + | ||
599 | "1, ?Heightfield)"; | ||
589 | 600 | ||
590 | cmd.CommandText = "insert into terrain (RegionUUID, " + | 601 | cmd2.Parameters.AddWithValue("RegionUUID", regionID.ToString()); |
591 | "Revision, Heightfield) values (?RegionUUID, " + | 602 | cmd2.Parameters.AddWithValue("Heightfield", SerializeTerrain(ter, oldTerrain)); |
592 | "1, ?Heightfield)"; | ||
593 | |||
594 | cmd.Parameters.AddWithValue("Heightfield", SerializeTerrain(ter)); | ||
595 | 603 | ||
596 | ExecuteNonQuery(cmd); | 604 | ExecuteNonQuery(cmd); |
605 | ExecuteNonQuery(cmd2); | ||
606 | } | ||
607 | catch (Exception e) | ||
608 | { | ||
609 | m_log.ErrorFormat(e.ToString()); | ||
610 | } | ||
611 | } | ||
612 | } | ||
597 | } | 613 | } |
598 | } | 614 | } |
599 | } | 615 | }); |
600 | } | 616 | } |
601 | 617 | ||
602 | public double[,] LoadTerrain(UUID regionID) | 618 | public virtual double[,] LoadTerrain(UUID regionID) |
603 | { | 619 | { |
604 | double[,] terrain = null; | 620 | double[,] terrain = null; |
605 | 621 | ||
@@ -649,7 +665,7 @@ namespace OpenSim.Data.MySQL | |||
649 | return terrain; | 665 | return terrain; |
650 | } | 666 | } |
651 | 667 | ||
652 | public void RemoveLandObject(UUID globalID) | 668 | public virtual void RemoveLandObject(UUID globalID) |
653 | { | 669 | { |
654 | lock (m_dbLock) | 670 | lock (m_dbLock) |
655 | { | 671 | { |
@@ -668,7 +684,7 @@ namespace OpenSim.Data.MySQL | |||
668 | } | 684 | } |
669 | } | 685 | } |
670 | 686 | ||
671 | public void StoreLandObject(ILandObject parcel) | 687 | public virtual void StoreLandObject(ILandObject parcel) |
672 | { | 688 | { |
673 | lock (m_dbLock) | 689 | lock (m_dbLock) |
674 | { | 690 | { |
@@ -725,7 +741,7 @@ namespace OpenSim.Data.MySQL | |||
725 | } | 741 | } |
726 | } | 742 | } |
727 | 743 | ||
728 | public RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID) | 744 | public virtual RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID) |
729 | { | 745 | { |
730 | RegionLightShareData nWP = new RegionLightShareData(); | 746 | RegionLightShareData nWP = new RegionLightShareData(); |
731 | nWP.OnSave += StoreRegionWindlightSettings; | 747 | nWP.OnSave += StoreRegionWindlightSettings; |
@@ -826,7 +842,7 @@ namespace OpenSim.Data.MySQL | |||
826 | return nWP; | 842 | return nWP; |
827 | } | 843 | } |
828 | 844 | ||
829 | public RegionSettings LoadRegionSettings(UUID regionUUID) | 845 | public virtual RegionSettings LoadRegionSettings(UUID regionUUID) |
830 | { | 846 | { |
831 | RegionSettings rs = null; | 847 | RegionSettings rs = null; |
832 | 848 | ||
@@ -866,7 +882,7 @@ namespace OpenSim.Data.MySQL | |||
866 | return rs; | 882 | return rs; |
867 | } | 883 | } |
868 | 884 | ||
869 | public void StoreRegionWindlightSettings(RegionLightShareData wl) | 885 | public virtual void StoreRegionWindlightSettings(RegionLightShareData wl) |
870 | { | 886 | { |
871 | lock (m_dbLock) | 887 | lock (m_dbLock) |
872 | { | 888 | { |
@@ -972,7 +988,7 @@ namespace OpenSim.Data.MySQL | |||
972 | } | 988 | } |
973 | } | 989 | } |
974 | 990 | ||
975 | public void RemoveRegionWindlightSettings(UUID regionID) | 991 | public virtual void RemoveRegionWindlightSettings(UUID regionID) |
976 | { | 992 | { |
977 | lock (m_dbLock) | 993 | lock (m_dbLock) |
978 | { | 994 | { |
@@ -1061,7 +1077,7 @@ namespace OpenSim.Data.MySQL | |||
1061 | } | 1077 | } |
1062 | #endregion | 1078 | #endregion |
1063 | 1079 | ||
1064 | public void StoreRegionSettings(RegionSettings rs) | 1080 | public virtual void StoreRegionSettings(RegionSettings rs) |
1065 | { | 1081 | { |
1066 | lock (m_dbLock) | 1082 | lock (m_dbLock) |
1067 | { | 1083 | { |
@@ -1088,7 +1104,7 @@ namespace OpenSim.Data.MySQL | |||
1088 | "use_estate_sun, fixed_sun, sun_position, " + | 1104 | "use_estate_sun, fixed_sun, sun_position, " + |
1089 | "covenant, covenant_datetime, Sandbox, sunvectorx, sunvectory, " + | 1105 | "covenant, covenant_datetime, Sandbox, sunvectorx, sunvectory, " + |
1090 | "sunvectorz, loaded_creation_datetime, " + | 1106 | "sunvectorz, loaded_creation_datetime, " + |
1091 | "loaded_creation_id, map_tile_ID, " + | 1107 | "loaded_creation_id, map_tile_ID, block_search, casino, " + |
1092 | "TelehubObject, parcel_tile_ID) " + | 1108 | "TelehubObject, parcel_tile_ID) " + |
1093 | "values (?RegionUUID, ?BlockTerraform, " + | 1109 | "values (?RegionUUID, ?BlockTerraform, " + |
1094 | "?BlockFly, ?AllowDamage, ?RestrictPushing, " + | 1110 | "?BlockFly, ?AllowDamage, ?RestrictPushing, " + |
@@ -1105,7 +1121,7 @@ namespace OpenSim.Data.MySQL | |||
1105 | "?SunPosition, ?Covenant, ?CovenantChangedDateTime, ?Sandbox, " + | 1121 | "?SunPosition, ?Covenant, ?CovenantChangedDateTime, ?Sandbox, " + |
1106 | "?SunVectorX, ?SunVectorY, ?SunVectorZ, " + | 1122 | "?SunVectorX, ?SunVectorY, ?SunVectorZ, " + |
1107 | "?LoadedCreationDateTime, ?LoadedCreationID, " + | 1123 | "?LoadedCreationDateTime, ?LoadedCreationID, " + |
1108 | "?TerrainImageID, " + | 1124 | "?TerrainImageID, ?block_search, ?casino, " + |
1109 | "?TelehubObject, ?ParcelImageID)"; | 1125 | "?TelehubObject, ?ParcelImageID)"; |
1110 | 1126 | ||
1111 | FillRegionSettingsCommand(cmd, rs); | 1127 | FillRegionSettingsCommand(cmd, rs); |
@@ -1117,7 +1133,7 @@ namespace OpenSim.Data.MySQL | |||
1117 | SaveSpawnPoints(rs); | 1133 | SaveSpawnPoints(rs); |
1118 | } | 1134 | } |
1119 | 1135 | ||
1120 | public List<LandData> LoadLandObjects(UUID regionUUID) | 1136 | public virtual List<LandData> LoadLandObjects(UUID regionUUID) |
1121 | { | 1137 | { |
1122 | List<LandData> landData = new List<LandData>(); | 1138 | List<LandData> landData = new List<LandData>(); |
1123 | 1139 | ||
@@ -1299,6 +1315,7 @@ namespace OpenSim.Data.MySQL | |||
1299 | prim.CollisionSoundVolume = (float)(double)row["CollisionSoundVolume"]; | 1315 | prim.CollisionSoundVolume = (float)(double)row["CollisionSoundVolume"]; |
1300 | 1316 | ||
1301 | prim.PassTouches = ((sbyte)row["PassTouches"] != 0); | 1317 | prim.PassTouches = ((sbyte)row["PassTouches"] != 0); |
1318 | prim.PassCollisions = ((sbyte)row["PassCollisions"] != 0); | ||
1302 | prim.LinkNum = (int)row["LinkNumber"]; | 1319 | prim.LinkNum = (int)row["LinkNumber"]; |
1303 | 1320 | ||
1304 | if (!(row["MediaURL"] is System.DBNull)) | 1321 | if (!(row["MediaURL"] is System.DBNull)) |
@@ -1328,6 +1345,15 @@ namespace OpenSim.Data.MySQL | |||
1328 | prim.Friction = (float)(double)row["Friction"]; | 1345 | prim.Friction = (float)(double)row["Friction"]; |
1329 | prim.Restitution = (float)(double)row["Restitution"]; | 1346 | prim.Restitution = (float)(double)row["Restitution"]; |
1330 | 1347 | ||
1348 | SOPVehicle vehicle = null; | ||
1349 | |||
1350 | if (row["Vehicle"].ToString() != String.Empty) | ||
1351 | { | ||
1352 | vehicle = SOPVehicle.FromXml2(row["Vehicle"].ToString()); | ||
1353 | if (vehicle != null) | ||
1354 | prim.VehicleParams = vehicle; | ||
1355 | } | ||
1356 | |||
1331 | return prim; | 1357 | return prim; |
1332 | } | 1358 | } |
1333 | 1359 | ||
@@ -1338,32 +1364,40 @@ namespace OpenSim.Data.MySQL | |||
1338 | /// <returns></returns> | 1364 | /// <returns></returns> |
1339 | private static TaskInventoryItem BuildItem(IDataReader row) | 1365 | private static TaskInventoryItem BuildItem(IDataReader row) |
1340 | { | 1366 | { |
1341 | TaskInventoryItem taskItem = new TaskInventoryItem(); | 1367 | try |
1342 | 1368 | { | |
1343 | taskItem.ItemID = DBGuid.FromDB(row["itemID"]); | 1369 | TaskInventoryItem taskItem = new TaskInventoryItem(); |
1344 | taskItem.ParentPartID = DBGuid.FromDB(row["primID"]); | 1370 | |
1345 | taskItem.AssetID = DBGuid.FromDB(row["assetID"]); | 1371 | taskItem.ItemID = DBGuid.FromDB(row["itemID"]); |
1346 | taskItem.ParentID = DBGuid.FromDB(row["parentFolderID"]); | 1372 | taskItem.ParentPartID = DBGuid.FromDB(row["primID"]); |
1347 | 1373 | taskItem.AssetID = DBGuid.FromDB(row["assetID"]); | |
1348 | taskItem.InvType = Convert.ToInt32(row["invType"]); | 1374 | taskItem.ParentID = DBGuid.FromDB(row["parentFolderID"]); |
1349 | taskItem.Type = Convert.ToInt32(row["assetType"]); | 1375 | |
1350 | 1376 | taskItem.InvType = Convert.ToInt32(row["invType"]); | |
1351 | taskItem.Name = (String)row["name"]; | 1377 | taskItem.Type = Convert.ToInt32(row["assetType"]); |
1352 | taskItem.Description = (String)row["description"]; | 1378 | |
1353 | taskItem.CreationDate = Convert.ToUInt32(row["creationDate"]); | 1379 | taskItem.Name = (String)row["name"]; |
1354 | taskItem.CreatorIdentification = (String)row["creatorID"]; | 1380 | taskItem.Description = (String)row["description"]; |
1355 | taskItem.OwnerID = DBGuid.FromDB(row["ownerID"]); | 1381 | taskItem.CreationDate = Convert.ToUInt32(row["creationDate"]); |
1356 | taskItem.LastOwnerID = DBGuid.FromDB(row["lastOwnerID"]); | 1382 | taskItem.CreatorIdentification = (String)row["creatorID"]; |
1357 | taskItem.GroupID = DBGuid.FromDB(row["groupID"]); | 1383 | taskItem.OwnerID = DBGuid.FromDB(row["ownerID"]); |
1358 | 1384 | taskItem.LastOwnerID = DBGuid.FromDB(row["lastOwnerID"]); | |
1359 | taskItem.NextPermissions = Convert.ToUInt32(row["nextPermissions"]); | 1385 | taskItem.GroupID = DBGuid.FromDB(row["groupID"]); |
1360 | taskItem.CurrentPermissions = Convert.ToUInt32(row["currentPermissions"]); | 1386 | |
1361 | taskItem.BasePermissions = Convert.ToUInt32(row["basePermissions"]); | 1387 | taskItem.NextPermissions = Convert.ToUInt32(row["nextPermissions"]); |
1362 | taskItem.EveryonePermissions = Convert.ToUInt32(row["everyonePermissions"]); | 1388 | taskItem.CurrentPermissions = Convert.ToUInt32(row["currentPermissions"]); |
1363 | taskItem.GroupPermissions = Convert.ToUInt32(row["groupPermissions"]); | 1389 | taskItem.BasePermissions = Convert.ToUInt32(row["basePermissions"]); |
1364 | taskItem.Flags = Convert.ToUInt32(row["flags"]); | 1390 | taskItem.EveryonePermissions = Convert.ToUInt32(row["everyonePermissions"]); |
1365 | 1391 | taskItem.GroupPermissions = Convert.ToUInt32(row["groupPermissions"]); | |
1366 | return taskItem; | 1392 | taskItem.Flags = Convert.ToUInt32(row["flags"]); |
1393 | |||
1394 | return taskItem; | ||
1395 | } | ||
1396 | catch | ||
1397 | { | ||
1398 | m_log.ErrorFormat("[MYSQL DB]: Error reading task inventory: itemID was {0}, primID was {1}", row["itemID"].ToString(), row["primID"].ToString()); | ||
1399 | throw; | ||
1400 | } | ||
1367 | } | 1401 | } |
1368 | 1402 | ||
1369 | private static RegionSettings BuildRegionSettings(IDataReader row) | 1403 | private static RegionSettings BuildRegionSettings(IDataReader row) |
@@ -1421,6 +1455,9 @@ namespace OpenSim.Data.MySQL | |||
1421 | newSettings.ParcelImageID = DBGuid.FromDB(row["parcel_tile_ID"]); | 1455 | newSettings.ParcelImageID = DBGuid.FromDB(row["parcel_tile_ID"]); |
1422 | newSettings.TelehubObject = DBGuid.FromDB(row["TelehubObject"]); | 1456 | newSettings.TelehubObject = DBGuid.FromDB(row["TelehubObject"]); |
1423 | 1457 | ||
1458 | newSettings.GodBlockSearch = Convert.ToBoolean(row["block_search"]); | ||
1459 | newSettings.Casino = Convert.ToBoolean(row["casino"]); | ||
1460 | |||
1424 | return newSettings; | 1461 | return newSettings; |
1425 | } | 1462 | } |
1426 | 1463 | ||
@@ -1518,7 +1555,7 @@ namespace OpenSim.Data.MySQL | |||
1518 | /// </summary> | 1555 | /// </summary> |
1519 | /// <param name="val"></param> | 1556 | /// <param name="val"></param> |
1520 | /// <returns></returns> | 1557 | /// <returns></returns> |
1521 | private static Array SerializeTerrain(double[,] val) | 1558 | private static Array SerializeTerrain(double[,] val, double[,] oldTerrain) |
1522 | { | 1559 | { |
1523 | MemoryStream str = new MemoryStream(((int)Constants.RegionSize * (int)Constants.RegionSize) *sizeof (double)); | 1560 | MemoryStream str = new MemoryStream(((int)Constants.RegionSize * (int)Constants.RegionSize) *sizeof (double)); |
1524 | BinaryWriter bw = new BinaryWriter(str); | 1561 | BinaryWriter bw = new BinaryWriter(str); |
@@ -1527,7 +1564,11 @@ namespace OpenSim.Data.MySQL | |||
1527 | for (int x = 0; x < (int)Constants.RegionSize; x++) | 1564 | for (int x = 0; x < (int)Constants.RegionSize; x++) |
1528 | for (int y = 0; y < (int)Constants.RegionSize; y++) | 1565 | for (int y = 0; y < (int)Constants.RegionSize; y++) |
1529 | { | 1566 | { |
1530 | double height = val[x, y]; | 1567 | double height = 20.0; |
1568 | if (oldTerrain != null) | ||
1569 | height = oldTerrain[x, y]; | ||
1570 | if (!double.IsNaN(val[x, y])) | ||
1571 | height = val[x, y]; | ||
1531 | if (height == 0.0) | 1572 | if (height == 0.0) |
1532 | height = double.Epsilon; | 1573 | height = double.Epsilon; |
1533 | 1574 | ||
@@ -1671,6 +1712,11 @@ namespace OpenSim.Data.MySQL | |||
1671 | else | 1712 | else |
1672 | cmd.Parameters.AddWithValue("PassTouches", 0); | 1713 | cmd.Parameters.AddWithValue("PassTouches", 0); |
1673 | 1714 | ||
1715 | if (prim.PassCollisions) | ||
1716 | cmd.Parameters.AddWithValue("PassCollisions", 1); | ||
1717 | else | ||
1718 | cmd.Parameters.AddWithValue("PassCollisions", 0); | ||
1719 | |||
1674 | cmd.Parameters.AddWithValue("LinkNumber", prim.LinkNum); | 1720 | cmd.Parameters.AddWithValue("LinkNumber", prim.LinkNum); |
1675 | cmd.Parameters.AddWithValue("MediaURL", prim.MediaUrl); | 1721 | cmd.Parameters.AddWithValue("MediaURL", prim.MediaUrl); |
1676 | 1722 | ||
@@ -1679,6 +1725,11 @@ namespace OpenSim.Data.MySQL | |||
1679 | else | 1725 | else |
1680 | cmd.Parameters.AddWithValue("KeyframeMotion", new Byte[0]); | 1726 | cmd.Parameters.AddWithValue("KeyframeMotion", new Byte[0]); |
1681 | 1727 | ||
1728 | if (prim.VehicleParams != null) | ||
1729 | cmd.Parameters.AddWithValue("Vehicle", prim.VehicleParams.ToXml2()); | ||
1730 | else | ||
1731 | cmd.Parameters.AddWithValue("Vehicle", String.Empty); | ||
1732 | |||
1682 | if (prim.DynAttrs.CountNamespaces > 0) | 1733 | if (prim.DynAttrs.CountNamespaces > 0) |
1683 | cmd.Parameters.AddWithValue("DynAttrs", prim.DynAttrs.ToXml()); | 1734 | cmd.Parameters.AddWithValue("DynAttrs", prim.DynAttrs.ToXml()); |
1684 | else | 1735 | else |
@@ -1767,6 +1818,8 @@ namespace OpenSim.Data.MySQL | |||
1767 | cmd.Parameters.AddWithValue("LoadedCreationDateTime", settings.LoadedCreationDateTime); | 1818 | cmd.Parameters.AddWithValue("LoadedCreationDateTime", settings.LoadedCreationDateTime); |
1768 | cmd.Parameters.AddWithValue("LoadedCreationID", settings.LoadedCreationID); | 1819 | cmd.Parameters.AddWithValue("LoadedCreationID", settings.LoadedCreationID); |
1769 | cmd.Parameters.AddWithValue("TerrainImageID", settings.TerrainImageID); | 1820 | cmd.Parameters.AddWithValue("TerrainImageID", settings.TerrainImageID); |
1821 | cmd.Parameters.AddWithValue("block_search", settings.GodBlockSearch); | ||
1822 | cmd.Parameters.AddWithValue("casino", settings.Casino); | ||
1770 | 1823 | ||
1771 | cmd.Parameters.AddWithValue("ParcelImageID", settings.ParcelImageID); | 1824 | cmd.Parameters.AddWithValue("ParcelImageID", settings.ParcelImageID); |
1772 | cmd.Parameters.AddWithValue("TelehubObject", settings.TelehubObject); | 1825 | cmd.Parameters.AddWithValue("TelehubObject", settings.TelehubObject); |
@@ -1928,7 +1981,7 @@ namespace OpenSim.Data.MySQL | |||
1928 | cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml()); | 1981 | cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml()); |
1929 | } | 1982 | } |
1930 | 1983 | ||
1931 | public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) | 1984 | public virtual void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) |
1932 | { | 1985 | { |
1933 | lock (m_dbLock) | 1986 | lock (m_dbLock) |
1934 | { | 1987 | { |
@@ -1972,6 +2025,37 @@ namespace OpenSim.Data.MySQL | |||
1972 | } | 2025 | } |
1973 | } | 2026 | } |
1974 | 2027 | ||
2028 | public UUID[] GetObjectIDs(UUID regionID) | ||
2029 | { | ||
2030 | List<UUID> uuids = new List<UUID>(); | ||
2031 | |||
2032 | lock (m_dbLock) | ||
2033 | { | ||
2034 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) | ||
2035 | { | ||
2036 | dbcon.Open(); | ||
2037 | |||
2038 | using (MySqlCommand cmd = dbcon.CreateCommand()) | ||
2039 | { | ||
2040 | cmd.CommandText = "select UUID from prims where RegionUUID = ?RegionUUID and SceneGroupID = UUID"; | ||
2041 | cmd.Parameters.AddWithValue("RegionUUID", regionID.ToString()); | ||
2042 | |||
2043 | using (IDataReader reader = ExecuteReader(cmd)) | ||
2044 | { | ||
2045 | while (reader.Read()) | ||
2046 | { | ||
2047 | UUID id = new UUID(reader["UUID"].ToString()); | ||
2048 | |||
2049 | uuids.Add(id); | ||
2050 | } | ||
2051 | } | ||
2052 | } | ||
2053 | } | ||
2054 | } | ||
2055 | |||
2056 | return uuids.ToArray(); | ||
2057 | } | ||
2058 | |||
1975 | private void LoadSpawnPoints(RegionSettings rs) | 2059 | private void LoadSpawnPoints(RegionSettings rs) |
1976 | { | 2060 | { |
1977 | rs.ClearSpawnPoints(); | 2061 | rs.ClearSpawnPoints(); |
diff --git a/OpenSim/Data/MySQL/MySQLUserAccountData.cs b/OpenSim/Data/MySQL/MySQLUserAccountData.cs index e964295..4ff3175 100644 --- a/OpenSim/Data/MySQL/MySQLUserAccountData.cs +++ b/OpenSim/Data/MySQL/MySQLUserAccountData.cs | |||
@@ -46,17 +46,21 @@ namespace OpenSim.Data.MySQL | |||
46 | { | 46 | { |
47 | string[] words = query.Split(new char[] {' '}); | 47 | string[] words = query.Split(new char[] {' '}); |
48 | 48 | ||
49 | bool valid = false; | ||
50 | |||
49 | for (int i = 0 ; i < words.Length ; i++) | 51 | for (int i = 0 ; i < words.Length ; i++) |
50 | { | 52 | { |
51 | if (words[i].Length < 3) | 53 | if (words[i].Length > 2) |
52 | { | 54 | valid = true; |
53 | if (i != words.Length - 1) | 55 | // if (words[i].Length < 3) |
54 | Array.Copy(words, i + 1, words, i, words.Length - i - 1); | 56 | // { |
55 | Array.Resize(ref words, words.Length - 1); | 57 | // if (i != words.Length - 1) |
56 | } | 58 | // Array.Copy(words, i + 1, words, i, words.Length - i - 1); |
59 | // Array.Resize(ref words, words.Length - 1); | ||
60 | // } | ||
57 | } | 61 | } |
58 | 62 | ||
59 | if (words.Length == 0) | 63 | if ((!valid) || words.Length == 0) |
60 | return new UserAccountData[0]; | 64 | return new UserAccountData[0]; |
61 | 65 | ||
62 | if (words.Length > 2) | 66 | if (words.Length > 2) |
@@ -66,20 +70,36 @@ namespace OpenSim.Data.MySQL | |||
66 | { | 70 | { |
67 | if (words.Length == 1) | 71 | if (words.Length == 1) |
68 | { | 72 | { |
69 | cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?search or LastName like ?search)", m_Realm); | 73 | cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?search or LastName like ?search) and active=1", m_Realm); |
70 | cmd.Parameters.AddWithValue("?search", "%" + words[0] + "%"); | 74 | cmd.Parameters.AddWithValue("?search", words[0] + "%"); |
71 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); | 75 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); |
72 | } | 76 | } |
73 | else | 77 | else |
74 | { | 78 | { |
75 | cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?searchFirst or LastName like ?searchLast)", m_Realm); | 79 | cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?searchFirst and LastName like ?searchLast) and active=1", m_Realm); |
76 | cmd.Parameters.AddWithValue("?searchFirst", "%" + words[0] + "%"); | 80 | cmd.Parameters.AddWithValue("?searchFirst", words[0] + "%"); |
77 | cmd.Parameters.AddWithValue("?searchLast", "%" + words[1] + "%"); | 81 | cmd.Parameters.AddWithValue("?searchLast", words[1] + "%"); |
78 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); | 82 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); |
79 | } | 83 | } |
80 | 84 | ||
81 | return DoQuery(cmd); | 85 | return DoQuery(cmd); |
82 | } | 86 | } |
83 | } | 87 | } |
88 | |||
89 | public UserAccountData[] GetUsersWhere(UUID scopeID, string where) | ||
90 | { | ||
91 | using (MySqlCommand cmd = new MySqlCommand()) | ||
92 | { | ||
93 | if (scopeID != UUID.Zero) | ||
94 | { | ||
95 | where = "(ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (" + where + ")"; | ||
96 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); | ||
97 | } | ||
98 | |||
99 | cmd.CommandText = String.Format("select * from {0} where " + where, m_Realm); | ||
100 | |||
101 | return DoQuery(cmd); | ||
102 | } | ||
103 | } | ||
84 | } | 104 | } |
85 | } \ No newline at end of file | 105 | } |
diff --git a/OpenSim/Data/MySQL/MySQLXAssetData.cs b/OpenSim/Data/MySQL/MySQLXAssetData.cs index 91389ce..5f1d2ee 100644 --- a/OpenSim/Data/MySQL/MySQLXAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLXAssetData.cs | |||
@@ -520,4 +520,4 @@ namespace OpenSim.Data.MySQL | |||
520 | 520 | ||
521 | #endregion | 521 | #endregion |
522 | } | 522 | } |
523 | } \ No newline at end of file | 523 | } |
diff --git a/OpenSim/Data/MySQL/Resources/RegionStore.migrations b/OpenSim/Data/MySQL/Resources/RegionStore.migrations index 70b9558..bda1b6a 100644 --- a/OpenSim/Data/MySQL/Resources/RegionStore.migrations +++ b/OpenSim/Data/MySQL/Resources/RegionStore.migrations | |||
@@ -717,7 +717,7 @@ ALTER TABLE regionsettings ADD COLUMN loaded_creation_datetime int unsigned NOT | |||
717 | 717 | ||
718 | COMMIT; | 718 | COMMIT; |
719 | 719 | ||
720 | :VERSION 32 | 720 | :VERSION 32 #--------------------- |
721 | 721 | ||
722 | BEGIN; | 722 | BEGIN; |
723 | CREATE TABLE `regionwindlight` ( | 723 | CREATE TABLE `regionwindlight` ( |
@@ -922,11 +922,3 @@ ALTER TABLE prims ADD COLUMN `Friction` double NOT NULL default '0.6'; | |||
922 | ALTER TABLE prims ADD COLUMN `Restitution` double NOT NULL default '0.5'; | 922 | ALTER TABLE prims ADD COLUMN `Restitution` double NOT NULL default '0.5'; |
923 | 923 | ||
924 | COMMIT; | 924 | COMMIT; |
925 | |||
926 | :VERSION 48 #---------------- Keyframes | ||
927 | |||
928 | BEGIN; | ||
929 | |||
930 | ALTER TABLE prims ADD COLUMN `KeyframeMotion` blob; | ||
931 | |||
932 | COMMIT; | ||
diff --git a/OpenSim/Data/Null/NullSimulationData.cs b/OpenSim/Data/Null/NullSimulationData.cs index d11ad72..15824a9 100644 --- a/OpenSim/Data/Null/NullSimulationData.cs +++ b/OpenSim/Data/Null/NullSimulationData.cs | |||
@@ -166,6 +166,11 @@ namespace OpenSim.Data.Null | |||
166 | { | 166 | { |
167 | } | 167 | } |
168 | 168 | ||
169 | public UUID[] GetObjectIDs(UUID regionID) | ||
170 | { | ||
171 | return new UUID[0]; | ||
172 | } | ||
173 | |||
169 | public void SaveExtra(UUID regionID, string name, string value) | 174 | public void SaveExtra(UUID regionID, string name, string value) |
170 | { | 175 | { |
171 | } | 176 | } |
diff --git a/OpenSim/Data/Null/NullUserAccountData.cs b/OpenSim/Data/Null/NullUserAccountData.cs index ec54dba..241616b 100644 --- a/OpenSim/Data/Null/NullUserAccountData.cs +++ b/OpenSim/Data/Null/NullUserAccountData.cs | |||
@@ -193,5 +193,10 @@ namespace OpenSim.Data.Null | |||
193 | 193 | ||
194 | return false; | 194 | return false; |
195 | } | 195 | } |
196 | |||
197 | public UserAccountData[] GetUsersWhere(UUID scopeID, string where) | ||
198 | { | ||
199 | return null; | ||
200 | } | ||
196 | } | 201 | } |
197 | } | 202 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs index c32982e..82320ca 100644 --- a/OpenSim/Data/SQLite/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs | |||
@@ -131,7 +131,7 @@ namespace OpenSim.Data.SQLite | |||
131 | /// Create an asset | 131 | /// Create an asset |
132 | /// </summary> | 132 | /// </summary> |
133 | /// <param name="asset">Asset Base</param> | 133 | /// <param name="asset">Asset Base</param> |
134 | override public void StoreAsset(AssetBase asset) | 134 | override public bool StoreAsset(AssetBase asset) |
135 | { | 135 | { |
136 | string assetName = asset.Name; | 136 | string assetName = asset.Name; |
137 | if (asset.Name.Length > 64) | 137 | if (asset.Name.Length > 64) |
@@ -171,6 +171,7 @@ namespace OpenSim.Data.SQLite | |||
171 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 171 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
172 | 172 | ||
173 | cmd.ExecuteNonQuery(); | 173 | cmd.ExecuteNonQuery(); |
174 | return true; | ||
174 | } | 175 | } |
175 | } | 176 | } |
176 | } | 177 | } |
@@ -191,6 +192,7 @@ namespace OpenSim.Data.SQLite | |||
191 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 192 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
192 | 193 | ||
193 | cmd.ExecuteNonQuery(); | 194 | cmd.ExecuteNonQuery(); |
195 | return true; | ||
194 | } | 196 | } |
195 | } | 197 | } |
196 | } | 198 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteSimulationData.cs b/OpenSim/Data/SQLite/SQLiteSimulationData.cs index eba6612..52502b3 100644 --- a/OpenSim/Data/SQLite/SQLiteSimulationData.cs +++ b/OpenSim/Data/SQLite/SQLiteSimulationData.cs | |||
@@ -2965,6 +2965,11 @@ namespace OpenSim.Data.SQLite | |||
2965 | } | 2965 | } |
2966 | } | 2966 | } |
2967 | 2967 | ||
2968 | public UUID[] GetObjectIDs(UUID regionID) | ||
2969 | { | ||
2970 | return new UUID[0]; | ||
2971 | } | ||
2972 | |||
2968 | public void SaveExtra(UUID regionID, string name, string value) | 2973 | public void SaveExtra(UUID regionID, string name, string value) |
2969 | { | 2974 | { |
2970 | } | 2975 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteUserAccountData.cs b/OpenSim/Data/SQLite/SQLiteUserAccountData.cs index f98d376..91d62ce 100644 --- a/OpenSim/Data/SQLite/SQLiteUserAccountData.cs +++ b/OpenSim/Data/SQLite/SQLiteUserAccountData.cs | |||
@@ -82,5 +82,10 @@ namespace OpenSim.Data.SQLite | |||
82 | return DoQuery(cmd); | 82 | return DoQuery(cmd); |
83 | } | 83 | } |
84 | } | 84 | } |
85 | |||
86 | public UserAccountData[] GetUsersWhere(UUID scopeID, string where) | ||
87 | { | ||
88 | return null; | ||
89 | } | ||
85 | } | 90 | } |
86 | } | 91 | } |