From a583d8ad70daad8c755c2f43e2f2af7bc5b7ee4d Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Sat, 14 Feb 2009 19:47:02 +0000 Subject: Thank you kindly, TLaukkan (Tommil) for a patch that: * Created value object for EstateRegionLink for storing the estate region relationship. * Refactored slightly NHibernateManager and NHibernateXXXXData implementations for accesing nhibernate generated ID on insert. ** Changed NHibernateManager.Save method name to Insert as it does Insert. ** Changed NHibernateManager.Save return value object as ID can be both UUID and uint currently. ** Changed NHibernateManager.Load method Id parameter to object as it can be both UUID and uint. * Created NHibernateEstateData implementation. This is the actual estate storage. * Created NHibernate mapping files for both EstateSettings and EstateRegionLink * Created MigrationSyntaxDifferences.txt files to write notes about differences in migration scripts between different databases. * Created estate storage migration scripts for all four databases. * Created estate unit test classes for all four databases. * Updated one missing field to BasicEstateTest.cs * Tested NHibernate unit tests with NUnit GUI. Asset databases fail but that is not related to this patch. * Tested build with both Visual Studio and nant. * Executed build tests with nant succesfully. --- .../Resources/MySQLDialect/001_EstateStore.sql | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql (limited to 'OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql') diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql new file mode 100644 index 0000000..a791bc6 --- /dev/null +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql @@ -0,0 +1,40 @@ +CREATE TABLE EstateSettings ( + EstateID INT NOT NULL, + ParentEstateID INT DEFAULT NULL, + EstateOwnerID VARCHAR(36) DEFAULT NULL, + Name VARCHAR(64) DEFAULT NULL, + RedirectGridX INT DEFAULT NULL, + RedirectGridY INT DEFAULT NULL, + BillableFactor DOUBLE DEFAULT NULL, + PricePerMeter INT DEFAULT NULL, + SunPosition DOUBLE DEFAULT NULL, + + UseGlobalTime BIT DEFAULT NULL, + FixedSun BIT DEFAULT NULL, + AllowVoice BIT DEFAULT NULL, + AllowDirectTeleport BIT DEFAULT NULL, + ResetHomeOnTeleport BIT DEFAULT NULL, + PublicAccess BIT DEFAULT NULL, + DenyAnonymous BIT DEFAULT NULL, + DenyIdentified BIT DEFAULT NULL, + DenyTransacted BIT DEFAULT NULL, + DenyMinors BIT DEFAULT NULL, + BlockDwell BIT DEFAULT NULL, + EstateSkipScripts BIT DEFAULT NULL, + TaxFree BIT DEFAULT NULL, + AbuseEmailToEstateOwner BIT DEFAULT NULL, + + AbuseEmail VARCHAR(255) DEFAULT NULL, + + PRIMARY KEY (EstateID) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1'; + +CREATE TABLE EstateRegionLink ( + EstateRegionLinkID VARCHAR(36) NOT NULL, + EstateID INT DEFAULT NULL, + RegionID VARCHAR(36) DEFAULT NULL, + PRIMARY KEY (EstateRegionLinkID) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1'; + +CREATE INDEX EstateRegionLinkEstateIDIndex ON EstateRegionLink (EstateID); +CREATE INDEX EstateRegionLinkERegionIDIndex ON EstateRegionLink (RegionID); -- cgit v1.1