From 60357d3778c95a47481f790803b7af39c70cde9c Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 9 May 2010 17:56:52 +0100
Subject: Implement the "delete" path for assets. Adds a new option to allow
remote asset deletion in robust handler.
---
OpenSim/Data/SQLite/SQLiteAssetData.cs | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'OpenSim/Data/SQLite/SQLiteAssetData.cs')
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs
index 636bf86..9b938fa 100644
--- a/OpenSim/Data/SQLite/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs
@@ -338,6 +338,11 @@ namespace OpenSim.Data.SQLite
get { return "SQLite Asset storage engine"; }
}
+ public override bool Delete(string id)
+ {
+ return false;
+ }
+
#endregion
}
}
--
cgit v1.1
From bc6995f92123ff29fdfd6f811d3d252d99284527 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 9 May 2010 18:02:36 +0100
Subject: Add Delete handler to SQLite (NG)
---
OpenSim/Data/SQLite/SQLiteAssetData.cs | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
(limited to 'OpenSim/Data/SQLite/SQLiteAssetData.cs')
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs
index 9b938fa..2783ba1 100644
--- a/OpenSim/Data/SQLite/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs
@@ -208,20 +208,6 @@ namespace OpenSim.Data.SQLite
}
///
- /// Delete an asset from database
- ///
- ///
- public void DeleteAsset(UUID uuid)
- {
- using (SqliteCommand cmd = new SqliteCommand(DeleteAssetSQL, m_conn))
- {
- cmd.Parameters.Add(new SqliteParameter(":UUID", uuid.ToString()));
-
- cmd.ExecuteNonQuery();
- }
- }
-
- ///
///
///
///
@@ -340,7 +326,22 @@ namespace OpenSim.Data.SQLite
public override bool Delete(string id)
{
- return false;
+ UUID assetID;
+
+ if (!UUID.TryParse(id, out assetID))
+ return false;
+
+ lock (this)
+ {
+ using (SqliteCommand cmd = new SqliteCommand(DeleteAssetSQL, m_conn))
+ {
+ cmd.Parameters.Add(new SqliteParameter(":UUID", assetID.ToString()));
+
+ cmd.ExecuteNonQuery();
+ }
+ }
+
+ return true;
}
#endregion
--
cgit v1.1
From b233a4b2cab3a39f9edc17130cd7c2f2f807d6bb Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Sun, 9 May 2010 13:39:56 -0700
Subject: * Fixed spamming the assets table with map tiles. The tile image ID
is now stored in regionsettings. Upon generation of a new tile image, the old
one is deleted. Tested for SQLite and MySql standalone. * Fixed small bug
with map search where the local sim regions weren't found.
---
OpenSim/Data/SQLite/SQLiteAssetData.cs | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Data/SQLite/SQLiteAssetData.cs')
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs
index 2783ba1..7d6df8d 100644
--- a/OpenSim/Data/SQLite/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs
@@ -46,8 +46,8 @@ namespace OpenSim.Data.SQLite
private const string SelectAssetSQL = "select * from assets where UUID=:UUID";
private const string SelectAssetMetadataSQL = "select Name, Description, Type, Temporary, UUID from assets limit :start, :count";
private const string DeleteAssetSQL = "delete from assets where UUID=:UUID";
- private const string InsertAssetSQL = "insert into assets(UUID, Name, Description, Type, Local, Temporary, Data) values(:UUID, :Name, :Description, :Type, :Local, :Temporary, :Data)";
- private const string UpdateAssetSQL = "update assets set Name=:Name, Description=:Description, Type=:Type, Local=:Local, Temporary=:Temporary, Data=:Data where UUID=:UUID";
+ 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)";
+ 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";
private const string assetSelect = "select * from assets";
private SqliteConnection m_conn;
@@ -136,6 +136,7 @@ namespace OpenSim.Data.SQLite
cmd.Parameters.Add(new SqliteParameter(":Type", asset.Type));
cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local));
cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary));
+ cmd.Parameters.Add(new SqliteParameter(":Flags", asset.Flags));
cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data));
cmd.ExecuteNonQuery();
@@ -154,6 +155,7 @@ namespace OpenSim.Data.SQLite
cmd.Parameters.Add(new SqliteParameter(":Type", asset.Type));
cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local));
cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary));
+ cmd.Parameters.Add(new SqliteParameter(":Flags", asset.Flags));
cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data));
cmd.ExecuteNonQuery();
@@ -227,7 +229,8 @@ namespace OpenSim.Data.SQLite
asset.Description = (String) row["Description"];
asset.Local = Convert.ToBoolean(row["Local"]);
asset.Temporary = Convert.ToBoolean(row["Temporary"]);
- asset.Data = (byte[]) row["Data"];
+ asset.Flags = (AssetFlags)Convert.ToInt32(row["asset_flags"]);
+ asset.Data = (byte[])row["Data"];
return asset;
}
@@ -240,6 +243,7 @@ namespace OpenSim.Data.SQLite
metadata.Description = (string) row["Description"];
metadata.Type = Convert.ToSByte(row["Type"]);
metadata.Temporary = Convert.ToBoolean(row["Temporary"]); // Not sure if this is correct.
+ metadata.Flags = (AssetFlags)Convert.ToInt32(row["asset_flags"]);
// Current SHA1s are not stored/computed.
metadata.SHA1 = new byte[] {};
--
cgit v1.1
From 9cf6b81256b6c92cb5d5fb7a6db697f7784191e4 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Sun, 9 May 2010 14:02:02 -0700
Subject: Yey for unit tests. The previous commit had a couple of bugs on SQL
statements. Fixed here.
---
OpenSim/Data/SQLite/SQLiteAssetData.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Data/SQLite/SQLiteAssetData.cs')
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs
index 7d6df8d..7081f99 100644
--- a/OpenSim/Data/SQLite/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs
@@ -44,7 +44,7 @@ namespace OpenSim.Data.SQLite
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private const string SelectAssetSQL = "select * from assets where UUID=:UUID";
- private const string SelectAssetMetadataSQL = "select Name, Description, Type, Temporary, UUID from assets limit :start, :count";
+ private const string SelectAssetMetadataSQL = "select Name, Description, Type, Temporary, asset_flags, UUID from assets limit :start, :count";
private const string DeleteAssetSQL = "delete from assets where UUID=:UUID";
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)";
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";
--
cgit v1.1