aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2010-04-30 21:37:31 +0100
committerJustin Clark-Casey (justincc)2010-04-30 21:37:31 +0100
commit8966ed9c82c8199bf0da61815d04d485d67aa34a (patch)
tree9e23144ffa4f38a2608572d731c40d72e44108b2
parentFix a bunch of issues that crop up after the naive porting of the new sqlite ... (diff)
downloadopensim-SC-8966ed9c82c8199bf0da61815d04d485d67aa34a.zip
opensim-SC-8966ed9c82c8199bf0da61815d04d485d67aa34a.tar.gz
opensim-SC-8966ed9c82c8199bf0da61815d04d485d67aa34a.tar.bz2
opensim-SC-8966ed9c82c8199bf0da61815d04d485d67aa34a.tar.xz
fix an issue with user appearance where the new sqlite db adapter expects directly specification of byte[] type rather than base64 strings
Diffstat (limited to '')
-rw-r--r--OpenSim/Data/SQLite/SQLiteUserData.cs37
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql18
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql9
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql10
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql17
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql5
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql5
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql5
8 files changed, 25 insertions, 81 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteUserData.cs b/OpenSim/Data/SQLite/SQLiteUserData.cs
index 12db403..bffc0d0 100644
--- a/OpenSim/Data/SQLite/SQLiteUserData.cs
+++ b/OpenSim/Data/SQLite/SQLiteUserData.cs
@@ -108,22 +108,32 @@ namespace OpenSim.Data.SQLite
108 108
109 lock (ds) 109 lock (ds)
110 { 110 {
111 Console.WriteLine("Here1");
111 ds.Tables.Add(createUsersTable()); 112 ds.Tables.Add(createUsersTable());
112 ds.Tables.Add(createUserAgentsTable()); 113 ds.Tables.Add(createUserAgentsTable());
113 ds.Tables.Add(createUserFriendsTable()); 114 ds.Tables.Add(createUserFriendsTable());
114 ds.Tables.Add(createAvatarAppearanceTable()); 115 ds.Tables.Add(createAvatarAppearanceTable());
115 116
117 Console.WriteLine("Here2");
116 setupUserCommands(da, conn); 118 setupUserCommands(da, conn);
117 da.Fill(ds.Tables["users"]); 119 da.Fill(ds.Tables["users"]);
120 CreateDataSetMapping(da, "users");
118 121
122 Console.WriteLine("Here3");
119 setupAgentCommands(dua, conn); 123 setupAgentCommands(dua, conn);
120 dua.Fill(ds.Tables["useragents"]); 124 dua.Fill(ds.Tables["useragents"]);
125 CreateDataSetMapping(dua, "useragents");
121 126
127 Console.WriteLine("Here4");
122 setupUserFriendsCommands(daf, conn); 128 setupUserFriendsCommands(daf, conn);
123 daf.Fill(ds.Tables["userfriends"]); 129 daf.Fill(ds.Tables["userfriends"]);
130 CreateDataSetMapping(daf, "userfriends");
124 131
132 Console.WriteLine("Here5");
125 setupAvatarAppearanceCommands(daa, conn); 133 setupAvatarAppearanceCommands(daa, conn);
126 daa.Fill(ds.Tables["avatarappearance"]); 134 daa.Fill(ds.Tables["avatarappearance"]);
135 CreateDataSetMapping(daa, "avatarappearance");
136 Console.WriteLine("Here6");
127 } 137 }
128 138
129 return; 139 return;
@@ -706,15 +716,10 @@ namespace OpenSim.Data.SQLite
706 aa.SkirtItem = new UUID((String)row["SkirtItem"]); 716 aa.SkirtItem = new UUID((String)row["SkirtItem"]);
707 aa.SkirtAsset = new UUID((String)row["SkirtAsset"]); 717 aa.SkirtAsset = new UUID((String)row["SkirtAsset"]);
708 718
709 // Ewe Loon 719 byte[] texture = (byte[])row["Texture"];
710 // Used Base64String because for some reason it wont accept using Byte[] (which works in Region date)
711
712 String str = (String)row["Texture"];
713 byte[] texture = Convert.FromBase64String(str);
714 aa.Texture = new Primitive.TextureEntry(texture, 0, texture.Length); 720 aa.Texture = new Primitive.TextureEntry(texture, 0, texture.Length);
715 721
716 str = (String)row["VisualParams"]; 722 byte[] VisualParams = (byte[])row["VisualParams"];
717 byte[] VisualParams = Convert.FromBase64String(str);
718 aa.VisualParams = VisualParams; 723 aa.VisualParams = VisualParams;
719 724
720 aa.Serial = Convert.ToInt32(row["Serial"]); 725 aa.Serial = Convert.ToInt32(row["Serial"]);
@@ -793,6 +798,15 @@ namespace OpenSim.Data.SQLite
793 * 798 *
794 **********************************************************************/ 799 **********************************************************************/
795 800
801 protected void CreateDataSetMapping(IDataAdapter da, string tableName)
802 {
803 ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
804 foreach (DataColumn col in ds.Tables[tableName].Columns)
805 {
806 dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
807 }
808 }
809
796 /// <summary> 810 /// <summary>
797 /// Create the "users" table 811 /// Create the "users" table
798 /// </summary> 812 /// </summary>
@@ -924,9 +938,8 @@ namespace OpenSim.Data.SQLite
924 SQLiteUtil.createCol(aa, "SkirtItem", typeof(String)); 938 SQLiteUtil.createCol(aa, "SkirtItem", typeof(String));
925 SQLiteUtil.createCol(aa, "SkirtAsset", typeof(String)); 939 SQLiteUtil.createCol(aa, "SkirtAsset", typeof(String));
926 940
927 // Used Base64String because for some reason it wont accept using Byte[] (which works in Region date) 941 SQLiteUtil.createCol(aa, "Texture", typeof (Byte[]));
928 SQLiteUtil.createCol(aa, "Texture", typeof (String)); 942 SQLiteUtil.createCol(aa, "VisualParams", typeof (Byte[]));
929 SQLiteUtil.createCol(aa, "VisualParams", typeof (String));
930 943
931 SQLiteUtil.createCol(aa, "Serial", typeof(Int32)); 944 SQLiteUtil.createCol(aa, "Serial", typeof(Int32));
932 SQLiteUtil.createCol(aa, "AvatarHeight", typeof(Double)); 945 SQLiteUtil.createCol(aa, "AvatarHeight", typeof(Double));
@@ -1090,8 +1103,8 @@ namespace OpenSim.Data.SQLite
1090 row["SkirtAsset"] = appearance.SkirtAsset.ToString(); 1103 row["SkirtAsset"] = appearance.SkirtAsset.ToString();
1091 1104
1092 // Used Base64String because for some reason it wont accept using Byte[] (which works in Region date) 1105 // Used Base64String because for some reason it wont accept using Byte[] (which works in Region date)
1093 row["Texture"] = Convert.ToBase64String(appearance.Texture.GetBytes()); 1106 row["Texture"] = appearance.Texture.GetBytes();
1094 row["VisualParams"] = Convert.ToBase64String(appearance.VisualParams); 1107 row["VisualParams"] = appearance.VisualParams;
1095 1108
1096 row["Serial"] = appearance.Serial; 1109 row["Serial"] = appearance.Serial;
1097 row["AvatarHeight"] = appearance.AvatarHeight; 1110 row["AvatarHeight"] = appearance.AvatarHeight;
diff --git a/OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql
deleted file mode 100644
index 468567d..0000000
--- a/OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql
+++ /dev/null
@@ -1,18 +0,0 @@
1BEGIN TRANSACTION;
2
3CREATE TABLE auth (
4 UUID char(36) NOT NULL,
5 passwordHash char(32) NOT NULL default '',
6 passwordSalt char(32) NOT NULL default '',
7 webLoginKey varchar(255) NOT NULL default '',
8 accountType VARCHAR(32) NOT NULL DEFAULT 'UserAccount',
9 PRIMARY KEY (`UUID`)
10);
11
12CREATE TABLE tokens (
13 UUID char(36) NOT NULL,
14 token varchar(255) NOT NULL,
15 validity datetime NOT NULL
16);
17
18COMMIT;
diff --git a/OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql
deleted file mode 100644
index 7ec906b..0000000
--- a/OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql
+++ /dev/null
@@ -1,9 +0,0 @@
1BEGIN TRANSACTION;
2
3CREATE TABLE Avatars (
4 PrincipalID CHAR(36) NOT NULL,
5 Name VARCHAR(32) NOT NULL,
6 Value VARCHAR(255) NOT NULL DEFAULT '',
7 PRIMARY KEY(PrincipalID, Name));
8
9COMMIT;
diff --git a/OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql
deleted file mode 100644
index f1b9ab9..0000000
--- a/OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql
+++ /dev/null
@@ -1,10 +0,0 @@
1BEGIN TRANSACTION;
2
3CREATE TABLE `Friends` (
4 `PrincipalID` CHAR(36) NOT NULL,
5 `Friend` VARCHAR(255) NOT NULL,
6 `Flags` VARCHAR(16) NOT NULL DEFAULT 0,
7 `Offered` VARCHAR(32) NOT NULL DEFAULT 0,
8 PRIMARY KEY(`PrincipalID`, `Friend`));
9
10COMMIT;
diff --git a/OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql
deleted file mode 100644
index c38d9a7..0000000
--- a/OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql
+++ /dev/null
@@ -1,17 +0,0 @@
1BEGIN TRANSACTION;
2
3-- useraccounts table
4CREATE TABLE UserAccounts (
5 PrincipalID CHAR(36) primary key,
6 ScopeID CHAR(36) NOT NULL,
7 FirstName VARCHAR(64) NOT NULL,
8 LastName VARCHAR(64) NOT NULL,
9 Email VARCHAR(64),
10 ServiceURLs TEXT,
11 Created INT(11),
12 UserLevel integer NOT NULL DEFAULT 0,
13 UserFlags integer NOT NULL DEFAULT 0,
14 UserTitle varchar(64) NOT NULL DEFAULT ''
15);
16
17COMMIT; \ No newline at end of file
diff --git a/OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql
deleted file mode 100644
index 3237b68..0000000
--- a/OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql
+++ /dev/null
@@ -1,5 +0,0 @@
1BEGIN TRANSACTION;
2
3INSERT INTO auth (UUID, passwordHash, passwordSalt, webLoginKey) SELECT `UUID` AS UUID, `passwordHash` AS passwordHash, `passwordSalt` AS passwordSalt, `webLoginKey` AS webLoginKey FROM users;
4
5COMMIT;
diff --git a/OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql
deleted file mode 100644
index 6733502..0000000
--- a/OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql
+++ /dev/null
@@ -1,5 +0,0 @@
1BEGIN TRANSACTION;
2
3INSERT INTO `Friends` SELECT `ownerID`, `friendID`, `friendPerms`, 0 FROM `userfriends`;
4
5COMMIT;
diff --git a/OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql
deleted file mode 100644
index c7a6293..0000000
--- a/OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql
+++ /dev/null
@@ -1,5 +0,0 @@
1BEGIN TRANSACTION;
2
3INSERT INTO UserAccounts (PrincipalID, ScopeID, FirstName, LastName, Email, ServiceURLs, Created) SELECT `UUID` AS PrincipalID, '00000000-0000-0000-0000-000000000000' AS ScopeID, username AS FirstName, surname AS LastName, '' as Email, '' AS ServiceURLs, created as Created FROM users;
4
5COMMIT;