From a9cc76e0efba7496909d613c75b81de6a9c5d979 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Wed, 30 Apr 2008 16:08:24 +0000 Subject: * Long awaited patch from A_Biondi Mantis 923. Kept alive by Melanie. Thanks A_Biondi and Melanie! * This builds but might not work. JustinCC will examine.. it may work out of the box. --- OpenSim/Data/MySQL/MySQLInventoryData.cs | 21 +++++++++++--- OpenSim/Data/MySQL/Resources/CreateItemsTable.sql | 8 +++++- .../Resources/UpgradeItemsTableToVersion3.sql | 8 ++++++ OpenSim/Data/SQLite/SQLiteInventoryStore.cs | 32 +++++++++++++++++++++- OpenSim/Data/SQLite/SQLiteRegionData.cs | 2 +- 5 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 OpenSim/Data/MySQL/Resources/UpgradeItemsTableToVersion3.sql (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs index 6261d37..2c781e0 100644 --- a/OpenSim/Data/MySQL/MySQLInventoryData.cs +++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs @@ -332,6 +332,15 @@ namespace OpenSim.Data.MySQL item.Creator = new LLUUID((string) reader["creatorID"]); item.BasePermissions = (uint) reader["inventoryBasePermissions"]; item.EveryOnePermissions = (uint) reader["inventoryEveryOnePermissions"]; + + // new fields + item.SalePrice = (int) reader["salePrice"]; + item.SaleType = Convert.ToByte(reader["saleType"]); + item.CreationDate = (int) reader["creationDate"]; + item.GroupID = new LLUUID(reader["groupID"].ToString()); + item.GroupOwned = Convert.ToBoolean(reader["groupOwned"]); + item.Flags = (uint) reader["flags"]; + return item; } catch (MySqlException e) @@ -353,8 +362,6 @@ namespace OpenSim.Data.MySQL { lock (database) { - Dictionary param = new Dictionary(); - MySqlCommand result = new MySqlCommand("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", database.Connection); result.Parameters.AddWithValue("?uuid", itemID.ToString()); @@ -444,9 +451,9 @@ namespace OpenSim.Data.MySQL public void addInventoryItem(InventoryItemBase item) { string sql = - "REPLACE INTO inventoryitems (inventoryID, assetID, assetType, parentFolderID, avatarID, inventoryName, inventoryDescription, inventoryNextPermissions, inventoryCurrentPermissions, invType, creatorID, inventoryBasePermissions, inventoryEveryOnePermissions) VALUES "; + "REPLACE INTO inventoryitems (inventoryID, assetID, assetType, parentFolderID, avatarID, inventoryName, inventoryDescription, inventoryNextPermissions, inventoryCurrentPermissions, invType, creatorID, inventoryBasePermissions, inventoryEveryOnePermissions, salePrice, saleType, creationDate, groupID, groupOwned, flags) VALUES "; sql += - "(?inventoryID, ?assetID, ?assetType, ?parentFolderID, ?avatarID, ?inventoryName, ?inventoryDescription, ?inventoryNextPermissions, ?inventoryCurrentPermissions, ?invType, ?creatorID, ?inventoryBasePermissions, ?inventoryEveryOnePermissions)"; + "(?inventoryID, ?assetID, ?assetType, ?parentFolderID, ?avatarID, ?inventoryName, ?inventoryDescription, ?inventoryNextPermissions, ?inventoryCurrentPermissions, ?invType, ?creatorID, ?inventoryBasePermissions, ?inventoryEveryOnePermissions, ?salePrice, ?saleType, ?creationDate, ?groupID, ?groupOwned, ?flags)"; try { @@ -465,6 +472,12 @@ namespace OpenSim.Data.MySQL result.Parameters.AddWithValue("?creatorID", item.Creator.ToString()); result.Parameters.AddWithValue("?inventoryBasePermissions", item.BasePermissions); result.Parameters.AddWithValue("?inventoryEveryOnePermissions", item.EveryOnePermissions); + result.Parameters.AddWithValue("?salePrice", item.SalePrice); + result.Parameters.AddWithValue("?saleType", item.SaleType); + result.Parameters.AddWithValue("?creationDate", item.CreationDate); + result.Parameters.AddWithValue("?groupID", item.GroupID); + result.Parameters.AddWithValue("?groupOwned", item.GroupOwned); + result.Parameters.AddWithValue("?flags", item.Flags); lock (database) { diff --git a/OpenSim/Data/MySQL/Resources/CreateItemsTable.sql b/OpenSim/Data/MySQL/Resources/CreateItemsTable.sql index 1723ee3..c8b7481 100644 --- a/OpenSim/Data/MySQL/Resources/CreateItemsTable.sql +++ b/OpenSim/Data/MySQL/Resources/CreateItemsTable.sql @@ -12,7 +12,13 @@ CREATE TABLE `inventoryitems` ( `creatorID` varchar(36) default NULL, `inventoryBasePermissions` int(10) unsigned NOT NULL default 0, `inventoryEveryOnePermissions` int(10) unsigned NOT NULL default 0, + `salePrice` int(11) default NULL, + `saleType` tinyint(4) default NULL, + `creationDate` int(11) default NULL, + `groupID` varchar(63) default NULL, + `groupOwned` tinyint(4) default NULL, + `flags` int(11) unsigned default NULL, PRIMARY KEY (`inventoryID`), KEY `owner` (`avatarID`), KEY `folder` (`parentFolderID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 2'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 3'; diff --git a/OpenSim/Data/MySQL/Resources/UpgradeItemsTableToVersion3.sql b/OpenSim/Data/MySQL/Resources/UpgradeItemsTableToVersion3.sql new file mode 100644 index 0000000..2b3b1f7 --- /dev/null +++ b/OpenSim/Data/MySQL/Resources/UpgradeItemsTableToVersion3.sql @@ -0,0 +1,8 @@ +ALTER TABLE `inventoryitems` + ADD COLUMN `salePrice` int(11) NOT NULL, + ADD COLUMN `saleType` tinyint(4) NOT NULL, + ADD COLUMN `creationDate` int(11) NOT NULL, + ADD COLUMN `groupID` varchar(36) NOT NULL default '00000000-0000-0000-0000-000000000000', + ADD COLUMN `groupOwned` tinyint(4) NOT NULL, + ADD COLUMN `flags` int(11) unsigned NOT NULL, +COMMENT='Rev. 3'; diff --git a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs index 5c53f32..b638528 100644 --- a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs +++ b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs @@ -101,6 +101,14 @@ namespace OpenSim.Data.SQLite item.CurrentPermissions = Convert.ToUInt32(row["inventoryCurrentPermissions"]); item.BasePermissions = Convert.ToUInt32(row["inventoryBasePermissions"]); item.EveryOnePermissions = Convert.ToUInt32(row["inventoryEveryOnePermissions"]); + + // new fields + item.SalePrice = Convert.ToInt32(row["salePrice"]); + item.SaleType = Convert.ToByte(row["saleType"]); + item.CreationDate = Convert.ToInt32(row["creationDate"]); + item.GroupID = new LLUUID((string)row["groupID"]); + item.GroupOwned = Convert.ToBoolean(row["groupOwned"]); + item.Flags = Convert.ToUInt32(row["Flags"]); return item; } @@ -120,6 +128,14 @@ namespace OpenSim.Data.SQLite row["inventoryCurrentPermissions"] = item.CurrentPermissions; row["inventoryBasePermissions"] = item.BasePermissions; row["inventoryEveryOnePermissions"] = item.EveryOnePermissions; + + // new fields + row["salePrice"] = item.SalePrice; + row["saleType"] = item.SaleType; + row["creationDate"] = item.CreationDate; + row["groupID"] = item.GroupID; + row["groupOwned"] = item.GroupOwned; + row["flags"] = item.Flags; } private void addFolder(InventoryFolderBase folder, bool add) @@ -530,7 +546,21 @@ namespace OpenSim.Data.SQLite createCol(inv, "inventoryBasePermissions", typeof (Int32)); createCol(inv, "inventoryEveryOnePermissions", typeof (Int32)); - inv.PrimaryKey = new DataColumn[] {inv.Columns["UUID"]}; + // sale info + createCol(inv, "salePrice", typeof(Int32)); + createCol(inv, "saleType", typeof(Byte)); + + // creation date + createCol(inv, "creationDate", typeof(Int32)); + + // group info + createCol(inv, "groupID", typeof(String)); + createCol(inv, "groupOwned", typeof(Boolean)); + + // Flags + createCol(inv, "flags", typeof(UInt32)); + + inv.PrimaryKey = new DataColumn[] { inv.Columns["UUID"] }; return inv; } diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs index 4355033..d385376 100644 --- a/OpenSim/Data/SQLite/SQLiteRegionData.cs +++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs @@ -721,7 +721,7 @@ namespace OpenSim.Data.SQLite createCol(items, "everyonePermissions", typeof (UInt32)); createCol(items, "groupPermissions", typeof (UInt32)); - items.PrimaryKey = new DataColumn[] {items.Columns["itemID"]}; + items.PrimaryKey = new DataColumn[] { items.Columns["itemID"] }; return items; } -- cgit v1.1