aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/MSSQL
diff options
context:
space:
mode:
authorMelanie2010-05-26 17:19:02 +0100
committerMelanie2010-05-26 17:19:02 +0100
commit97501495eb2f54912b862d9dd544ca467e8b9d1e (patch)
tree3fed12f5c6bcc514368b40b16a0a0f165ab9aac1 /OpenSim/Data/MSSQL
parentMerge branch 'master' into careminster-presence-refactor (diff)
parentMerge branch 'master' of melanie@opensimulator.org:/var/git/opensim (diff)
downloadopensim-SC_OLD-97501495eb2f54912b862d9dd544ca467e8b9d1e.zip
opensim-SC_OLD-97501495eb2f54912b862d9dd544ca467e8b9d1e.tar.gz
opensim-SC_OLD-97501495eb2f54912b862d9dd544ca467e8b9d1e.tar.bz2
opensim-SC_OLD-97501495eb2f54912b862d9dd544ca467e8b9d1e.tar.xz
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Data/MSSQL')
-rw-r--r--OpenSim/Data/MSSQL/MSSQLAssetData.cs106
-rw-r--r--OpenSim/Data/MSSQL/MSSQLEstateData.cs2
-rw-r--r--OpenSim/Data/MSSQL/MSSQLInventoryData.cs51
-rw-r--r--OpenSim/Data/MSSQL/Resources/AssetStore.migrations6
-rw-r--r--OpenSim/Data/MSSQL/Resources/AvatarAppearance.sql0
-rw-r--r--OpenSim/Data/MSSQL/Resources/CreateAssetsTable.sql0
-rw-r--r--OpenSim/Data/MSSQL/Resources/CreateFoldersTable.sql0
-rw-r--r--OpenSim/Data/MSSQL/Resources/CreateItemsTable.sql0
-rw-r--r--OpenSim/Data/MSSQL/Resources/CreateUserFriendsTable.sql0
-rw-r--r--OpenSim/Data/MSSQL/Resources/InventoryStore.migrations70
-rw-r--r--OpenSim/Data/MSSQL/Resources/Mssql-agents.sql0
-rw-r--r--OpenSim/Data/MSSQL/Resources/Mssql-logs.sql0
-rw-r--r--OpenSim/Data/MSSQL/Resources/Mssql-regions.sql0
-rw-r--r--OpenSim/Data/MSSQL/Resources/Mssql-users.sql0
14 files changed, 141 insertions, 94 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLAssetData.cs b/OpenSim/Data/MSSQL/MSSQLAssetData.cs
index 8475b22..c7488d8 100644
--- a/OpenSim/Data/MSSQL/MSSQLAssetData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLAssetData.cs
@@ -121,15 +121,16 @@ namespace OpenSim.Data.MSSQL
121 if (reader.Read()) 121 if (reader.Read())
122 { 122 {
123 AssetBase asset = new AssetBase( 123 AssetBase asset = new AssetBase(
124 new UUID((Guid)reader["id"]), 124 DBGuid.FromDB(reader["id"]),
125 (string)reader["name"], 125 (string)reader["name"],
126 Convert.ToSByte(reader["assetType"]), 126 Convert.ToSByte(reader["assetType"]),
127 String.Empty 127 reader["creatorid"].ToString()
128 ); 128 );
129 // Region Main 129 // Region Main
130 asset.Description = (string)reader["description"]; 130 asset.Description = (string)reader["description"];
131 asset.Local = Convert.ToBoolean(reader["local"]); 131 asset.Local = Convert.ToBoolean(reader["local"]);
132 asset.Temporary = Convert.ToBoolean(reader["temporary"]); 132 asset.Temporary = Convert.ToBoolean(reader["temporary"]);
133 asset.Flags = (AssetFlags)(Convert.ToInt32(reader["asset_flags"]));
133 asset.Data = (byte[])reader["data"]; 134 asset.Data = (byte[])reader["data"];
134 return asset; 135 return asset;
135 } 136 }
@@ -144,26 +145,19 @@ namespace OpenSim.Data.MSSQL
144 /// <param name="asset">the asset</param> 145 /// <param name="asset">the asset</param>
145 override public void StoreAsset(AssetBase asset) 146 override public void StoreAsset(AssetBase asset)
146 { 147 {
147 if (ExistsAsset(asset.FullID)) 148
148 UpdateAsset(asset); 149 string sql =
149 else 150 @"IF EXISTS(SELECT * FROM assets WHERE id=@id)
150 InsertAsset(asset); 151 UPDATE assets set name = @name, description = @description, assetType = @assetType,
151 } 152 local = @local, temporary = @temporary, creatorid = @creatorid, data = @data
152 153 WHERE id=@id
153 154 ELSE
154 private void InsertAsset(AssetBase asset) 155 INSERT INTO assets
155 { 156 ([id], [name], [description], [assetType], [local],
156 if (ExistsAsset(asset.FullID)) 157 [temporary], [create_time], [access_time], [creatorid], [asset_flags], [data])
157 { 158 VALUES
158 return; 159 (@id, @name, @description, @assetType, @local,
159 } 160 @temporary, @create_time, @access_time, @creatorid, @asset_flags, @data)";
160
161 string sql = @"INSERT INTO assets
162 ([id], [name], [description], [assetType], [local],
163 [temporary], [create_time], [access_time], [data])
164 VALUES
165 (@id, @name, @description, @assetType, @local,
166 @temporary, @create_time, @access_time, @data)";
167 161
168 string assetName = asset.Name; 162 string assetName = asset.Name;
169 if (asset.Name.Length > 64) 163 if (asset.Name.Length > 64)
@@ -191,6 +185,8 @@ namespace OpenSim.Data.MSSQL
191 command.Parameters.Add(m_database.CreateParameter("temporary", asset.Temporary)); 185 command.Parameters.Add(m_database.CreateParameter("temporary", asset.Temporary));
192 command.Parameters.Add(m_database.CreateParameter("access_time", now)); 186 command.Parameters.Add(m_database.CreateParameter("access_time", now));
193 command.Parameters.Add(m_database.CreateParameter("create_time", now)); 187 command.Parameters.Add(m_database.CreateParameter("create_time", now));
188 command.Parameters.Add(m_database.CreateParameter("asset_flags", (int)asset.Flags));
189 command.Parameters.Add(m_database.CreateParameter("creatorid", asset.Metadata.CreatorID));
194 command.Parameters.Add(m_database.CreateParameter("data", asset.Data)); 190 command.Parameters.Add(m_database.CreateParameter("data", asset.Data));
195 conn.Open(); 191 conn.Open();
196 try 192 try
@@ -199,57 +195,11 @@ namespace OpenSim.Data.MSSQL
199 } 195 }
200 catch(Exception e) 196 catch(Exception e)
201 { 197 {
202 m_log.Error("[ASSET DB]: Error inserting item :" + e.Message); 198 m_log.Error("[ASSET DB]: Error storing item :" + e.Message);
203 } 199 }
204 } 200 }
205 } 201 }
206 202
207 /// <summary>
208 /// Update asset in m_database
209 /// </summary>
210 /// <param name="asset">the asset</param>
211 private void UpdateAsset(AssetBase asset)
212 {
213 string sql = @"UPDATE assets set id = @id, name = @name, description = @description, assetType = @assetType,
214 local = @local, temporary = @temporary, data = @data
215 WHERE id = @keyId;";
216
217 string assetName = asset.Name;
218 if (asset.Name.Length > 64)
219 {
220 assetName = asset.Name.Substring(0, 64);
221 m_log.Warn("[ASSET DB]: Name field truncated from " + asset.Name.Length + " to " + assetName.Length + " characters on update");
222 }
223
224 string assetDescription = asset.Description;
225 if (asset.Description.Length > 64)
226 {
227 assetDescription = asset.Description.Substring(0, 64);
228 m_log.Warn("[ASSET DB]: Description field truncated from " + asset.Description.Length + " to " + assetDescription.Length + " characters on update");
229 }
230
231 using (SqlConnection conn = new SqlConnection(m_connectionString))
232 using (SqlCommand command = new SqlCommand(sql, conn))
233 {
234 command.Parameters.Add(m_database.CreateParameter("id", asset.FullID));
235 command.Parameters.Add(m_database.CreateParameter("name", assetName));
236 command.Parameters.Add(m_database.CreateParameter("description", assetDescription));
237 command.Parameters.Add(m_database.CreateParameter("assetType", asset.Type));
238 command.Parameters.Add(m_database.CreateParameter("local", asset.Local));
239 command.Parameters.Add(m_database.CreateParameter("temporary", asset.Temporary));
240 command.Parameters.Add(m_database.CreateParameter("data", asset.Data));
241 command.Parameters.Add(m_database.CreateParameter("@keyId", asset.FullID));
242 conn.Open();
243 try
244 {
245 command.ExecuteNonQuery();
246 }
247 catch (Exception e)
248 {
249 m_log.Error(e.ToString());
250 }
251 }
252 }
253 203
254// Commented out since currently unused - this probably should be called in GetAsset() 204// Commented out since currently unused - this probably should be called in GetAsset()
255// private void UpdateAccessTime(AssetBase asset) 205// private void UpdateAccessTime(AssetBase asset)
@@ -295,26 +245,34 @@ namespace OpenSim.Data.MSSQL
295 public override List<AssetMetadata> FetchAssetMetadataSet(int start, int count) 245 public override List<AssetMetadata> FetchAssetMetadataSet(int start, int count)
296 { 246 {
297 List<AssetMetadata> retList = new List<AssetMetadata>(count); 247 List<AssetMetadata> retList = new List<AssetMetadata>(count);
298 string sql = @"SELECT (name,description,assetType,temporary,id), Row = ROW_NUMBER() 248 string sql = @"WITH OrderedAssets AS
299 OVER (ORDER BY (some column to order by)) 249 (
300 WHERE Row >= @Start AND Row < @Start + @Count"; 250 SELECT id, name, description, assetType, temporary, creatorid,
251 RowNumber = ROW_NUMBER() OVER (ORDER BY id)
252 FROM assets
253 )
254 SELECT *
255 FROM OrderedAssets
256 WHERE RowNumber BETWEEN @start AND @stop;";
301 257
302 using (SqlConnection conn = new SqlConnection(m_connectionString)) 258 using (SqlConnection conn = new SqlConnection(m_connectionString))
303 using (SqlCommand cmd = new SqlCommand(sql, conn)) 259 using (SqlCommand cmd = new SqlCommand(sql, conn))
304 { 260 {
305 cmd.Parameters.Add(m_database.CreateParameter("start", start)); 261 cmd.Parameters.Add(m_database.CreateParameter("start", start));
306 cmd.Parameters.Add(m_database.CreateParameter("count", count)); 262 cmd.Parameters.Add(m_database.CreateParameter("stop", start + count - 1));
307 conn.Open(); 263 conn.Open();
308 using (SqlDataReader reader = cmd.ExecuteReader()) 264 using (SqlDataReader reader = cmd.ExecuteReader())
309 { 265 {
310 while (reader.Read()) 266 while (reader.Read())
311 { 267 {
312 AssetMetadata metadata = new AssetMetadata(); 268 AssetMetadata metadata = new AssetMetadata();
313 metadata.FullID = new UUID((Guid)reader["id"]); 269 metadata.FullID = DBGuid.FromDB(reader["id"]);
314 metadata.Name = (string)reader["name"]; 270 metadata.Name = (string)reader["name"];
315 metadata.Description = (string)reader["description"]; 271 metadata.Description = (string)reader["description"];
316 metadata.Type = Convert.ToSByte(reader["assetType"]); 272 metadata.Type = Convert.ToSByte(reader["assetType"]);
317 metadata.Temporary = Convert.ToBoolean(reader["temporary"]); 273 metadata.Temporary = Convert.ToBoolean(reader["temporary"]);
274 metadata.CreatorID = (string)reader["creatorid"];
275 retList.Add(metadata);
318 } 276 }
319 } 277 }
320 } 278 }
diff --git a/OpenSim/Data/MSSQL/MSSQLEstateData.cs b/OpenSim/Data/MSSQL/MSSQLEstateData.cs
index 66931e2..80bf106 100644
--- a/OpenSim/Data/MSSQL/MSSQLEstateData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLEstateData.cs
@@ -37,7 +37,7 @@ using OpenSim.Region.Framework.Interfaces;
37 37
38namespace OpenSim.Data.MSSQL 38namespace OpenSim.Data.MSSQL
39{ 39{
40 public class MSSQLEstateData : IEstateDataStore 40 public class MSSQLEstateStore : IEstateDataStore
41 { 41 {
42 private const string _migrationStore = "EstateStore"; 42 private const string _migrationStore = "EstateStore";
43 43
diff --git a/OpenSim/Data/MSSQL/MSSQLInventoryData.cs b/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
index 4815700..4d06377 100644
--- a/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
@@ -111,6 +111,9 @@ namespace OpenSim.Data.MSSQL
111 /// <returns>A list of folder objects</returns> 111 /// <returns>A list of folder objects</returns>
112 public List<InventoryFolderBase> getUserRootFolders(UUID user) 112 public List<InventoryFolderBase> getUserRootFolders(UUID user)
113 { 113 {
114 if (user == UUID.Zero)
115 return new List<InventoryFolderBase>();
116
114 return getInventoryFolders(UUID.Zero, user); 117 return getInventoryFolders(UUID.Zero, user);
115 } 118 }
116 119
@@ -184,7 +187,19 @@ namespace OpenSim.Data.MSSQL
184 //Note maybe change this to use a Dataset that loading in all folders of a user and then go throw it that way. 187 //Note maybe change this to use a Dataset that loading in all folders of a user and then go throw it that way.
185 //Note this is changed so it opens only one connection to the database and not everytime it wants to get data. 188 //Note this is changed so it opens only one connection to the database and not everytime it wants to get data.
186 189
190 /* NOTE: the implementation below is very inefficient (makes a separate request to get subfolders for
191 * every found folder, recursively). Inventory code for other DBs has been already rewritten to get ALL
192 * inventory for a specific user at once.
193 *
194 * Meanwhile, one little thing is corrected: getFolderHierarchy(UUID.Zero) doesn't make sense and should never
195 * be used, so check for that and return an empty list.
196 */
197
187 List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); 198 List<InventoryFolderBase> folders = new List<InventoryFolderBase>();
199
200 if (parentID == UUID.Zero)
201 return folders;
202
188 string sql = "SELECT * FROM inventoryfolders WHERE parentFolderID = @parentID"; 203 string sql = "SELECT * FROM inventoryfolders WHERE parentFolderID = @parentID";
189 using (SqlConnection conn = new SqlConnection(m_connectionString)) 204 using (SqlConnection conn = new SqlConnection(m_connectionString))
190 using (SqlCommand cmd = new SqlCommand(sql, conn)) 205 using (SqlCommand cmd = new SqlCommand(sql, conn))
@@ -249,13 +264,12 @@ namespace OpenSim.Data.MSSQL
249 /// <param name="folder">Folder to update</param> 264 /// <param name="folder">Folder to update</param>
250 public void updateInventoryFolder(InventoryFolderBase folder) 265 public void updateInventoryFolder(InventoryFolderBase folder)
251 { 266 {
252 string sql = @"UPDATE inventoryfolders SET folderID = @folderID, 267 string sql = @"UPDATE inventoryfolders SET agentID = @agentID,
253 agentID = @agentID,
254 parentFolderID = @parentFolderID, 268 parentFolderID = @parentFolderID,
255 folderName = @folderName, 269 folderName = @folderName,
256 type = @type, 270 type = @type,
257 version = @version 271 version = @version
258 WHERE folderID = @keyFolderID"; 272 WHERE folderID = @folderID";
259 273
260 string folderName = folder.Name; 274 string folderName = folder.Name;
261 if (folderName.Length > 64) 275 if (folderName.Length > 64)
@@ -272,7 +286,6 @@ namespace OpenSim.Data.MSSQL
272 cmd.Parameters.Add(database.CreateParameter("folderName", folderName)); 286 cmd.Parameters.Add(database.CreateParameter("folderName", folderName));
273 cmd.Parameters.Add(database.CreateParameter("type", folder.Type)); 287 cmd.Parameters.Add(database.CreateParameter("type", folder.Type));
274 cmd.Parameters.Add(database.CreateParameter("version", folder.Version)); 288 cmd.Parameters.Add(database.CreateParameter("version", folder.Version));
275 cmd.Parameters.Add(database.CreateParameter("@keyFolderID", folder.ID));
276 conn.Open(); 289 conn.Open();
277 try 290 try
278 { 291 {
@@ -296,7 +309,7 @@ namespace OpenSim.Data.MSSQL
296 using (SqlCommand cmd = new SqlCommand(sql, conn)) 309 using (SqlCommand cmd = new SqlCommand(sql, conn))
297 { 310 {
298 cmd.Parameters.Add(database.CreateParameter("parentFolderID", folder.ParentID)); 311 cmd.Parameters.Add(database.CreateParameter("parentFolderID", folder.ParentID));
299 cmd.Parameters.Add(database.CreateParameter("@folderID", folder.ID)); 312 cmd.Parameters.Add(database.CreateParameter("folderID", folder.ID));
300 conn.Open(); 313 conn.Open();
301 try 314 try
302 { 315 {
@@ -489,8 +502,7 @@ namespace OpenSim.Data.MSSQL
489 /// <param name="item">Inventory item to update</param> 502 /// <param name="item">Inventory item to update</param>
490 public void updateInventoryItem(InventoryItemBase item) 503 public void updateInventoryItem(InventoryItemBase item)
491 { 504 {
492 string sql = @"UPDATE inventoryitems SET inventoryID = @inventoryID, 505 string sql = @"UPDATE inventoryitems SET assetID = @assetID,
493 assetID = @assetID,
494 assetType = @assetType, 506 assetType = @assetType,
495 parentFolderID = @parentFolderID, 507 parentFolderID = @parentFolderID,
496 avatarID = @avatarID, 508 avatarID = @avatarID,
@@ -502,13 +514,14 @@ namespace OpenSim.Data.MSSQL
502 creatorID = @creatorID, 514 creatorID = @creatorID,
503 inventoryBasePermissions = @inventoryBasePermissions, 515 inventoryBasePermissions = @inventoryBasePermissions,
504 inventoryEveryOnePermissions = @inventoryEveryOnePermissions, 516 inventoryEveryOnePermissions = @inventoryEveryOnePermissions,
517 inventoryGroupPermissions = @inventoryGroupPermissions,
505 salePrice = @salePrice, 518 salePrice = @salePrice,
506 saleType = @saleType, 519 saleType = @saleType,
507 creationDate = @creationDate, 520 creationDate = @creationDate,
508 groupID = @groupID, 521 groupID = @groupID,
509 groupOwned = @groupOwned, 522 groupOwned = @groupOwned,
510 flags = @flags 523 flags = @flags
511 WHERE inventoryID = @keyInventoryID"; 524 WHERE inventoryID = @inventoryID";
512 525
513 string itemName = item.Name; 526 string itemName = item.Name;
514 if (item.Name.Length > 64) 527 if (item.Name.Length > 64)
@@ -537,16 +550,16 @@ namespace OpenSim.Data.MSSQL
537 command.Parameters.Add(database.CreateParameter("inventoryNextPermissions", item.NextPermissions)); 550 command.Parameters.Add(database.CreateParameter("inventoryNextPermissions", item.NextPermissions));
538 command.Parameters.Add(database.CreateParameter("inventoryCurrentPermissions", item.CurrentPermissions)); 551 command.Parameters.Add(database.CreateParameter("inventoryCurrentPermissions", item.CurrentPermissions));
539 command.Parameters.Add(database.CreateParameter("invType", item.InvType)); 552 command.Parameters.Add(database.CreateParameter("invType", item.InvType));
540 command.Parameters.Add(database.CreateParameter("creatorID", item.CreatorIdAsUuid)); 553 command.Parameters.Add(database.CreateParameter("creatorID", item.CreatorId));
541 command.Parameters.Add(database.CreateParameter("inventoryBasePermissions", item.BasePermissions)); 554 command.Parameters.Add(database.CreateParameter("inventoryBasePermissions", item.BasePermissions));
542 command.Parameters.Add(database.CreateParameter("inventoryEveryOnePermissions", item.EveryOnePermissions)); 555 command.Parameters.Add(database.CreateParameter("inventoryEveryOnePermissions", item.EveryOnePermissions));
556 command.Parameters.Add(database.CreateParameter("inventoryGroupPermissions", item.GroupPermissions));
543 command.Parameters.Add(database.CreateParameter("salePrice", item.SalePrice)); 557 command.Parameters.Add(database.CreateParameter("salePrice", item.SalePrice));
544 command.Parameters.Add(database.CreateParameter("saleType", item.SaleType)); 558 command.Parameters.Add(database.CreateParameter("saleType", item.SaleType));
545 command.Parameters.Add(database.CreateParameter("creationDate", item.CreationDate)); 559 command.Parameters.Add(database.CreateParameter("creationDate", item.CreationDate));
546 command.Parameters.Add(database.CreateParameter("groupID", item.GroupID)); 560 command.Parameters.Add(database.CreateParameter("groupID", item.GroupID));
547 command.Parameters.Add(database.CreateParameter("groupOwned", item.GroupOwned)); 561 command.Parameters.Add(database.CreateParameter("groupOwned", item.GroupOwned));
548 command.Parameters.Add(database.CreateParameter("flags", item.Flags)); 562 command.Parameters.Add(database.CreateParameter("flags", item.Flags));
549 command.Parameters.Add(database.CreateParameter("keyInventoryID", item.ID));
550 conn.Open(); 563 conn.Open();
551 try 564 try
552 { 565 {
@@ -732,9 +745,9 @@ namespace OpenSim.Data.MSSQL
732 try 745 try
733 { 746 {
734 InventoryFolderBase folder = new InventoryFolderBase(); 747 InventoryFolderBase folder = new InventoryFolderBase();
735 folder.Owner = new UUID((Guid)reader["agentID"]); 748 folder.Owner = DBGuid.FromDB(reader["agentID"]);
736 folder.ParentID = new UUID((Guid)reader["parentFolderID"]); 749 folder.ParentID = DBGuid.FromDB(reader["parentFolderID"]);
737 folder.ID = new UUID((Guid)reader["folderID"]); 750 folder.ID = DBGuid.FromDB(reader["folderID"]);
738 folder.Name = (string)reader["folderName"]; 751 folder.Name = (string)reader["folderName"];
739 folder.Type = (short)reader["type"]; 752 folder.Type = (short)reader["type"];
740 folder.Version = Convert.ToUInt16(reader["version"]); 753 folder.Version = Convert.ToUInt16(reader["version"]);
@@ -760,24 +773,24 @@ namespace OpenSim.Data.MSSQL
760 { 773 {
761 InventoryItemBase item = new InventoryItemBase(); 774 InventoryItemBase item = new InventoryItemBase();
762 775
763 item.ID = new UUID((Guid)reader["inventoryID"]); 776 item.ID = DBGuid.FromDB(reader["inventoryID"]);
764 item.AssetID = new UUID((Guid)reader["assetID"]); 777 item.AssetID = DBGuid.FromDB(reader["assetID"]);
765 item.AssetType = Convert.ToInt32(reader["assetType"].ToString()); 778 item.AssetType = Convert.ToInt32(reader["assetType"].ToString());
766 item.Folder = new UUID((Guid)reader["parentFolderID"]); 779 item.Folder = DBGuid.FromDB(reader["parentFolderID"]);
767 item.Owner = new UUID((Guid)reader["avatarID"]); 780 item.Owner = DBGuid.FromDB(reader["avatarID"]);
768 item.Name = reader["inventoryName"].ToString(); 781 item.Name = reader["inventoryName"].ToString();
769 item.Description = reader["inventoryDescription"].ToString(); 782 item.Description = reader["inventoryDescription"].ToString();
770 item.NextPermissions = Convert.ToUInt32(reader["inventoryNextPermissions"]); 783 item.NextPermissions = Convert.ToUInt32(reader["inventoryNextPermissions"]);
771 item.CurrentPermissions = Convert.ToUInt32(reader["inventoryCurrentPermissions"]); 784 item.CurrentPermissions = Convert.ToUInt32(reader["inventoryCurrentPermissions"]);
772 item.InvType = Convert.ToInt32(reader["invType"].ToString()); 785 item.InvType = Convert.ToInt32(reader["invType"].ToString());
773 item.CreatorId = ((Guid)reader["creatorID"]).ToString(); 786 item.CreatorId = reader["creatorID"].ToString();
774 item.BasePermissions = Convert.ToUInt32(reader["inventoryBasePermissions"]); 787 item.BasePermissions = Convert.ToUInt32(reader["inventoryBasePermissions"]);
775 item.EveryOnePermissions = Convert.ToUInt32(reader["inventoryEveryOnePermissions"]); 788 item.EveryOnePermissions = Convert.ToUInt32(reader["inventoryEveryOnePermissions"]);
776 item.GroupPermissions = Convert.ToUInt32(reader["inventoryGroupPermissions"]); 789 item.GroupPermissions = Convert.ToUInt32(reader["inventoryGroupPermissions"]);
777 item.SalePrice = Convert.ToInt32(reader["salePrice"]); 790 item.SalePrice = Convert.ToInt32(reader["salePrice"]);
778 item.SaleType = Convert.ToByte(reader["saleType"]); 791 item.SaleType = Convert.ToByte(reader["saleType"]);
779 item.CreationDate = Convert.ToInt32(reader["creationDate"]); 792 item.CreationDate = Convert.ToInt32(reader["creationDate"]);
780 item.GroupID = new UUID((Guid)reader["groupID"]); 793 item.GroupID = DBGuid.FromDB(reader["groupID"]);
781 item.GroupOwned = Convert.ToBoolean(reader["groupOwned"]); 794 item.GroupOwned = Convert.ToBoolean(reader["groupOwned"]);
782 item.Flags = Convert.ToUInt32(reader["flags"]); 795 item.Flags = Convert.ToUInt32(reader["flags"]);
783 796
diff --git a/OpenSim/Data/MSSQL/Resources/AssetStore.migrations b/OpenSim/Data/MSSQL/Resources/AssetStore.migrations
index beb82b9..8664ce9 100644
--- a/OpenSim/Data/MSSQL/Resources/AssetStore.migrations
+++ b/OpenSim/Data/MSSQL/Resources/AssetStore.migrations
@@ -97,4 +97,10 @@ COMMIT
97 97
98DELETE FROM assets WHERE id = 'dc4b9f0b-d008-45c6-96a4-01dd947ac621'; 98DELETE FROM assets WHERE id = 'dc4b9f0b-d008-45c6-96a4-01dd947ac621';
99 99
100:VERSION 6
100 101
102ALTER TABLE assets ADD asset_flags INTEGER NOT NULL DEFAULT 0;
103
104:VERSION 7
105
106alter table assets add creatorid varchar(36) not null default '';
diff --git a/OpenSim/Data/MSSQL/Resources/AvatarAppearance.sql b/OpenSim/Data/MSSQL/Resources/AvatarAppearance.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/AvatarAppearance.sql
+++ /dev/null
diff --git a/OpenSim/Data/MSSQL/Resources/CreateAssetsTable.sql b/OpenSim/Data/MSSQL/Resources/CreateAssetsTable.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/CreateAssetsTable.sql
+++ /dev/null
diff --git a/OpenSim/Data/MSSQL/Resources/CreateFoldersTable.sql b/OpenSim/Data/MSSQL/Resources/CreateFoldersTable.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/CreateFoldersTable.sql
+++ /dev/null
diff --git a/OpenSim/Data/MSSQL/Resources/CreateItemsTable.sql b/OpenSim/Data/MSSQL/Resources/CreateItemsTable.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/CreateItemsTable.sql
+++ /dev/null
diff --git a/OpenSim/Data/MSSQL/Resources/CreateUserFriendsTable.sql b/OpenSim/Data/MSSQL/Resources/CreateUserFriendsTable.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/CreateUserFriendsTable.sql
+++ /dev/null
diff --git a/OpenSim/Data/MSSQL/Resources/InventoryStore.migrations b/OpenSim/Data/MSSQL/Resources/InventoryStore.migrations
index cd5dfdc..e2a8d57 100644
--- a/OpenSim/Data/MSSQL/Resources/InventoryStore.migrations
+++ b/OpenSim/Data/MSSQL/Resources/InventoryStore.migrations
@@ -171,4 +171,74 @@ CREATE NONCLUSTERED INDEX folder ON dbo.inventoryitems
171 171
172COMMIT 172COMMIT
173 173
174:VERSION 5
175
176# It would be totally crazy to have to recreate the whole table just to change one column type,
177# just because MS SQL treats each DEFAULT as a constraint object that must be dropped
178# before anything can be done to the column. Since all defaults here are unnamed, there is
179# no easy way to drop them! The hairy piece of code below removes all DEFAULT constraints
180# from InventoryItems.
181
182# SO: anything that's NULLable is by default NULL, so please don't declare DEFAULT(NULL),
183# they do nothing but prevent changes to the columns. If you really
184# need to have DEFAULTs or other constraints, give them names so they can be dropped when needed!
185
186BEGIN TRANSACTION
187DECLARE @nm varchar(80);
188DECLARE x CURSOR LOCAL FORWARD_ONLY READ_ONLY
189 FOR SELECT name FROM sys.default_constraints where parent_object_id = OBJECT_ID('inventoryitems');
190OPEN x;
191FETCH NEXT FROM x INTO @nm;
192WHILE @@FETCH_STATUS = 0
193BEGIN
194 EXEC('alter table inventoryitems drop ' + @nm);
195 FETCH NEXT FROM x INTO @nm;
196END
197CLOSE x
198DEALLOCATE x
199COMMIT
200
201# all DEFAULTs dropped!
202
203:GO
204
205BEGIN TRANSACTION
206
207# Restoring defaults:
208# NOTE: [inventoryID] does NOT need one: it's NOT NULL PK and a unique Guid must be provided every time anyway!
209
210alter table inventoryitems
211 add constraint def_baseperm default 0 for inventoryBasePermissions
212alter table inventoryitems
213 add constraint def_allperm default 0 for inventoryEveryOnePermissions
214alter table inventoryitems
215 add constraint def_grpperm default 0 for inventoryGroupPermissions
216
217COMMIT
218
219:VERSION 7
220
221BEGIN TRANSACTION
222
223# CreatorID goes back to VARCHAR(36) (???)
224
225exec sp_rename 'inventoryitems.CreatorID', 'cr_old', 'COLUMN'
226
227:GO
228
229alter table inventoryitems
230 add creatorID varchar(36) NULL
231
232:GO
233
234update inventoryitems set creatorID = CONVERT(VARCHAR(36), cr_old)
235
236alter table inventoryitems
237 drop column cr_old
238
239COMMIT
240
241
242
243
174 244
diff --git a/OpenSim/Data/MSSQL/Resources/Mssql-agents.sql b/OpenSim/Data/MSSQL/Resources/Mssql-agents.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/Mssql-agents.sql
+++ /dev/null
diff --git a/OpenSim/Data/MSSQL/Resources/Mssql-logs.sql b/OpenSim/Data/MSSQL/Resources/Mssql-logs.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/Mssql-logs.sql
+++ /dev/null
diff --git a/OpenSim/Data/MSSQL/Resources/Mssql-regions.sql b/OpenSim/Data/MSSQL/Resources/Mssql-regions.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/Mssql-regions.sql
+++ /dev/null
diff --git a/OpenSim/Data/MSSQL/Resources/Mssql-users.sql b/OpenSim/Data/MSSQL/Resources/Mssql-users.sql
deleted file mode 100644
index e69de29..0000000
--- a/OpenSim/Data/MSSQL/Resources/Mssql-users.sql
+++ /dev/null