From 5a1e896edcb3e5e8341e9d3fb5b3e323c7ec3210 Mon Sep 17 00:00:00 2001
From: Tleiades Hax
Date: Sat, 13 Oct 2007 12:35:37 +0000
Subject: OpenSimMain now respects the asset_plugin paramter, and storing of
 assets will *not* throw an exception

---
 OpenSim/Framework/Data.MySQL/MySQLAssetData.cs     | 23 ++++++++++++++++++++--
 .../Data.MySQL/Resources/CreateAssetsTable.sql     |  4 ++--
 2 files changed, 23 insertions(+), 4 deletions(-)

(limited to 'OpenSim/Framework')

diff --git a/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs b/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs
index 70e04b6..79f87e0 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs
@@ -40,9 +40,28 @@ namespace OpenSim.Framework.Data.MySQL
 
         }
 
-        public AssetBase FetchAsset(LLUUID uuid)
+        public AssetBase FetchAsset(LLUUID assetID)
         {
-            throw new Exception("The method or operation is not implemented.");
+            AssetBase asset = null;
+
+            MySqlCommand cmd = new MySqlCommand("SELECT name, description, assetType, invType, local, temporary, data FROM assets WHERE id=?id", _dbConnection.Connection);
+            MySqlParameter p = cmd.Parameters.Add("?id", MySqlDbType.Binary, 16);
+            p.Value = assetID.GetBytes();
+            using (MySqlDataReader dbReader = cmd.ExecuteReader(System.Data.CommandBehavior.SingleRow))
+            {
+                if (dbReader.Read())
+                {
+                    asset = new AssetBase();
+                    asset.Data = (byte[])dbReader["data"];
+                    asset.Description = (string)dbReader["description"];
+                    asset.FullID = assetID;
+                    asset.InvType = (sbyte)dbReader["invType"];
+                    asset.Local = ((sbyte)dbReader["local"]) != 0 ? true : false;
+                    asset.Name = (string)dbReader["name"];
+                    asset.Type = (sbyte)dbReader["assetType"];
+                }
+            }
+            return asset;
         }
 
         public void CreateAsset(AssetBase asset)
diff --git a/OpenSim/Framework/Data.MySQL/Resources/CreateAssetsTable.sql b/OpenSim/Framework/Data.MySQL/Resources/CreateAssetsTable.sql
index 049a3a2..b9c1b97 100644
--- a/OpenSim/Framework/Data.MySQL/Resources/CreateAssetsTable.sql
+++ b/OpenSim/Framework/Data.MySQL/Resources/CreateAssetsTable.sql
@@ -2,8 +2,8 @@ CREATE TABLE `assets` (
   `id` binary(16) NOT NULL,
   `name` varchar(64) NOT NULL,
   `description` varchar(64) NOT NULL,
-  `assetType` smallint(5) unsigned NOT NULL,
-  `invType` smallint(5) unsigned NOT NULL,
+  `assetType` tinyint(4) NOT NULL,
+  `invType` tinyint(4) NOT NULL,
   `local` tinyint(1) NOT NULL,
   `temporary` tinyint(1) NOT NULL,
   `data` longblob NOT NULL,
-- 
cgit v1.1