diff options
author | Justin Clark-Casey (justincc) | 2010-08-16 21:57:08 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-01-25 04:03:09 +0000 |
commit | a3e1e6dd611a179eb2d894a45ae45ef278ae2e85 (patch) | |
tree | b37946a51c993b9c0ee94851391b41cfff497e28 /OpenSim/Data/MySQL | |
parent | Add DAExampleModule to demonstrate dynamic attributes (diff) | |
download | opensim-SC-a3e1e6dd611a179eb2d894a45ae45ef278ae2e85.zip opensim-SC-a3e1e6dd611a179eb2d894a45ae45ef278ae2e85.tar.gz opensim-SC-a3e1e6dd611a179eb2d894a45ae45ef278ae2e85.tar.bz2 opensim-SC-a3e1e6dd611a179eb2d894a45ae45ef278ae2e85.tar.xz |
Implement dynamic attribute persistence on mysql and mssql
mssql is untested
Diffstat (limited to 'OpenSim/Data/MySQL')
-rw-r--r-- | OpenSim/Data/MySQL/MySQLSimulationData.cs | 16 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/Resources/RegionStore.migrations | 9 |
2 files changed, 23 insertions, 2 deletions
diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs index d562783..b7f39fb 100644 --- a/OpenSim/Data/MySQL/MySQLSimulationData.cs +++ b/OpenSim/Data/MySQL/MySQLSimulationData.cs | |||
@@ -202,7 +202,7 @@ namespace OpenSim.Data.MySQL | |||
202 | "?SaleType, ?ColorR, ?ColorG, " + | 202 | "?SaleType, ?ColorR, ?ColorG, " + |
203 | "?ColorB, ?ColorA, ?ParticleSystem, " + | 203 | "?ColorB, ?ColorA, ?ParticleSystem, " + |
204 | "?ClickAction, ?Material, ?CollisionSound, " + | 204 | "?ClickAction, ?Material, ?CollisionSound, " + |
205 | "?CollisionSoundVolume, ?PassTouches, ?LinkNumber, ?MediaURL)"; | 205 | "?CollisionSoundVolume, ?PassTouches, ?LinkNumber, ?MediaURL, ?DynAttrs)"; |
206 | 206 | ||
207 | FillPrimCommand(cmd, prim, obj.UUID, regionUUID); | 207 | FillPrimCommand(cmd, prim, obj.UUID, regionUUID); |
208 | 208 | ||
@@ -230,7 +230,7 @@ namespace OpenSim.Data.MySQL | |||
230 | "?PathTwistBegin, ?ProfileBegin, " + | 230 | "?PathTwistBegin, ?ProfileBegin, " + |
231 | "?ProfileEnd, ?ProfileCurve, " + | 231 | "?ProfileEnd, ?ProfileCurve, " + |
232 | "?ProfileHollow, ?Texture, ?ExtraParams, " + | 232 | "?ProfileHollow, ?Texture, ?ExtraParams, " + |
233 | "?State, ?Media)"; | 233 | "?State, ?Media, ?DynAttrs)"; |
234 | 234 | ||
235 | FillShapeCommand(cmd, prim); | 235 | FillShapeCommand(cmd, prim); |
236 | 236 | ||
@@ -1291,6 +1291,11 @@ namespace OpenSim.Data.MySQL | |||
1291 | 1291 | ||
1292 | if (!(row["MediaURL"] is System.DBNull)) | 1292 | if (!(row["MediaURL"] is System.DBNull)) |
1293 | prim.MediaUrl = (string)row["MediaURL"]; | 1293 | prim.MediaUrl = (string)row["MediaURL"]; |
1294 | |||
1295 | if (!(row["DynAttrs"] is System.DBNull)) | ||
1296 | prim.DynAttrs = DynAttrsOSDMap.FromXml((string)row["DynAttrs"]); | ||
1297 | else | ||
1298 | prim.DynAttrs = new DynAttrsOSDMap(); | ||
1294 | 1299 | ||
1295 | return prim; | 1300 | return prim; |
1296 | } | 1301 | } |
@@ -1637,6 +1642,7 @@ namespace OpenSim.Data.MySQL | |||
1637 | 1642 | ||
1638 | cmd.Parameters.AddWithValue("LinkNumber", prim.LinkNum); | 1643 | cmd.Parameters.AddWithValue("LinkNumber", prim.LinkNum); |
1639 | cmd.Parameters.AddWithValue("MediaURL", prim.MediaUrl); | 1644 | cmd.Parameters.AddWithValue("MediaURL", prim.MediaUrl); |
1645 | cmd.Parameters.AddWithValue("DynAttrs", prim.DynAttrs.ToXml()); | ||
1640 | } | 1646 | } |
1641 | 1647 | ||
1642 | /// <summary> | 1648 | /// <summary> |
@@ -1829,6 +1835,11 @@ namespace OpenSim.Data.MySQL | |||
1829 | 1835 | ||
1830 | if (!(row["Media"] is System.DBNull)) | 1836 | if (!(row["Media"] is System.DBNull)) |
1831 | s.Media = PrimitiveBaseShape.MediaList.FromXml((string)row["Media"]); | 1837 | s.Media = PrimitiveBaseShape.MediaList.FromXml((string)row["Media"]); |
1838 | |||
1839 | if (!(row["DynAttrs"] is System.DBNull)) | ||
1840 | s.DynAttrs = DynAttrsOSDMap.FromXml((string)row["DynAttrs"]); | ||
1841 | else | ||
1842 | s.DynAttrs = new DynAttrsOSDMap(); | ||
1832 | 1843 | ||
1833 | return s; | 1844 | return s; |
1834 | } | 1845 | } |
@@ -1873,6 +1884,7 @@ namespace OpenSim.Data.MySQL | |||
1873 | cmd.Parameters.AddWithValue("ExtraParams", s.ExtraParams); | 1884 | cmd.Parameters.AddWithValue("ExtraParams", s.ExtraParams); |
1874 | cmd.Parameters.AddWithValue("State", s.State); | 1885 | cmd.Parameters.AddWithValue("State", s.State); |
1875 | cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml()); | 1886 | cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml()); |
1887 | cmd.Parameters.AddWithValue("DynAttrs", s.DynAttrs.ToXml()); | ||
1876 | } | 1888 | } |
1877 | 1889 | ||
1878 | public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) | 1890 | public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) |
diff --git a/OpenSim/Data/MySQL/Resources/RegionStore.migrations b/OpenSim/Data/MySQL/Resources/RegionStore.migrations index 5b59779..1a38836 100644 --- a/OpenSim/Data/MySQL/Resources/RegionStore.migrations +++ b/OpenSim/Data/MySQL/Resources/RegionStore.migrations | |||
@@ -902,3 +902,12 @@ BEGIN; | |||
902 | CREATE TABLE `regionextra` (`RegionID` char(36) not null, `Name` varchar(32) not null, `value` text, primary key(`RegionID`, `Name`)); | 902 | CREATE TABLE `regionextra` (`RegionID` char(36) not null, `Name` varchar(32) not null, `value` text, primary key(`RegionID`, `Name`)); |
903 | 903 | ||
904 | COMMIT; | 904 | COMMIT; |
905 | |||
906 | :VERSION 46 #---------------- Dynamic attributes | ||
907 | |||
908 | BEGIN; | ||
909 | |||
910 | ALTER TABLE prims ADD COLUMN DynAttrs TEXT; | ||
911 | ALTER TABLE primshapes ADD COLUMN DynAttrs TEXT; | ||
912 | |||
913 | COMMIT; | ||