OpenSimMirror/share/sql/sqlite3-prims.sql

89 lines
2.4 KiB
SQL

--
-- Database schema for local prim storage
--
--
-- Some type mappings
-- LLUID => char(36) (in ascii hex format)
-- uint => integer
-- string => varchar(256) until such time as we know we need bigger
create table prims (
UUID char(36) primary key, -- this.UUID
ParentID integer default 0, -- this.ParentID
CreationDate integer, -- this.CreationDate
Name varchar(256),
-- various text fields
Text varchar(256),
Description varchar(256),
SitName varchar(256),
TouchName varchar(256),
-- permissions
CreatorID char(36),
OwnerID char(36),
GroupID char(36),
LastOwnerID char(36),
OwnerMask integer,
NextOwnerMask integer,
GroupMask integer,
EveryoneMask integer,
BaseMask integer,
-- vectors (converted from LLVector3)
PositionX float,
PositionY float,
PositionZ float,
VelocityX float,
VelocityY float,
VelocityZ float,
AngularVelocityX float,
AngularVelocityY float,
AngularVelocityZ float,
AccelerationX float,
AccelerationY float,
AccelerationZ float,
-- quaternions (converted from LLQuaternion)
RotationX float,
RotationY float,
RotationZ float,
RotationW float
);
create index prims_parent on prims(ParentID);
create index prims_ownerid on prims(OwnerID);
create index prims_lastownerid on prims(LastOwnerID);
create table primshapes (
-- The same UUID as prim, just to keep them easily linked
UUID varchar(36) primary key not null,
-- Shape is an enum
Shape integer,
-- vectors (converted from LLVector3)
ScaleX float,
ScaleY float,
ScaleZ float,
-- paths
PCode integer,
PathBegin integer,
PathEnd integer,
PathScaleX integer,
PathScaleY integer,
PathShearX integer,
PathShearY integer,
PathSkew integer,
PathCurve integer,
PathRadiusOffset integer,
PathRevolutions integer,
PathTaperX integer,
PathTaperY integer,
PathTwist integer,
PathTwistBegin integer,
-- profile
ProfileBegin integer,
ProfileEnd integer,
ProfileCurve integer,
ProfileHollow integer,
-- text
Texture blob
);
create index primshapes_parentid on primshapes(prim_id);