From 631e10f269210cc352acc453fe04f56343c73360 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Thu, 19 Feb 2009 18:31:45 +0000 Subject: * Apply http://opensimulator.org/mantis/view.php?id=3151 * Fixes NHibernate overflow exception when saving some objects (under at least PostgreSQL 8.3) * Thanks Tommil! --- .../Resources/MsSql2005Dialect/001_InventoryStore.sql | 2 +- .../Resources/MsSql2005Dialect/001_RegionStore.sql | 10 +++++----- .../NHibernate/Resources/MySQLDialect/001_AssetStore.sql | 2 +- .../NHibernate/Resources/MySQLDialect/001_InventoryStore.sql | 6 +++--- .../NHibernate/Resources/MySQLDialect/001_RegionStore.sql | 1 - .../Resources/PostgreSQLDialect/001_InventoryStore.sql | 6 +++--- .../Resources/PostgreSQLDialect/001_RegionStore.sql | 11 +++++------ .../NHibernate/Resources/SQLiteDialect/001_AssetStore.sql | 2 +- .../Resources/SQLiteDialect/001_InventoryStore.sql | 6 +++--- .../NHibernate/Resources/SQLiteDialect/001_RegionStore.sql | 1 - OpenSim/Data/NHibernate/UInt16Type.cs | 6 +++--- OpenSim/Data/Tests/BasicRegionTest.cs | 12 ++++++++++++ 12 files changed, 37 insertions(+), 28 deletions(-) (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_InventoryStore.sql b/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_InventoryStore.sql index 37ba733..82936c4 100644 --- a/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_InventoryStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_InventoryStore.sql @@ -1,7 +1,7 @@ create table InventoryFolders ( ID NVARCHAR(255) not null, Type SMALLINT null, - Version SMALLINT null, + Version INT null, ParentID NVARCHAR(255) null, Owner NVARCHAR(255) null, Name NVARCHAR(64) null, diff --git a/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_RegionStore.sql b/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_RegionStore.sql index 56ad905..f388f1a 100644 --- a/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_RegionStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_RegionStore.sql @@ -49,8 +49,8 @@ create table Prims ( ScaleY REAL null, ScaleZ REAL null, PCode TINYINT null, - PathBegin SMALLINT null, - PathEnd SMALLINT null, + PathBegin INT null, + PathEnd INT null, PathScaleX TINYINT null, PathScaleY TINYINT null, PathShearX TINYINT null, @@ -62,10 +62,10 @@ create table Prims ( PathTaperX TINYINT null, PathTaperY TINYINT null, PathTwist TINYINT null, - ProfileBegin SMALLINT null, - ProfileEnd SMALLINT null, + ProfileBegin INT null, + ProfileEnd INT null, ProfileCurve TINYINT null, - ProfileHollow SMALLINT null, + ProfileHollow INT null, Texture VARBINARY(8000) null, ExtraParams VARBINARY(8000) null, State TINYINT null, diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_AssetStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_AssetStore.sql index 9573781..cd0958d 100644 --- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_AssetStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_AssetStore.sql @@ -1,6 +1,6 @@ CREATE TABLE Assets ( ID VARCHAR(36) NOT NULL, - Type TINYINT DEFAULT NULL, + Type SMALLINT DEFAULT NULL, Name VARCHAR(64) DEFAULT NULL, Description VARCHAR(64) DEFAULT NULL, Local BIT DEFAULT NULL, diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_InventoryStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_InventoryStore.sql index 13d8cf6..93d282b 100644 --- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_InventoryStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_InventoryStore.sql @@ -1,7 +1,7 @@ CREATE TABLE InventoryFolders ( ID VARCHAR(36) NOT NULL, Type SMALLINT DEFAULT NULL, - Version SMALLINT DEFAULT NULL, + Version INT DEFAULT NULL, ParentID VARCHAR(36) DEFAULT NULL, Owner VARCHAR(36) DEFAULT NULL, Name VARCHAR(64) DEFAULT NULL, @@ -13,8 +13,8 @@ CREATE INDEX InventoryFoldersParentIdIndex ON InventoryFolders (ParentID); CREATE TABLE InventoryItems ( ID VARCHAR(36) NOT NULL, - InvType SMALLINT DEFAULT NULL, - AssetType SMALLINT DEFAULT NULL, + InvType INT DEFAULT NULL, + AssetType INT DEFAULT NULL, AssetID VARCHAR(36) DEFAULT NULL, Folder VARCHAR(36) DEFAULT NULL, Owner VARCHAR(36) DEFAULT NULL, diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_RegionStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_RegionStore.sql index e44f012..74f67f2 100644 --- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_RegionStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_RegionStore.sql @@ -71,7 +71,6 @@ CREATE TABLE Prims ( PathTaperX INT DEFAULT NULL, PathTaperY INT DEFAULT NULL, PathTwist INT DEFAULT NULL, - PathTwistBegin INT DEFAULT NULL, ProfileBegin INT DEFAULT NULL, ProfileEnd INT DEFAULT NULL, ProfileCurve INT DEFAULT NULL, diff --git a/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_InventoryStore.sql b/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_InventoryStore.sql index 9d0f711..42af659 100644 --- a/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_InventoryStore.sql +++ b/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_InventoryStore.sql @@ -1,7 +1,7 @@ CREATE TABLE InventoryFolders ( ID VARCHAR(36) NOT NULL, Type SMALLINT DEFAULT NULL, - Version SMALLINT DEFAULT NULL, + Version INT DEFAULT NULL, ParentID VARCHAR(36) DEFAULT NULL, Owner VARCHAR(36) DEFAULT NULL, Name VARCHAR(64) DEFAULT NULL, @@ -13,8 +13,8 @@ CREATE INDEX InventoryFoldersParentIdIndex ON InventoryFolders (ParentID); CREATE TABLE InventoryItems ( ID VARCHAR(36) NOT NULL, - InvType SMALLINT DEFAULT NULL, - AssetType SMALLINT DEFAULT NULL, + InvType INT DEFAULT NULL, + AssetType INT DEFAULT NULL, AssetID VARCHAR(36) DEFAULT NULL, Folder VARCHAR(36) DEFAULT NULL, Owner VARCHAR(36) DEFAULT NULL, diff --git a/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_RegionStore.sql b/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_RegionStore.sql index ff227c1..25c3945 100644 --- a/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_RegionStore.sql +++ b/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_RegionStore.sql @@ -58,8 +58,8 @@ CREATE TABLE Prims ( ScaleY DOUBLE PRECISION DEFAULT NULL, ScaleZ DOUBLE PRECISION DEFAULT NULL, PCode INT DEFAULT NULL, - PathBegin SMALLINT DEFAULT NULL, - PathEnd SMALLINT DEFAULT NULL, + PathBegin INT DEFAULT NULL, + PathEnd INT DEFAULT NULL, PathScaleX INT DEFAULT NULL, PathScaleY INT DEFAULT NULL, PathShearX INT DEFAULT NULL, @@ -71,11 +71,10 @@ CREATE TABLE Prims ( PathTaperX SMALLINT DEFAULT NULL, PathTaperY SMALLINT DEFAULT NULL, PathTwist SMALLINT DEFAULT NULL, - PathTwistBegin INT DEFAULT NULL, - ProfileBegin SMALLINT DEFAULT NULL, - ProfileEnd SMALLINT DEFAULT NULL, + ProfileBegin INT DEFAULT NULL, + ProfileEnd INT DEFAULT NULL, ProfileCurve INT DEFAULT NULL, - ProfileHollow SMALLINT DEFAULT NULL, + ProfileHollow INT DEFAULT NULL, State INT DEFAULT NULL, Texture BYTEA, ExtraParams BYTEA, diff --git a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_AssetStore.sql b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_AssetStore.sql index 15e10b3..aedf764 100644 --- a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_AssetStore.sql +++ b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_AssetStore.sql @@ -1,6 +1,6 @@ CREATE TABLE Assets ( ID VARCHAR(36) NOT NULL, - Type TINYINT DEFAULT NULL, + Type SMALLINT DEFAULT NULL, Name VARCHAR(64) DEFAULT NULL, Description VARCHAR(64) DEFAULT NULL, Local BIT DEFAULT NULL, diff --git a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_InventoryStore.sql b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_InventoryStore.sql index 5f4dcaa..38978ee 100644 --- a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_InventoryStore.sql +++ b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_InventoryStore.sql @@ -1,7 +1,7 @@ CREATE TABLE InventoryFolders ( ID VARCHAR(36) NOT NULL, Type SMALLINT DEFAULT NULL, - Version SMALLINT DEFAULT NULL, + Version INT DEFAULT NULL, ParentID VARCHAR(36) DEFAULT NULL, Owner VARCHAR(36) DEFAULT NULL, Name VARCHAR(64) DEFAULT NULL, @@ -13,8 +13,8 @@ CREATE INDEX InventoryFoldersParentIdIndex ON InventoryFolders (ParentID); CREATE TABLE InventoryItems ( ID VARCHAR(36) NOT NULL, - InvType SMALLINT DEFAULT NULL, - AssetType SMALLINT DEFAULT NULL, + InvType INT DEFAULT NULL, + AssetType INT DEFAULT NULL, AssetID VARCHAR(36) DEFAULT NULL, Folder VARCHAR(36) DEFAULT NULL, Owner VARCHAR(36) DEFAULT NULL, diff --git a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_RegionStore.sql b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_RegionStore.sql index 7b591be..1cf5e15 100644 --- a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_RegionStore.sql +++ b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_RegionStore.sql @@ -71,7 +71,6 @@ CREATE TABLE Prims ( PathTaperX INT DEFAULT NULL, PathTaperY INT DEFAULT NULL, PathTwist INT DEFAULT NULL, - PathTwistBegin INT DEFAULT NULL, ProfileBegin INT DEFAULT NULL, ProfileEnd INT DEFAULT NULL, ProfileCurve INT DEFAULT NULL, diff --git a/OpenSim/Data/NHibernate/UInt16Type.cs b/OpenSim/Data/NHibernate/UInt16Type.cs index 907e832..05b9ce6 100644 --- a/OpenSim/Data/NHibernate/UInt16Type.cs +++ b/OpenSim/Data/NHibernate/UInt16Type.cs @@ -73,7 +73,7 @@ namespace OpenSim.Data.NHibernate int ord = rs.GetOrdinal(names[0]); if (!rs.IsDBNull(ord)) { - uint1 = (UInt16)rs.GetInt16(ord); + uint1 = (UInt16)rs.GetInt32(ord); } return uint1; @@ -82,7 +82,7 @@ namespace OpenSim.Data.NHibernate public void NullSafeSet(IDbCommand cmd, object obj, int index) { UInt16 uint1 = (UInt16)obj; - ((IDataParameter)cmd.Parameters[index]).Value = Convert.ToInt16(uint1); + ((IDataParameter)cmd.Parameters[index]).Value = Convert.ToInt32(uint1); } public object Replace(object original, object target, object owner) @@ -97,7 +97,7 @@ namespace OpenSim.Data.NHibernate public SqlType[] SqlTypes { - get { return new SqlType [] { NHibernateUtil.Int16.SqlType }; } + get { return new SqlType [] { NHibernateUtil.Int32.SqlType }; } } } } diff --git a/OpenSim/Data/Tests/BasicRegionTest.cs b/OpenSim/Data/Tests/BasicRegionTest.cs index 8e58443..89cfd7f 100644 --- a/OpenSim/Data/Tests/BasicRegionTest.cs +++ b/OpenSim/Data/Tests/BasicRegionTest.cs @@ -243,6 +243,11 @@ namespace OpenSim.Data.Tests byte clickaction = (byte) random.Next(127); PrimitiveBaseShape pbshap = new PrimitiveBaseShape(); pbshap = PrimitiveBaseShape.Default; + pbshap.PathBegin = ushort.MaxValue; + pbshap.PathEnd = ushort.MaxValue; + pbshap.ProfileBegin = ushort.MaxValue; + pbshap.ProfileEnd = ushort.MaxValue; + pbshap.ProfileHollow = ushort.MaxValue; Vector3 scale = new Vector3(random.Next(),random.Next(),random.Next()); byte updatef = (byte) random.Next(127); @@ -366,7 +371,14 @@ namespace OpenSim.Data.Tests //Assert.That(linknum,Is.EqualTo(p.LinkNum)); Assert.That(clickaction,Is.EqualTo(p.ClickAction)); Assert.That(scale,Is.EqualTo(p.Scale)); + //Assert.That(updatef,Is.EqualTo(p.UpdateFlag)); + + Assert.That(pbshap.PathBegin, Is.EqualTo(p.Shape.PathBegin)); + Assert.That(pbshap.PathEnd, Is.EqualTo(p.Shape.PathEnd)); + Assert.That(pbshap.ProfileBegin, Is.EqualTo(p.Shape.ProfileBegin)); + Assert.That(pbshap.ProfileEnd, Is.EqualTo(p.Shape.ProfileEnd)); + Assert.That(pbshap.ProfileHollow, Is.EqualTo(p.Shape.ProfileHollow)); } [Test] -- cgit v1.1