mirror of
https://github.com/opensim/opensim.git
synced 2026-05-14 18:55:39 +08:00
store linksetdata in sqlite and pgsql
This commit is contained in:
@@ -158,6 +158,11 @@ namespace OpenSim.Data.PGSQL
|
||||
}
|
||||
|
||||
grp = new SceneObjectGroup(sceneObjectPart);
|
||||
if (reader["lnkstBinData"] is not DBNull)
|
||||
{
|
||||
byte[] data = (byte[])reader["lnkstBinData"];
|
||||
grp.LinksetData = LinksetData.FromBin(data);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -347,7 +352,7 @@ namespace OpenSim.Data.PGSQL
|
||||
""ClickAction"" = :ClickAction, ""Material"" = :Material, ""CollisionSound"" = :CollisionSound, ""CollisionSoundVolume"" = :CollisionSoundVolume, ""PassTouches"" = :PassTouches,
|
||||
""LinkNumber"" = :LinkNumber, ""MediaURL"" = :MediaURL, ""DynAttrs"" = :DynAttrs, ""Vehicle"" = :Vehicle,
|
||||
""PhysInertia"" = :PhysInertia, ""standtargetx"" =:standtargetx, ""standtargety"" =:standtargety, ""standtargetz"" =:standtargetz,
|
||||
""sitactrange"" =:sitactrange, ""pseudocrc"" = :pseudocrc, ""sopanims"" = :sopanims
|
||||
""sitactrange"" =:sitactrange, ""pseudocrc"" = :pseudocrc, ""sopanims"" = :sopanims, ""lnkstBinData"" = :lnkstBinData
|
||||
|
||||
WHERE ""UUID"" = :UUID ;
|
||||
|
||||
@@ -363,7 +368,7 @@ namespace OpenSim.Data.PGSQL
|
||||
""ForceMouselook"", ""ScriptAccessPin"", ""AllowedDrop"", ""DieAtEdge"", ""SalePrice"", ""SaleType"", ""ColorR"", ""ColorG"", ""ColorB"", ""ColorA"",
|
||||
""ParticleSystem"", ""ClickAction"", ""Material"", ""CollisionSound"", ""CollisionSoundVolume"", ""PassTouches"", ""LinkNumber"", ""MediaURL"", ""DynAttrs"",
|
||||
""PhysicsShapeType"", ""Density"", ""GravityModifier"", ""Friction"", ""Restitution"", ""PassCollisions"", ""RotationAxisLocks"", ""RezzerID"" , ""Vehicle"", ""PhysInertia"",
|
||||
""standtargetx"", ""standtargety"", ""standtargetz"", ""sitactrange"", ""pseudocrc"",""sopanims""
|
||||
""standtargetx"", ""standtargety"", ""standtargetz"", ""sitactrange"", ""pseudocrc"",""sopanims"",""lnkstBinData""
|
||||
) Select
|
||||
:UUID, :CreationDate, :Name, :Text, :Description, :SitName, :TouchName, :ObjectFlags, :OwnerMask, :NextOwnerMask, :GroupMask,
|
||||
:EveryoneMask, :BaseMask, :PositionX, :PositionY, :PositionZ, :GroupPositionX, :GroupPositionY, :GroupPositionZ, :VelocityX,
|
||||
@@ -1871,6 +1876,11 @@ namespace OpenSim.Data.PGSQL
|
||||
else
|
||||
parameters.Add(_Database.CreateParameter("sopanims", null));
|
||||
|
||||
if (prim.IsRoot && prim.ParentGroup.LinksetData is not null)
|
||||
parameters.Add(_Database.CreateParameter("lnkstBinData", prim.ParentGroup.LinksetData.ToBin()));
|
||||
else
|
||||
parameters.Add(_Database.CreateParameter("lnkstBinData", null));
|
||||
|
||||
return parameters.ToArray();
|
||||
}
|
||||
|
||||
|
||||
@@ -1261,3 +1261,8 @@ BEGIN;
|
||||
ALTER TABLE `prims` ADD COLUMN `sopanims` bytea NULL;
|
||||
ALTER TABLE `primshapes` ADD COLUMN `MatOvrd` bytea NULL;
|
||||
COMMIT;
|
||||
|
||||
:VERSION 53 #----- add linkset data binary storage column
|
||||
BEGIN;
|
||||
ALTER TABLE `prims` ADD COLUMN `lnkstBinData` bytea NULL;
|
||||
COMMIT;
|
||||
|
||||
@@ -405,3 +405,8 @@ BEGIN;
|
||||
ALTER TABLE `prims` ADD COLUMN `sopanims` blob default NULL;
|
||||
ALTER TABLE `primshapes` ADD COLUMN `MatOvrd` blob default NULL;
|
||||
COMMIT;
|
||||
|
||||
:VERSION 41 #----- add linkset data binary storage column
|
||||
BEGIN;
|
||||
ALTER TABLE `prims` ADD COLUMN `lnkstBinData` blob default NULL;
|
||||
COMMIT;
|
||||
|
||||
@@ -657,6 +657,12 @@ namespace OpenSim.Data.SQLite
|
||||
|
||||
SceneObjectGroup group = new SceneObjectGroup(prim);
|
||||
|
||||
if (primRow["lnkstBinData"] is not DBNull)
|
||||
{
|
||||
byte[] data = (byte[])primRow["lnkstBinData"];
|
||||
group.LinksetData = LinksetData.FromBin(data);
|
||||
}
|
||||
|
||||
createdObjects.Add(group.UUID, group);
|
||||
retvals.Add(group);
|
||||
LoadItems(prim);
|
||||
@@ -1244,6 +1250,8 @@ namespace OpenSim.Data.SQLite
|
||||
createCol(prims, "pseudocrc", typeof(int));
|
||||
createCol(prims, "sopanims", typeof(byte[]));
|
||||
|
||||
createCol(prims, "lnkstBinData", typeof(byte[]));
|
||||
|
||||
// Add in contraints
|
||||
prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] };
|
||||
|
||||
@@ -2196,6 +2204,10 @@ namespace OpenSim.Data.SQLite
|
||||
row["pseudocrc"] = prim.PseudoCRC;
|
||||
row["sopanims"] = prim.SerializeAnimations();
|
||||
|
||||
if (prim.IsRoot && prim.ParentGroup.LinksetData is not null)
|
||||
row["lnkstBinData"] = prim.ParentGroup.LinksetData.ToBin();
|
||||
else
|
||||
row["lnkstBinData"] = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user