diff options
Diffstat (limited to 'OpenSim/Data/SQLite/SQLiteAssetData.cs')
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteAssetData.cs | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs index 636bf86..7081f99 100644 --- a/OpenSim/Data/SQLite/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs | |||
@@ -44,10 +44,10 @@ namespace OpenSim.Data.SQLite | |||
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 | private const string SelectAssetSQL = "select * from assets where UUID=:UUID"; | 46 | private const string SelectAssetSQL = "select * from assets where UUID=:UUID"; |
47 | private const string SelectAssetMetadataSQL = "select Name, Description, Type, Temporary, UUID from assets limit :start, :count"; | 47 | private const string SelectAssetMetadataSQL = "select Name, Description, Type, Temporary, asset_flags, UUID from assets limit :start, :count"; |
48 | private const string DeleteAssetSQL = "delete from assets where UUID=:UUID"; | 48 | private const string DeleteAssetSQL = "delete from assets where UUID=:UUID"; |
49 | private const string InsertAssetSQL = "insert into assets(UUID, Name, Description, Type, Local, Temporary, Data) values(:UUID, :Name, :Description, :Type, :Local, :Temporary, :Data)"; | 49 | private const string InsertAssetSQL = "insert into assets(UUID, Name, Description, Type, Local, Temporary, asset_flags, Data) values(:UUID, :Name, :Description, :Type, :Local, :Temporary, :Flags, :Data)"; |
50 | private const string UpdateAssetSQL = "update assets set Name=:Name, Description=:Description, Type=:Type, Local=:Local, Temporary=:Temporary, Data=:Data where UUID=:UUID"; | 50 | private const string UpdateAssetSQL = "update assets set Name=:Name, Description=:Description, Type=:Type, Local=:Local, Temporary=:Temporary, asset_flags=:Flags, Data=:Data where UUID=:UUID"; |
51 | private const string assetSelect = "select * from assets"; | 51 | private const string assetSelect = "select * from assets"; |
52 | 52 | ||
53 | private SqliteConnection m_conn; | 53 | private SqliteConnection m_conn; |
@@ -136,6 +136,7 @@ namespace OpenSim.Data.SQLite | |||
136 | cmd.Parameters.Add(new SqliteParameter(":Type", asset.Type)); | 136 | cmd.Parameters.Add(new SqliteParameter(":Type", asset.Type)); |
137 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); | 137 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); |
138 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); | 138 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); |
139 | cmd.Parameters.Add(new SqliteParameter(":Flags", asset.Flags)); | ||
139 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 140 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
140 | 141 | ||
141 | cmd.ExecuteNonQuery(); | 142 | cmd.ExecuteNonQuery(); |
@@ -154,6 +155,7 @@ namespace OpenSim.Data.SQLite | |||
154 | cmd.Parameters.Add(new SqliteParameter(":Type", asset.Type)); | 155 | cmd.Parameters.Add(new SqliteParameter(":Type", asset.Type)); |
155 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); | 156 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); |
156 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); | 157 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); |
158 | cmd.Parameters.Add(new SqliteParameter(":Flags", asset.Flags)); | ||
157 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 159 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
158 | 160 | ||
159 | cmd.ExecuteNonQuery(); | 161 | cmd.ExecuteNonQuery(); |
@@ -208,20 +210,6 @@ namespace OpenSim.Data.SQLite | |||
208 | } | 210 | } |
209 | 211 | ||
210 | /// <summary> | 212 | /// <summary> |
211 | /// Delete an asset from database | ||
212 | /// </summary> | ||
213 | /// <param name="uuid"></param> | ||
214 | public void DeleteAsset(UUID uuid) | ||
215 | { | ||
216 | using (SqliteCommand cmd = new SqliteCommand(DeleteAssetSQL, m_conn)) | ||
217 | { | ||
218 | cmd.Parameters.Add(new SqliteParameter(":UUID", uuid.ToString())); | ||
219 | |||
220 | cmd.ExecuteNonQuery(); | ||
221 | } | ||
222 | } | ||
223 | |||
224 | /// <summary> | ||
225 | /// | 213 | /// |
226 | /// </summary> | 214 | /// </summary> |
227 | /// <param name="row"></param> | 215 | /// <param name="row"></param> |
@@ -241,7 +229,8 @@ namespace OpenSim.Data.SQLite | |||
241 | asset.Description = (String) row["Description"]; | 229 | asset.Description = (String) row["Description"]; |
242 | asset.Local = Convert.ToBoolean(row["Local"]); | 230 | asset.Local = Convert.ToBoolean(row["Local"]); |
243 | asset.Temporary = Convert.ToBoolean(row["Temporary"]); | 231 | asset.Temporary = Convert.ToBoolean(row["Temporary"]); |
244 | asset.Data = (byte[]) row["Data"]; | 232 | asset.Flags = (AssetFlags)Convert.ToInt32(row["asset_flags"]); |
233 | asset.Data = (byte[])row["Data"]; | ||
245 | return asset; | 234 | return asset; |
246 | } | 235 | } |
247 | 236 | ||
@@ -254,6 +243,7 @@ namespace OpenSim.Data.SQLite | |||
254 | metadata.Description = (string) row["Description"]; | 243 | metadata.Description = (string) row["Description"]; |
255 | metadata.Type = Convert.ToSByte(row["Type"]); | 244 | metadata.Type = Convert.ToSByte(row["Type"]); |
256 | metadata.Temporary = Convert.ToBoolean(row["Temporary"]); // Not sure if this is correct. | 245 | metadata.Temporary = Convert.ToBoolean(row["Temporary"]); // Not sure if this is correct. |
246 | metadata.Flags = (AssetFlags)Convert.ToInt32(row["asset_flags"]); | ||
257 | 247 | ||
258 | // Current SHA1s are not stored/computed. | 248 | // Current SHA1s are not stored/computed. |
259 | metadata.SHA1 = new byte[] {}; | 249 | metadata.SHA1 = new byte[] {}; |
@@ -338,6 +328,26 @@ namespace OpenSim.Data.SQLite | |||
338 | get { return "SQLite Asset storage engine"; } | 328 | get { return "SQLite Asset storage engine"; } |
339 | } | 329 | } |
340 | 330 | ||
331 | public override bool Delete(string id) | ||
332 | { | ||
333 | UUID assetID; | ||
334 | |||
335 | if (!UUID.TryParse(id, out assetID)) | ||
336 | return false; | ||
337 | |||
338 | lock (this) | ||
339 | { | ||
340 | using (SqliteCommand cmd = new SqliteCommand(DeleteAssetSQL, m_conn)) | ||
341 | { | ||
342 | cmd.Parameters.Add(new SqliteParameter(":UUID", assetID.ToString())); | ||
343 | |||
344 | cmd.ExecuteNonQuery(); | ||
345 | } | ||
346 | } | ||
347 | |||
348 | return true; | ||
349 | } | ||
350 | |||
341 | #endregion | 351 | #endregion |
342 | } | 352 | } |
343 | } | 353 | } |