aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2010-04-30 17:45:00 +0100
committerJustin Clark-Casey (justincc)2010-04-30 17:45:00 +0100
commitcc67de5b86ebcebadbe2ea46872a0dc63d99cae7 (patch)
tree1607da4eee9e63fe45e0abcf05da37ae5e239d70
parentMake SQLiteNG the default since it actually does work with Mono 2.4 on Linux. (diff)
downloadopensim-SC-cc67de5b86ebcebadbe2ea46872a0dc63d99cae7.zip
opensim-SC-cc67de5b86ebcebadbe2ea46872a0dc63d99cae7.tar.gz
opensim-SC-cc67de5b86ebcebadbe2ea46872a0dc63d99cae7.tar.bz2
opensim-SC-cc67de5b86ebcebadbe2ea46872a0dc63d99cae7.tar.xz
rename SQLiteNG to SQLite and SQLite to SQLiteLegacy
this seems the least evil way forward since mono 2.6 and later will see increasing usage, and this only works with what was SQLiteNG MAC USERS WILL NEED TO CHANGE REFERENCES TO "OpenSim.Data.SQLite.dll" to "OpenSim.Data.SQLiteLegacy.dll" in OpenSim.ini and config-include/StandaloneCommon.ini (if using standalone) See the OpenSim.ini.example and StandaloneCommon.ini.example files for more details This commit also temporarily changes unsigned ParentEstateID values in the OpenSim.Data.Tests to signed temporarily, since the new plugin enforces creation of signed fields in the database (which is what the SQL actually specifies). And change data columns in sqlite is a pita.
-rw-r--r--OpenSim/Data/SQLite/SQLiteAssetData.cs6
-rw-r--r--OpenSim/Data/SQLite/SQLiteAuthenticationData.cs23
-rw-r--r--OpenSim/Data/SQLite/SQLiteAvatarData.cs8
-rw-r--r--OpenSim/Data/SQLite/SQLiteEstateData.cs48
-rw-r--r--OpenSim/Data/SQLite/SQLiteFramework.cs14
-rw-r--r--OpenSim/Data/SQLite/SQLiteFriendsData.cs8
-rw-r--r--OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs18
-rw-r--r--OpenSim/Data/SQLite/SQLiteInventoryStore.cs13
-rw-r--r--OpenSim/Data/SQLite/SQLiteRegionData.cs259
-rw-r--r--OpenSim/Data/SQLite/SQLiteUserAccountData.cs4
-rw-r--r--OpenSim/Data/SQLite/SQLiteUtils.cs2
-rw-r--r--OpenSim/Data/SQLite/SQLiteXInventoryData.cs4
-rw-r--r--OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs (renamed from OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs)4
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_AssetStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_AssetStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_AuthStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_Avatar.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_FriendsStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_InventoryStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_InventoryStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_UserAccount.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/001_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_AssetStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_AssetStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_AuthStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_FriendsStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_InventoryStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_InventoryStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_UserAccount.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/002_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/003_AssetStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/003_AssetStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/003_InventoryStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/003_InventoryStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/003_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/003_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/003_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/003_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/004_AssetStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/004_AssetStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/004_InventoryStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/004_InventoryStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/004_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/004_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/004_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/004_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/005_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/005_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/005_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/005_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/006_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/006_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/006_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/006_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/007_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/007_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/007_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/007_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/008_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/008_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/008_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/008_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/009_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/009_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/009_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/009_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/010_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/010_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/010_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/010_UserStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/011_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/011_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/012_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/012_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/013_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/013_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/014_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/014_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/015_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/015_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/016_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/016_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/017_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/017_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/018_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/018_RegionStore.sql)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/Resources/OpenSim.Data.SQLite.addin.xml (renamed from OpenSim/Data/SQLiteNG/Resources/OpenSim.Data.SQLite.addin.xml)0
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteAssetData.cs)8
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs)25
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs)10
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteEstateData.cs)50
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteFramework.cs)16
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs)10
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs)20
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs)15
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteRegionData.cs)261
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs)6
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteUtils.cs)4
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs)6
-rw-r--r--OpenSim/Data/Tests/DataTestUtil.cs3
-rw-r--r--bin/OpenSim.ini.example10
-rw-r--r--bin/config-include/StandaloneCommon.ini.example8
-rw-r--r--bin/config-include/storage/SQLiteLegacyStandalone.ini (renamed from bin/config-include/storage/SQLiteNGStandalone.ini)2
-rw-r--r--prebuild.xml4
74 files changed, 435 insertions, 434 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs
index a032670..636bf86 100644
--- a/OpenSim/Data/SQLite/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs
@@ -30,7 +30,7 @@ using System.Data;
30using System.Reflection; 30using System.Reflection;
31using System.Collections.Generic; 31using System.Collections.Generic;
32using log4net; 32using log4net;
33using Mono.Data.SqliteClient; 33using Mono.Data.Sqlite;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36 36
@@ -137,7 +137,7 @@ namespace OpenSim.Data.SQLite
137 cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); 137 cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local));
138 cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); 138 cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary));
139 cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); 139 cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data));
140 140
141 cmd.ExecuteNonQuery(); 141 cmd.ExecuteNonQuery();
142 } 142 }
143 } 143 }
@@ -340,4 +340,4 @@ namespace OpenSim.Data.SQLite
340 340
341 #endregion 341 #endregion
342 } 342 }
343} \ No newline at end of file 343}
diff --git a/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs b/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
index aa10734..086ac0a 100644
--- a/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
@@ -31,7 +31,7 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using Mono.Data.SqliteClient; 34using Mono.Data.Sqlite;
35 35
36namespace OpenSim.Data.SQLite 36namespace OpenSim.Data.SQLite
37{ 37{
@@ -56,13 +56,8 @@ namespace OpenSim.Data.SQLite
56 m_Connection = new SqliteConnection(connectionString); 56 m_Connection = new SqliteConnection(connectionString);
57 m_Connection.Open(); 57 m_Connection.Open();
58 58
59 using (SqliteConnection dbcon = (SqliteConnection)((ICloneable)m_Connection).Clone()) 59 Migration m = new Migration(m_Connection, GetType().Assembly, "AuthStore");
60 { 60 m.Update();
61 dbcon.Open();
62 Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore");
63 m.Update();
64 dbcon.Close();
65 }
66 61
67 m_initialized = true; 62 m_initialized = true;
68 } 63 }
@@ -113,7 +108,7 @@ namespace OpenSim.Data.SQLite
113 } 108 }
114 finally 109 finally
115 { 110 {
116 CloseCommand(cmd); 111 //CloseCommand(cmd);
117 } 112 }
118 113
119 return null; 114 return null;
@@ -156,14 +151,14 @@ namespace OpenSim.Data.SQLite
156 { 151 {
157 if (ExecuteNonQuery(cmd, m_Connection) < 1) 152 if (ExecuteNonQuery(cmd, m_Connection) < 1)
158 { 153 {
159 CloseCommand(cmd); 154 //CloseCommand(cmd);
160 return false; 155 return false;
161 } 156 }
162 } 157 }
163 catch (Exception e) 158 catch (Exception e)
164 { 159 {
165 Console.WriteLine(e.ToString()); 160 Console.WriteLine(e.ToString());
166 CloseCommand(cmd); 161 //CloseCommand(cmd);
167 return false; 162 return false;
168 } 163 }
169 } 164 }
@@ -184,19 +179,19 @@ namespace OpenSim.Data.SQLite
184 { 179 {
185 if (ExecuteNonQuery(cmd, m_Connection) < 1) 180 if (ExecuteNonQuery(cmd, m_Connection) < 1)
186 { 181 {
187 CloseCommand(cmd); 182 //CloseCommand(cmd);
188 return false; 183 return false;
189 } 184 }
190 } 185 }
191 catch (Exception e) 186 catch (Exception e)
192 { 187 {
193 Console.WriteLine(e.ToString()); 188 Console.WriteLine(e.ToString());
194 CloseCommand(cmd); 189 //CloseCommand(cmd);
195 return false; 190 return false;
196 } 191 }
197 } 192 }
198 193
199 CloseCommand(cmd); 194 //CloseCommand(cmd);
200 195
201 return true; 196 return true;
202 } 197 }
diff --git a/OpenSim/Data/SQLite/SQLiteAvatarData.cs b/OpenSim/Data/SQLite/SQLiteAvatarData.cs
index b3f4a4c..c093884 100644
--- a/OpenSim/Data/SQLite/SQLiteAvatarData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAvatarData.cs
@@ -33,7 +33,7 @@ using System.Threading;
33using log4net; 33using log4net;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using Mono.Data.SqliteClient; 36using Mono.Data.Sqlite;
37 37
38namespace OpenSim.Data.SQLite 38namespace OpenSim.Data.SQLite
39{ 39{
@@ -55,8 +55,8 @@ namespace OpenSim.Data.SQLite
55 SqliteCommand cmd = new SqliteCommand(); 55 SqliteCommand cmd = new SqliteCommand();
56 56
57 cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm); 57 cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm);
58 cmd.Parameters.Add(":PrincipalID", principalID.ToString()); 58 cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString());
59 cmd.Parameters.Add(":Name", name); 59 cmd.Parameters.AddWithValue(":Name", name);
60 60
61 try 61 try
62 { 62 {
@@ -67,7 +67,7 @@ namespace OpenSim.Data.SQLite
67 } 67 }
68 finally 68 finally
69 { 69 {
70 CloseCommand(cmd); 70 //CloseCommand(cmd);
71 } 71 }
72 } 72 }
73 } 73 }
diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs
index bd6b776..9dd4a2e 100644
--- a/OpenSim/Data/SQLite/SQLiteEstateData.cs
+++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs
@@ -30,7 +30,7 @@ using System.Collections.Generic;
30using System.Data; 30using System.Data;
31using System.Reflection; 31using System.Reflection;
32using log4net; 32using log4net;
33using Mono.Data.SqliteClient; 33using Mono.Data.Sqlite;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
@@ -62,8 +62,8 @@ namespace OpenSim.Data.SQLite
62 Migration m = new Migration(m_connection, assem, "EstateStore"); 62 Migration m = new Migration(m_connection, assem, "EstateStore");
63 m.Update(); 63 m.Update();
64 64
65 m_connection.Close(); 65 //m_connection.Close();
66 m_connection.Open(); 66 // m_connection.Open();
67 67
68 Type t = typeof(EstateSettings); 68 Type t = typeof(EstateSettings);
69 m_Fields = t.GetFields(BindingFlags.NonPublic | 69 m_Fields = t.GetFields(BindingFlags.NonPublic |
@@ -87,7 +87,7 @@ namespace OpenSim.Data.SQLite
87 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 87 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
88 88
89 cmd.CommandText = sql; 89 cmd.CommandText = sql;
90 cmd.Parameters.Add(":RegionID", regionID.ToString()); 90 cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
91 91
92 return DoLoad(cmd, regionID, create); 92 return DoLoad(cmd, regionID, create);
93 } 93 }
@@ -143,13 +143,13 @@ namespace OpenSim.Data.SQLite
143 if (m_FieldMap[name].GetValue(es) is bool) 143 if (m_FieldMap[name].GetValue(es) is bool)
144 { 144 {
145 if ((bool)m_FieldMap[name].GetValue(es)) 145 if ((bool)m_FieldMap[name].GetValue(es))
146 cmd.Parameters.Add(":"+name, "1"); 146 cmd.Parameters.AddWithValue(":"+name, "1");
147 else 147 else
148 cmd.Parameters.Add(":"+name, "0"); 148 cmd.Parameters.AddWithValue(":"+name, "0");
149 } 149 }
150 else 150 else
151 { 151 {
152 cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString()); 152 cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
153 } 153 }
154 } 154 }
155 155
@@ -167,8 +167,8 @@ namespace OpenSim.Data.SQLite
167 r.Close(); 167 r.Close();
168 168
169 cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; 169 cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)";
170 cmd.Parameters.Add(":RegionID", regionID.ToString()); 170 cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
171 cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); 171 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
172 172
173 // This will throw on dupe key 173 // This will throw on dupe key
174 try 174 try
@@ -211,13 +211,13 @@ namespace OpenSim.Data.SQLite
211 if (m_FieldMap[name].GetValue(es) is bool) 211 if (m_FieldMap[name].GetValue(es) is bool)
212 { 212 {
213 if ((bool)m_FieldMap[name].GetValue(es)) 213 if ((bool)m_FieldMap[name].GetValue(es))
214 cmd.Parameters.Add(":"+name, "1"); 214 cmd.Parameters.AddWithValue(":"+name, "1");
215 else 215 else
216 cmd.Parameters.Add(":"+name, "0"); 216 cmd.Parameters.AddWithValue(":"+name, "0");
217 } 217 }
218 else 218 else
219 { 219 {
220 cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString()); 220 cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
221 } 221 }
222 } 222 }
223 223
@@ -236,7 +236,7 @@ namespace OpenSim.Data.SQLite
236 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 236 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
237 237
238 cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID"; 238 cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID";
239 cmd.Parameters.Add(":EstateID", es.EstateID); 239 cmd.Parameters.AddWithValue(":EstateID", es.EstateID);
240 240
241 IDataReader r = cmd.ExecuteReader(); 241 IDataReader r = cmd.ExecuteReader();
242 242
@@ -260,7 +260,7 @@ namespace OpenSim.Data.SQLite
260 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 260 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
261 261
262 cmd.CommandText = "delete from estateban where EstateID = :EstateID"; 262 cmd.CommandText = "delete from estateban where EstateID = :EstateID";
263 cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); 263 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
264 264
265 cmd.ExecuteNonQuery(); 265 cmd.ExecuteNonQuery();
266 266
@@ -270,8 +270,8 @@ namespace OpenSim.Data.SQLite
270 270
271 foreach (EstateBan b in es.EstateBans) 271 foreach (EstateBan b in es.EstateBans)
272 { 272 {
273 cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); 273 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
274 cmd.Parameters.Add(":bannedUUID", b.BannedUserID.ToString()); 274 cmd.Parameters.AddWithValue(":bannedUUID", b.BannedUserID.ToString());
275 275
276 cmd.ExecuteNonQuery(); 276 cmd.ExecuteNonQuery();
277 cmd.Parameters.Clear(); 277 cmd.Parameters.Clear();
@@ -283,7 +283,7 @@ namespace OpenSim.Data.SQLite
283 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 283 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
284 284
285 cmd.CommandText = "delete from "+table+" where EstateID = :EstateID"; 285 cmd.CommandText = "delete from "+table+" where EstateID = :EstateID";
286 cmd.Parameters.Add(":EstateID", EstateID.ToString()); 286 cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
287 287
288 cmd.ExecuteNonQuery(); 288 cmd.ExecuteNonQuery();
289 289
@@ -293,8 +293,8 @@ namespace OpenSim.Data.SQLite
293 293
294 foreach (UUID uuid in data) 294 foreach (UUID uuid in data)
295 { 295 {
296 cmd.Parameters.Add(":EstateID", EstateID.ToString()); 296 cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
297 cmd.Parameters.Add(":uuid", uuid.ToString()); 297 cmd.Parameters.AddWithValue(":uuid", uuid.ToString());
298 298
299 cmd.ExecuteNonQuery(); 299 cmd.ExecuteNonQuery();
300 cmd.Parameters.Clear(); 300 cmd.Parameters.Clear();
@@ -308,7 +308,7 @@ namespace OpenSim.Data.SQLite
308 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 308 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
309 309
310 cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID"; 310 cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID";
311 cmd.Parameters.Add(":EstateID", EstateID); 311 cmd.Parameters.AddWithValue(":EstateID", EstateID);
312 312
313 IDataReader r = cmd.ExecuteReader(); 313 IDataReader r = cmd.ExecuteReader();
314 314
@@ -333,7 +333,7 @@ namespace OpenSim.Data.SQLite
333 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 333 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
334 334
335 cmd.CommandText = sql; 335 cmd.CommandText = sql;
336 cmd.Parameters.Add(":EstateID", estateID.ToString()); 336 cmd.Parameters.AddWithValue(":EstateID", estateID.ToString());
337 337
338 return DoLoad(cmd, UUID.Zero, false); 338 return DoLoad(cmd, UUID.Zero, false);
339 } 339 }
@@ -347,7 +347,7 @@ namespace OpenSim.Data.SQLite
347 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 347 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
348 348
349 cmd.CommandText = sql; 349 cmd.CommandText = sql;
350 cmd.Parameters.Add(":EstateName", search); 350 cmd.Parameters.AddWithValue(":EstateName", search);
351 351
352 IDataReader r = cmd.ExecuteReader(); 352 IDataReader r = cmd.ExecuteReader();
353 353
@@ -365,8 +365,8 @@ namespace OpenSim.Data.SQLite
365 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 365 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
366 366
367 cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; 367 cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)";
368 cmd.Parameters.Add(":RegionID", regionID.ToString()); 368 cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
369 cmd.Parameters.Add(":EstateID", estateID.ToString()); 369 cmd.Parameters.AddWithValue(":EstateID", estateID.ToString());
370 370
371 if (cmd.ExecuteNonQuery() == 0) 371 if (cmd.ExecuteNonQuery() == 0)
372 return false; 372 return false;
diff --git a/OpenSim/Data/SQLite/SQLiteFramework.cs b/OpenSim/Data/SQLite/SQLiteFramework.cs
index 20b5085..cf114d1 100644
--- a/OpenSim/Data/SQLite/SQLiteFramework.cs
+++ b/OpenSim/Data/SQLite/SQLiteFramework.cs
@@ -31,7 +31,7 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using Mono.Data.SqliteClient; 34using Mono.Data.Sqlite;
35 35
36namespace OpenSim.Data.SQLite 36namespace OpenSim.Data.SQLite
37{ 37{
@@ -55,11 +55,14 @@ namespace OpenSim.Data.SQLite
55 { 55 {
56 lock (connection) 56 lock (connection)
57 { 57 {
58/*
58 SqliteConnection newConnection = 59 SqliteConnection newConnection =
59 (SqliteConnection)((ICloneable)connection).Clone(); 60 (SqliteConnection)((ICloneable)connection).Clone();
60 newConnection.Open(); 61 newConnection.Open();
61 62
62 cmd.Connection = newConnection; 63 cmd.Connection = newConnection;
64*/
65 cmd.Connection = connection;
63 //Console.WriteLine("XXX " + cmd.CommandText); 66 //Console.WriteLine("XXX " + cmd.CommandText);
64 67
65 return cmd.ExecuteNonQuery(); 68 return cmd.ExecuteNonQuery();
@@ -70,11 +73,12 @@ namespace OpenSim.Data.SQLite
70 { 73 {
71 lock (connection) 74 lock (connection)
72 { 75 {
73 SqliteConnection newConnection = 76 //SqliteConnection newConnection =
74 (SqliteConnection)((ICloneable)connection).Clone(); 77 // (SqliteConnection)((ICloneable)connection).Clone();
75 newConnection.Open(); 78 //newConnection.Open();
76 79
77 cmd.Connection = newConnection; 80 //cmd.Connection = newConnection;
81 cmd.Connection = connection;
78 //Console.WriteLine("XXX " + cmd.CommandText); 82 //Console.WriteLine("XXX " + cmd.CommandText);
79 83
80 return cmd.ExecuteReader(); 84 return cmd.ExecuteReader();
diff --git a/OpenSim/Data/SQLite/SQLiteFriendsData.cs b/OpenSim/Data/SQLite/SQLiteFriendsData.cs
index 0b12182..b06853c 100644
--- a/OpenSim/Data/SQLite/SQLiteFriendsData.cs
+++ b/OpenSim/Data/SQLite/SQLiteFriendsData.cs
@@ -31,7 +31,7 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using Mono.Data.SqliteClient; 34using Mono.Data.Sqlite;
35 35
36namespace OpenSim.Data.SQLite 36namespace OpenSim.Data.SQLite
37{ 37{
@@ -47,7 +47,7 @@ namespace OpenSim.Data.SQLite
47 SqliteCommand cmd = new SqliteCommand(); 47 SqliteCommand cmd = new SqliteCommand();
48 48
49 cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm); 49 cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm);
50 cmd.Parameters.Add(":PrincipalID", userID.ToString()); 50 cmd.Parameters.AddWithValue(":PrincipalID", userID.ToString());
51 51
52 return DoQuery(cmd); 52 return DoQuery(cmd);
53 53
@@ -58,8 +58,8 @@ namespace OpenSim.Data.SQLite
58 SqliteCommand cmd = new SqliteCommand(); 58 SqliteCommand cmd = new SqliteCommand();
59 59
60 cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm); 60 cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm);
61 cmd.Parameters.Add(":PrincipalID", principalID.ToString()); 61 cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString());
62 cmd.Parameters.Add(":Friend", friend); 62 cmd.Parameters.AddWithValue(":Friend", friend);
63 63
64 ExecuteNonQuery(cmd, cmd.Connection); 64 ExecuteNonQuery(cmd, cmd.Connection);
65 65
diff --git a/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs b/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs
index b39bb19..3c70aef 100644
--- a/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs
+++ b/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs
@@ -30,7 +30,7 @@ using System.Collections.Generic;
30using System.Data; 30using System.Data;
31using System.Reflection; 31using System.Reflection;
32using log4net; 32using log4net;
33using Mono.Data.SqliteClient; 33using Mono.Data.Sqlite;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
@@ -59,19 +59,21 @@ namespace OpenSim.Data.SQLite
59 if (!m_initialized) 59 if (!m_initialized)
60 { 60 {
61 m_Connection = new SqliteConnection(connectionString); 61 m_Connection = new SqliteConnection(connectionString);
62 Console.WriteLine(string.Format("OPENING CONNECTION FOR {0} USING {1}", storeName, connectionString));
62 m_Connection.Open(); 63 m_Connection.Open();
63 64
64 if (storeName != String.Empty) 65 if (storeName != String.Empty)
65 { 66 {
66 Assembly assem = GetType().Assembly; 67 Assembly assem = GetType().Assembly;
67 SqliteConnection newConnection = 68 //SqliteConnection newConnection =
68 (SqliteConnection)((ICloneable)m_Connection).Clone(); 69 // (SqliteConnection)((ICloneable)m_Connection).Clone();
69 newConnection.Open(); 70 //newConnection.Open();
70 71
71 Migration m = new Migration(newConnection, assem, storeName); 72 //Migration m = new Migration(newConnection, assem, storeName);
73 Migration m = new Migration(m_Connection, assem, storeName);
72 m.Update(); 74 m.Update();
73 newConnection.Close(); 75 //newConnection.Close();
74 newConnection.Dispose(); 76 //newConnection.Dispose();
75 } 77 }
76 78
77 m_initialized = true; 79 m_initialized = true;
@@ -197,7 +199,7 @@ namespace OpenSim.Data.SQLite
197 result.Add(row); 199 result.Add(row);
198 } 200 }
199 201
200 CloseCommand(cmd); 202 //CloseCommand(cmd);
201 203
202 return result.ToArray(); 204 return result.ToArray();
203 } 205 }
diff --git a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
index a5e0517..ece2495 100644
--- a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
+++ b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
@@ -30,7 +30,7 @@ using System.Collections.Generic;
30using System.Data; 30using System.Data;
31using System.Reflection; 31using System.Reflection;
32using log4net; 32using log4net;
33using Mono.Data.SqliteClient; 33using Mono.Data.Sqlite;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36 36
@@ -98,11 +98,13 @@ namespace OpenSim.Data.SQLite
98 ds.Tables.Add(createInventoryFoldersTable()); 98 ds.Tables.Add(createInventoryFoldersTable());
99 invFoldersDa.Fill(ds.Tables["inventoryfolders"]); 99 invFoldersDa.Fill(ds.Tables["inventoryfolders"]);
100 setupFoldersCommands(invFoldersDa, conn); 100 setupFoldersCommands(invFoldersDa, conn);
101 CreateDataSetMapping(invFoldersDa, "inventoryfolders");
101 m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions"); 102 m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions");
102 103
103 ds.Tables.Add(createInventoryItemsTable()); 104 ds.Tables.Add(createInventoryItemsTable());
104 invItemsDa.Fill(ds.Tables["inventoryitems"]); 105 invItemsDa.Fill(ds.Tables["inventoryitems"]);
105 setupItemsCommands(invItemsDa, conn); 106 setupItemsCommands(invItemsDa, conn);
107 CreateDataSetMapping(invItemsDa, "inventoryitems");
106 m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions"); 108 m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions");
107 109
108 ds.AcceptChanges(); 110 ds.AcceptChanges();
@@ -728,6 +730,15 @@ namespace OpenSim.Data.SQLite
728 * 730 *
729 **********************************************************************/ 731 **********************************************************************/
730 732
733 protected void CreateDataSetMapping(IDataAdapter da, string tableName)
734 {
735 ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
736 foreach (DataColumn col in ds.Tables[tableName].Columns)
737 {
738 dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
739 }
740 }
741
731 /// <summary> 742 /// <summary>
732 /// Create the "inventoryitems" table 743 /// Create the "inventoryitems" table
733 /// </summary> 744 /// </summary>
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index d2ba9ae..0217748 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -32,7 +32,7 @@ using System.Drawing;
32using System.IO; 32using System.IO;
33using System.Reflection; 33using System.Reflection;
34using log4net; 34using log4net;
35using Mono.Data.SqliteClient; 35using Mono.Data.Sqlite;
36using OpenMetaverse; 36using OpenMetaverse;
37using OpenSim.Framework; 37using OpenSim.Framework;
38using OpenSim.Region.Framework.Interfaces; 38using OpenSim.Region.Framework.Interfaces;
@@ -87,119 +87,142 @@ namespace OpenSim.Data.SQLite
87 /// <param name="connectionString">the connection string</param> 87 /// <param name="connectionString">the connection string</param>
88 public void Initialise(string connectionString) 88 public void Initialise(string connectionString)
89 { 89 {
90 m_connectionString = connectionString; 90 try
91 {
92 m_connectionString = connectionString;
91 93
92 ds = new DataSet(); 94 ds = new DataSet("Region");
93 95
94 m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString); 96 m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
95 m_conn = new SqliteConnection(m_connectionString); 97 m_conn = new SqliteConnection(m_connectionString);
96 m_conn.Open(); 98 m_conn.Open();
97 99
100 SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
101 primDa = new SqliteDataAdapter(primSelectCmd);
98 102
103 SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
104 shapeDa = new SqliteDataAdapter(shapeSelectCmd);
105 // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
99 106
100 SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn); 107 SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn);
101 primDa = new SqliteDataAdapter(primSelectCmd); 108 itemsDa = new SqliteDataAdapter(itemsSelectCmd);
102 // SqliteCommandBuilder primCb = new SqliteCommandBuilder(primDa);
103 109
104 SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn); 110 SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn);
105 shapeDa = new SqliteDataAdapter(shapeSelectCmd); 111 terrainDa = new SqliteDataAdapter(terrainSelectCmd);
106 // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
107 112
108 SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn); 113 SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn);
109 itemsDa = new SqliteDataAdapter(itemsSelectCmd); 114 landDa = new SqliteDataAdapter(landSelectCmd);
110 115
111 SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn); 116 SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn);
112 terrainDa = new SqliteDataAdapter(terrainSelectCmd); 117 landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd);
113 118
114 SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn); 119 SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn);
115 landDa = new SqliteDataAdapter(landSelectCmd); 120 regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd);
121 // This actually does the roll forward assembly stuff
122 Assembly assem = GetType().Assembly;
123 Migration m = new Migration(m_conn, assem, "RegionStore");
124 m.Update();
116 125
117 SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn); 126 lock (ds)
118 landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd); 127 {
128 ds.Tables.Add(createPrimTable());
129 setupPrimCommands(primDa, m_conn);
119 130
120 SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn); 131 ds.Tables.Add(createShapeTable());
121 regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd); 132 setupShapeCommands(shapeDa, m_conn);
122 // This actually does the roll forward assembly stuff
123 Assembly assem = GetType().Assembly;
124 Migration m = new Migration(m_conn, assem, "RegionStore");
125 m.Update();
126 133
127 lock (ds) 134 ds.Tables.Add(createItemsTable());
128 { 135 setupItemsCommands(itemsDa, m_conn);
129 ds.Tables.Add(createPrimTable());
130 setupPrimCommands(primDa, m_conn);
131 primDa.Fill(ds.Tables["prims"]);
132 136
133 ds.Tables.Add(createShapeTable()); 137 ds.Tables.Add(createTerrainTable());
134 setupShapeCommands(shapeDa, m_conn); 138 setupTerrainCommands(terrainDa, m_conn);
135 139
136 ds.Tables.Add(createItemsTable()); 140 ds.Tables.Add(createLandTable());
137 setupItemsCommands(itemsDa, m_conn); 141 setupLandCommands(landDa, m_conn);
138 itemsDa.Fill(ds.Tables["primitems"]);
139 142
140 ds.Tables.Add(createTerrainTable()); 143 ds.Tables.Add(createLandAccessListTable());
141 setupTerrainCommands(terrainDa, m_conn); 144 setupLandAccessCommands(landAccessListDa, m_conn);
142 145
143 ds.Tables.Add(createLandTable()); 146 ds.Tables.Add(createRegionSettingsTable());
144 setupLandCommands(landDa, m_conn); 147 setupRegionSettingsCommands(regionSettingsDa, m_conn);
145 148
146 ds.Tables.Add(createLandAccessListTable()); 149 // WORKAROUND: This is a work around for sqlite on
147 setupLandAccessCommands(landAccessListDa, m_conn); 150 // windows, which gets really unhappy with blob columns
151 // that have no sample data in them. At some point we
152 // need to actually find a proper way to handle this.
153 try
154 {
155 primDa.Fill(ds.Tables["prims"]);
156 }
157 catch (Exception)
158 {
159 m_log.Info("[REGION DB]: Caught fill error on prims table");
160 }
148 161
149 ds.Tables.Add(createRegionSettingsTable()); 162 try
150 163 {
151 setupRegionSettingsCommands(regionSettingsDa, m_conn); 164 shapeDa.Fill(ds.Tables["primshapes"]);
165 }
166 catch (Exception)
167 {
168 m_log.Info("[REGION DB]: Caught fill error on primshapes table");
169 }
152 170
153 // WORKAROUND: This is a work around for sqlite on 171 try
154 // windows, which gets really unhappy with blob columns 172 {
155 // that have no sample data in them. At some point we 173 terrainDa.Fill(ds.Tables["terrain"]);
156 // need to actually find a proper way to handle this. 174 }
157 try 175 catch (Exception)
158 { 176 {
159 shapeDa.Fill(ds.Tables["primshapes"]); 177 m_log.Info("[REGION DB]: Caught fill error on terrain table");
160 } 178 }
161 catch (Exception)
162 {
163 m_log.Info("[REGION DB]: Caught fill error on primshapes table");
164 }
165 179
166 try 180 try
167 { 181 {
168 terrainDa.Fill(ds.Tables["terrain"]); 182 landDa.Fill(ds.Tables["land"]);
169 } 183 }
170 catch (Exception) 184 catch (Exception)
171 { 185 {
172 m_log.Info("[REGION DB]: Caught fill error on terrain table"); 186 m_log.Info("[REGION DB]: Caught fill error on land table");
173 } 187 }
174 188
175 try 189 try
176 { 190 {
177 landDa.Fill(ds.Tables["land"]); 191 landAccessListDa.Fill(ds.Tables["landaccesslist"]);
178 } 192 }
179 catch (Exception) 193 catch (Exception)
180 { 194 {
181 m_log.Info("[REGION DB]: Caught fill error on land table"); 195 m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
182 } 196 }
183 197
184 try 198 try
185 { 199 {
186 landAccessListDa.Fill(ds.Tables["landaccesslist"]); 200 regionSettingsDa.Fill(ds.Tables["regionsettings"]);
187 } 201 }
188 catch (Exception) 202 catch (Exception)
189 { 203 {
190 m_log.Info("[REGION DB]: Caught fill error on landaccesslist table"); 204 m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
191 } 205 }
192 206
193 try 207 // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values!
194 { 208 // Not sure exactly why this is - this kind of thing was not necessary before - justincc 20100409
195 regionSettingsDa.Fill(ds.Tables["regionsettings"]); 209 // Possibly because we manually set up our own DataTables before connecting to the database
196 } 210 CreateDataSetMapping(primDa, "prims");
197 catch (Exception) 211 CreateDataSetMapping(shapeDa, "primshapes");
198 { 212 CreateDataSetMapping(itemsDa, "primitems");
199 m_log.Info("[REGION DB]: Caught fill error on regionsettings table"); 213 CreateDataSetMapping(terrainDa, "terrain");
214 CreateDataSetMapping(landDa, "land");
215 CreateDataSetMapping(landAccessListDa, "landaccesslist");
216 CreateDataSetMapping(regionSettingsDa, "regionsettings");
200 } 217 }
201 return;
202 } 218 }
219 catch (Exception e)
220 {
221 m_log.Error(e);
222 Environment.Exit(23);
223 }
224
225 return;
203 } 226 }
204 227
205 public void Dispose() 228 public void Dispose()
@@ -603,7 +626,7 @@ namespace OpenSim.Data.SQLite
603 } 626 }
604 } 627 }
605 } 628 }
606 rev = (int) row["Revision"]; 629 rev = Convert.ToInt32(row["Revision"]);
607 } 630 }
608 else 631 else
609 { 632 {
@@ -755,6 +778,7 @@ namespace OpenSim.Data.SQLite
755 /// </summary> 778 /// </summary>
756 public void Commit() 779 public void Commit()
757 { 780 {
781 m_log.Debug("[SQLITE]: Starting commit");
758 lock (ds) 782 lock (ds)
759 { 783 {
760 primDa.Update(ds, "prims"); 784 primDa.Update(ds, "prims");
@@ -769,18 +793,11 @@ namespace OpenSim.Data.SQLite
769 { 793 {
770 regionSettingsDa.Update(ds, "regionsettings"); 794 regionSettingsDa.Update(ds, "regionsettings");
771 } 795 }
772 catch (SqliteExecutionException SqlEx) 796 catch (SqliteException SqlEx)
773 { 797 {
774 if (SqlEx.Message.Contains("logic error")) 798 throw new Exception(
775 { 799 "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!",
776 throw new Exception( 800 SqlEx);
777 "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!",
778 SqlEx);
779 }
780 else
781 {
782 throw SqlEx;
783 }
784 } 801 }
785 ds.AcceptChanges(); 802 ds.AcceptChanges();
786 } 803 }
@@ -802,6 +819,15 @@ namespace OpenSim.Data.SQLite
802 * 819 *
803 **********************************************************************/ 820 **********************************************************************/
804 821
822 protected void CreateDataSetMapping(IDataAdapter da, string tableName)
823 {
824 ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
825 foreach (DataColumn col in ds.Tables[tableName].Columns)
826 {
827 dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
828 }
829 }
830
805 /// <summary> 831 /// <summary>
806 /// 832 ///
807 /// </summary> 833 /// </summary>
@@ -1964,6 +1990,7 @@ namespace OpenSim.Data.SQLite
1964 sql += ") values (:"; 1990 sql += ") values (:";
1965 sql += String.Join(", :", cols); 1991 sql += String.Join(", :", cols);
1966 sql += ")"; 1992 sql += ")";
1993 m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql);
1967 SqliteCommand cmd = new SqliteCommand(sql); 1994 SqliteCommand cmd = new SqliteCommand(sql);
1968 1995
1969 // this provides the binding for all our parameters, so 1996 // this provides the binding for all our parameters, so
@@ -2259,6 +2286,36 @@ namespace OpenSim.Data.SQLite
2259 return DbType.String; 2286 return DbType.String;
2260 } 2287 }
2261 } 2288 }
2289
2290 static void PrintDataSet(DataSet ds)
2291 {
2292 // Print out any name and extended properties.
2293 Console.WriteLine("DataSet is named: {0}", ds.DataSetName);
2294 foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties)
2295 {
2296 Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
2297 }
2298 Console.WriteLine();
2299 foreach (DataTable dt in ds.Tables)
2300 {
2301 Console.WriteLine("=> {0} Table:", dt.TableName);
2302 // Print out the column names.
2303 for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
2304 {
2305 Console.Write(dt.Columns[curCol].ColumnName + "\t");
2306 }
2307 Console.WriteLine("\n----------------------------------");
2308 // Print the DataTable.
2309 for (int curRow = 0; curRow < dt.Rows.Count; curRow++)
2310 {
2311 for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
2312 {
2313 Console.Write(dt.Rows[curRow][curCol].ToString() + "\t");
2314 }
2315 Console.WriteLine();
2316 }
2317 }
2318 }
2262 2319
2263 } 2320 }
2264} 2321}
diff --git a/OpenSim/Data/SQLite/SQLiteUserAccountData.cs b/OpenSim/Data/SQLite/SQLiteUserAccountData.cs
index 67cf716..893f105 100644
--- a/OpenSim/Data/SQLite/SQLiteUserAccountData.cs
+++ b/OpenSim/Data/SQLite/SQLiteUserAccountData.cs
@@ -31,7 +31,7 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using Mono.Data.SqliteClient; 34using Mono.Data.Sqlite;
35 35
36namespace OpenSim.Data.SQLite 36namespace OpenSim.Data.SQLite
37{ 37{
@@ -66,7 +66,7 @@ namespace OpenSim.Data.SQLite
66 66
67 if (words.Length == 1) 67 if (words.Length == 1)
68 { 68 {
69 cmd.CommandText = String.Format("select * from {0} where (ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')", 69 cmd.CommandText = String.Format("select * from {0} where ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')",
70 m_Realm, scopeID.ToString(), words[0]); 70 m_Realm, scopeID.ToString(), words[0]);
71 } 71 }
72 else 72 else
diff --git a/OpenSim/Data/SQLite/SQLiteUtils.cs b/OpenSim/Data/SQLite/SQLiteUtils.cs
index 4a835ce..07c6b69 100644
--- a/OpenSim/Data/SQLite/SQLiteUtils.cs
+++ b/OpenSim/Data/SQLite/SQLiteUtils.cs
@@ -27,7 +27,7 @@
27 27
28using System; 28using System;
29using System.Data; 29using System.Data;
30using Mono.Data.SqliteClient; 30using Mono.Data.Sqlite;
31 31
32namespace OpenSim.Data.SQLite 32namespace OpenSim.Data.SQLite
33{ 33{
diff --git a/OpenSim/Data/SQLite/SQLiteXInventoryData.cs b/OpenSim/Data/SQLite/SQLiteXInventoryData.cs
index a66e0c6..be1d041 100644
--- a/OpenSim/Data/SQLite/SQLiteXInventoryData.cs
+++ b/OpenSim/Data/SQLite/SQLiteXInventoryData.cs
@@ -29,7 +29,7 @@ using System;
29using System.Data; 29using System.Data;
30using System.Reflection; 30using System.Reflection;
31using System.Collections.Generic; 31using System.Collections.Generic;
32using Mono.Data.SqliteClient; 32using Mono.Data.Sqlite;
33using log4net; 33using log4net;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
@@ -147,7 +147,7 @@ namespace OpenSim.Data.SQLite
147 } 147 }
148 148
149 reader.Close(); 149 reader.Close();
150 CloseCommand(cmd); 150 //CloseCommand(cmd);
151 151
152 return perms; 152 return perms;
153 } 153 }
diff --git a/OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs b/OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs
index 4aeb67b..609a024 100644
--- a/OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs
+++ b/OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs
@@ -32,11 +32,11 @@ using System.Runtime.InteropServices;
32// set of attributes. Change these attribute values to modify the information 32// set of attributes. Change these attribute values to modify the information
33// associated with an assembly. 33// associated with an assembly.
34 34
35[assembly : AssemblyTitle("OpenSim.Data.SQLiteNG")] 35[assembly : AssemblyTitle("OpenSim.Data.SQLiteLegacy")]
36[assembly : AssemblyDescription("")] 36[assembly : AssemblyDescription("")]
37[assembly : AssemblyConfiguration("")] 37[assembly : AssemblyConfiguration("")]
38[assembly : AssemblyCompany("http://opensimulator.org")] 38[assembly : AssemblyCompany("http://opensimulator.org")]
39[assembly : AssemblyProduct("OpenSim.Data.SQLiteNG")] 39[assembly : AssemblyProduct("OpenSim.Data.SQLiteLegacy")]
40[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")] 40[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")]
41[assembly : AssemblyTrademark("")] 41[assembly : AssemblyTrademark("")]
42[assembly : AssemblyCulture("")] 42[assembly : AssemblyCulture("")]
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_AssetStore.sql
index 2e026ca..2e026ca 100644
--- a/OpenSim/Data/SQLiteNG/Resources/001_AssetStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/001_AssetStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_AuthStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql
index 468567d..468567d 100644
--- a/OpenSim/Data/SQLiteNG/Resources/001_AuthStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_Avatar.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql
index 7ec906b..7ec906b 100644
--- a/OpenSim/Data/SQLiteNG/Resources/001_Avatar.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_FriendsStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql
index f1b9ab9..f1b9ab9 100644
--- a/OpenSim/Data/SQLiteNG/Resources/001_FriendsStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_InventoryStore.sql
index 554d5c2..554d5c2 100644
--- a/OpenSim/Data/SQLiteNG/Resources/001_InventoryStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/001_InventoryStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_RegionStore.sql
index 39e8180..39e8180 100644
--- a/OpenSim/Data/SQLiteNG/Resources/001_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/001_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_UserAccount.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql
index c38d9a7..c38d9a7 100644
--- a/OpenSim/Data/SQLiteNG/Resources/001_UserAccount.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_UserStore.sql
index b584594..b584594 100644
--- a/OpenSim/Data/SQLiteNG/Resources/001_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/001_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_AssetStore.sql
index 5339b84..5339b84 100644
--- a/OpenSim/Data/SQLiteNG/Resources/002_AssetStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/002_AssetStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_AuthStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql
index 3237b68..3237b68 100644
--- a/OpenSim/Data/SQLiteNG/Resources/002_AuthStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_FriendsStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql
index 6733502..6733502 100644
--- a/OpenSim/Data/SQLiteNG/Resources/002_FriendsStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_InventoryStore.sql
index 01951d6..01951d6 100644
--- a/OpenSim/Data/SQLiteNG/Resources/002_InventoryStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/002_InventoryStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_RegionStore.sql
index c5c7c99..c5c7c99 100644
--- a/OpenSim/Data/SQLiteNG/Resources/002_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/002_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_UserAccount.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql
index c7a6293..c7a6293 100644
--- a/OpenSim/Data/SQLiteNG/Resources/002_UserAccount.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_UserStore.sql
index 48fc680..48fc680 100644
--- a/OpenSim/Data/SQLiteNG/Resources/002_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/002_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_AssetStore.sql
index f54f8d9..f54f8d9 100644
--- a/OpenSim/Data/SQLiteNG/Resources/003_AssetStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/003_AssetStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_InventoryStore.sql
index 4c6da91..4c6da91 100644
--- a/OpenSim/Data/SQLiteNG/Resources/003_InventoryStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/003_InventoryStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_RegionStore.sql
index 4db2f75..4db2f75 100644
--- a/OpenSim/Data/SQLiteNG/Resources/003_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/003_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_UserStore.sql
index 6f890ee..6f890ee 100644
--- a/OpenSim/Data/SQLiteNG/Resources/003_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/003_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_AssetStore.sql
index 39421c4..39421c4 100644
--- a/OpenSim/Data/SQLiteNG/Resources/004_AssetStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/004_AssetStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_InventoryStore.sql
index e8f4d46..e8f4d46 100644
--- a/OpenSim/Data/SQLiteNG/Resources/004_InventoryStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/004_InventoryStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_RegionStore.sql
index de328cb..de328cb 100644
--- a/OpenSim/Data/SQLiteNG/Resources/004_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/004_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_UserStore.sql
index 03142af..03142af 100644
--- a/OpenSim/Data/SQLiteNG/Resources/004_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/004_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/005_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/005_RegionStore.sql
index 1f6d1bd..1f6d1bd 100644
--- a/OpenSim/Data/SQLiteNG/Resources/005_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/005_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/005_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/005_UserStore.sql
index e45c09a..e45c09a 100644
--- a/OpenSim/Data/SQLiteNG/Resources/005_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/005_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/006_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/006_RegionStore.sql
index 94ed818..94ed818 100644
--- a/OpenSim/Data/SQLiteNG/Resources/006_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/006_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/006_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/006_UserStore.sql
index f9454c5..f9454c5 100644
--- a/OpenSim/Data/SQLiteNG/Resources/006_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/006_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/007_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/007_RegionStore.sql
index 1c813a0..1c813a0 100644
--- a/OpenSim/Data/SQLiteNG/Resources/007_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/007_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/007_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/007_UserStore.sql
index 8b0cd28..8b0cd28 100644
--- a/OpenSim/Data/SQLiteNG/Resources/007_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/007_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/008_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/008_RegionStore.sql
index 28bfbf5..28bfbf5 100644
--- a/OpenSim/Data/SQLiteNG/Resources/008_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/008_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/008_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/008_UserStore.sql
index 97da818..97da818 100644
--- a/OpenSim/Data/SQLiteNG/Resources/008_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/008_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/009_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/009_RegionStore.sql
index 1f40548..1f40548 100644
--- a/OpenSim/Data/SQLiteNG/Resources/009_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/009_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/009_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/009_UserStore.sql
index 8ab03ef..8ab03ef 100644
--- a/OpenSim/Data/SQLiteNG/Resources/009_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/009_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/010_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/010_RegionStore.sql
index b91ccf0..b91ccf0 100644
--- a/OpenSim/Data/SQLiteNG/Resources/010_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/010_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/010_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/010_UserStore.sql
index 5f956da..5f956da 100644
--- a/OpenSim/Data/SQLiteNG/Resources/010_UserStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/010_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/011_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/011_RegionStore.sql
index 42bef89..42bef89 100644
--- a/OpenSim/Data/SQLiteNG/Resources/011_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/011_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/012_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/012_RegionStore.sql
index d952b78..d952b78 100644
--- a/OpenSim/Data/SQLiteNG/Resources/012_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/012_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/013_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/013_RegionStore.sql
index 11529cd..11529cd 100644
--- a/OpenSim/Data/SQLiteNG/Resources/013_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/013_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/014_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/014_RegionStore.sql
index c59b27e..c59b27e 100644
--- a/OpenSim/Data/SQLiteNG/Resources/014_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/014_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/015_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/015_RegionStore.sql
index c43f356..c43f356 100644
--- a/OpenSim/Data/SQLiteNG/Resources/015_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/015_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/016_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/016_RegionStore.sql
index 52f160c..52f160c 100644
--- a/OpenSim/Data/SQLiteNG/Resources/016_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/016_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/017_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/017_RegionStore.sql
index 6c6b7b5..6c6b7b5 100644
--- a/OpenSim/Data/SQLiteNG/Resources/017_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/017_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/018_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/018_RegionStore.sql
index 6a390c2..6a390c2 100644
--- a/OpenSim/Data/SQLiteNG/Resources/018_RegionStore.sql
+++ b/OpenSim/Data/SQLiteLegacy/Resources/018_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/OpenSim.Data.SQLite.addin.xml b/OpenSim/Data/SQLiteLegacy/Resources/OpenSim.Data.SQLite.addin.xml
index e6764fa..e6764fa 100644
--- a/OpenSim/Data/SQLiteNG/Resources/OpenSim.Data.SQLite.addin.xml
+++ b/OpenSim/Data/SQLiteLegacy/Resources/OpenSim.Data.SQLite.addin.xml
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAssetData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs
index 9b34a21..0d63dea 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs
@@ -30,11 +30,11 @@ using System.Data;
30using System.Reflection; 30using System.Reflection;
31using System.Collections.Generic; 31using System.Collections.Generic;
32using log4net; 32using log4net;
33using Mono.Data.Sqlite; 33using Mono.Data.SqliteClient;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36 36
37namespace OpenSim.Data.SQLiteNG 37namespace OpenSim.Data.SQLiteLegacy
38{ 38{
39 /// <summary> 39 /// <summary>
40 /// An asset storage interface for the SQLite database system 40 /// An asset storage interface for the SQLite database system
@@ -137,7 +137,7 @@ namespace OpenSim.Data.SQLiteNG
137 cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); 137 cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local));
138 cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); 138 cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary));
139 cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); 139 cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data));
140 140
141 cmd.ExecuteNonQuery(); 141 cmd.ExecuteNonQuery();
142 } 142 }
143 } 143 }
@@ -340,4 +340,4 @@ namespace OpenSim.Data.SQLiteNG
340 340
341 #endregion 341 #endregion
342 } 342 }
343} 343} \ No newline at end of file
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs
index 4a5dc2e..c64830a 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs
@@ -31,9 +31,9 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using Mono.Data.Sqlite; 34using Mono.Data.SqliteClient;
35 35
36namespace OpenSim.Data.SQLiteNG 36namespace OpenSim.Data.SQLiteLegacy
37{ 37{
38 public class SQLiteAuthenticationData : SQLiteFramework, IAuthenticationData 38 public class SQLiteAuthenticationData : SQLiteFramework, IAuthenticationData
39 { 39 {
@@ -56,8 +56,13 @@ namespace OpenSim.Data.SQLiteNG
56 m_Connection = new SqliteConnection(connectionString); 56 m_Connection = new SqliteConnection(connectionString);
57 m_Connection.Open(); 57 m_Connection.Open();
58 58
59 Migration m = new Migration(m_Connection, GetType().Assembly, "AuthStore"); 59 using (SqliteConnection dbcon = (SqliteConnection)((ICloneable)m_Connection).Clone())
60 m.Update(); 60 {
61 dbcon.Open();
62 Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore");
63 m.Update();
64 dbcon.Close();
65 }
61 66
62 m_initialized = true; 67 m_initialized = true;
63 } 68 }
@@ -108,7 +113,7 @@ namespace OpenSim.Data.SQLiteNG
108 } 113 }
109 finally 114 finally
110 { 115 {
111 //CloseCommand(cmd); 116 CloseCommand(cmd);
112 } 117 }
113 118
114 return null; 119 return null;
@@ -151,14 +156,14 @@ namespace OpenSim.Data.SQLiteNG
151 { 156 {
152 if (ExecuteNonQuery(cmd, m_Connection) < 1) 157 if (ExecuteNonQuery(cmd, m_Connection) < 1)
153 { 158 {
154 //CloseCommand(cmd); 159 CloseCommand(cmd);
155 return false; 160 return false;
156 } 161 }
157 } 162 }
158 catch (Exception e) 163 catch (Exception e)
159 { 164 {
160 Console.WriteLine(e.ToString()); 165 Console.WriteLine(e.ToString());
161 //CloseCommand(cmd); 166 CloseCommand(cmd);
162 return false; 167 return false;
163 } 168 }
164 } 169 }
@@ -179,19 +184,19 @@ namespace OpenSim.Data.SQLiteNG
179 { 184 {
180 if (ExecuteNonQuery(cmd, m_Connection) < 1) 185 if (ExecuteNonQuery(cmd, m_Connection) < 1)
181 { 186 {
182 //CloseCommand(cmd); 187 CloseCommand(cmd);
183 return false; 188 return false;
184 } 189 }
185 } 190 }
186 catch (Exception e) 191 catch (Exception e)
187 { 192 {
188 Console.WriteLine(e.ToString()); 193 Console.WriteLine(e.ToString());
189 //CloseCommand(cmd); 194 CloseCommand(cmd);
190 return false; 195 return false;
191 } 196 }
192 } 197 }
193 198
194 //CloseCommand(cmd); 199 CloseCommand(cmd);
195 200
196 return true; 201 return true;
197 } 202 }
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs
index d0fd49c..660632c 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs
@@ -33,9 +33,9 @@ using System.Threading;
33using log4net; 33using log4net;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using Mono.Data.Sqlite; 36using Mono.Data.SqliteClient;
37 37
38namespace OpenSim.Data.SQLiteNG 38namespace OpenSim.Data.SQLiteLegacy
39{ 39{
40 /// <summary> 40 /// <summary>
41 /// A SQLite Interface for Avatar Data 41 /// A SQLite Interface for Avatar Data
@@ -55,8 +55,8 @@ namespace OpenSim.Data.SQLiteNG
55 SqliteCommand cmd = new SqliteCommand(); 55 SqliteCommand cmd = new SqliteCommand();
56 56
57 cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm); 57 cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm);
58 cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString()); 58 cmd.Parameters.Add(":PrincipalID", principalID.ToString());
59 cmd.Parameters.AddWithValue(":Name", name); 59 cmd.Parameters.Add(":Name", name);
60 60
61 try 61 try
62 { 62 {
@@ -67,7 +67,7 @@ namespace OpenSim.Data.SQLiteNG
67 } 67 }
68 finally 68 finally
69 { 69 {
70 //CloseCommand(cmd); 70 CloseCommand(cmd);
71 } 71 }
72 } 72 }
73 } 73 }
diff --git a/OpenSim/Data/SQLiteNG/SQLiteEstateData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs
index 2e2d717..e135eaa 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteEstateData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs
@@ -30,12 +30,12 @@ using System.Collections.Generic;
30using System.Data; 30using System.Data;
31using System.Reflection; 31using System.Reflection;
32using log4net; 32using log4net;
33using Mono.Data.Sqlite; 33using Mono.Data.SqliteClient;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
37 37
38namespace OpenSim.Data.SQLiteNG 38namespace OpenSim.Data.SQLiteLegacy
39{ 39{
40 public class SQLiteEstateStore : IEstateDataStore 40 public class SQLiteEstateStore : IEstateDataStore
41 { 41 {
@@ -62,8 +62,8 @@ namespace OpenSim.Data.SQLiteNG
62 Migration m = new Migration(m_connection, assem, "EstateStore"); 62 Migration m = new Migration(m_connection, assem, "EstateStore");
63 m.Update(); 63 m.Update();
64 64
65 //m_connection.Close(); 65 m_connection.Close();
66 // m_connection.Open(); 66 m_connection.Open();
67 67
68 Type t = typeof(EstateSettings); 68 Type t = typeof(EstateSettings);
69 m_Fields = t.GetFields(BindingFlags.NonPublic | 69 m_Fields = t.GetFields(BindingFlags.NonPublic |
@@ -87,7 +87,7 @@ namespace OpenSim.Data.SQLiteNG
87 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 87 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
88 88
89 cmd.CommandText = sql; 89 cmd.CommandText = sql;
90 cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); 90 cmd.Parameters.Add(":RegionID", regionID.ToString());
91 91
92 return DoLoad(cmd, regionID, create); 92 return DoLoad(cmd, regionID, create);
93 } 93 }
@@ -143,13 +143,13 @@ namespace OpenSim.Data.SQLiteNG
143 if (m_FieldMap[name].GetValue(es) is bool) 143 if (m_FieldMap[name].GetValue(es) is bool)
144 { 144 {
145 if ((bool)m_FieldMap[name].GetValue(es)) 145 if ((bool)m_FieldMap[name].GetValue(es))
146 cmd.Parameters.AddWithValue(":"+name, "1"); 146 cmd.Parameters.Add(":"+name, "1");
147 else 147 else
148 cmd.Parameters.AddWithValue(":"+name, "0"); 148 cmd.Parameters.Add(":"+name, "0");
149 } 149 }
150 else 150 else
151 { 151 {
152 cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString()); 152 cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString());
153 } 153 }
154 } 154 }
155 155
@@ -167,8 +167,8 @@ namespace OpenSim.Data.SQLiteNG
167 r.Close(); 167 r.Close();
168 168
169 cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; 169 cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)";
170 cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); 170 cmd.Parameters.Add(":RegionID", regionID.ToString());
171 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); 171 cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
172 172
173 // This will throw on dupe key 173 // This will throw on dupe key
174 try 174 try
@@ -211,13 +211,13 @@ namespace OpenSim.Data.SQLiteNG
211 if (m_FieldMap[name].GetValue(es) is bool) 211 if (m_FieldMap[name].GetValue(es) is bool)
212 { 212 {
213 if ((bool)m_FieldMap[name].GetValue(es)) 213 if ((bool)m_FieldMap[name].GetValue(es))
214 cmd.Parameters.AddWithValue(":"+name, "1"); 214 cmd.Parameters.Add(":"+name, "1");
215 else 215 else
216 cmd.Parameters.AddWithValue(":"+name, "0"); 216 cmd.Parameters.Add(":"+name, "0");
217 } 217 }
218 else 218 else
219 { 219 {
220 cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString()); 220 cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString());
221 } 221 }
222 } 222 }
223 223
@@ -236,7 +236,7 @@ namespace OpenSim.Data.SQLiteNG
236 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 236 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
237 237
238 cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID"; 238 cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID";
239 cmd.Parameters.AddWithValue(":EstateID", es.EstateID); 239 cmd.Parameters.Add(":EstateID", es.EstateID);
240 240
241 IDataReader r = cmd.ExecuteReader(); 241 IDataReader r = cmd.ExecuteReader();
242 242
@@ -260,7 +260,7 @@ namespace OpenSim.Data.SQLiteNG
260 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 260 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
261 261
262 cmd.CommandText = "delete from estateban where EstateID = :EstateID"; 262 cmd.CommandText = "delete from estateban where EstateID = :EstateID";
263 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); 263 cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
264 264
265 cmd.ExecuteNonQuery(); 265 cmd.ExecuteNonQuery();
266 266
@@ -270,8 +270,8 @@ namespace OpenSim.Data.SQLiteNG
270 270
271 foreach (EstateBan b in es.EstateBans) 271 foreach (EstateBan b in es.EstateBans)
272 { 272 {
273 cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); 273 cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
274 cmd.Parameters.AddWithValue(":bannedUUID", b.BannedUserID.ToString()); 274 cmd.Parameters.Add(":bannedUUID", b.BannedUserID.ToString());
275 275
276 cmd.ExecuteNonQuery(); 276 cmd.ExecuteNonQuery();
277 cmd.Parameters.Clear(); 277 cmd.Parameters.Clear();
@@ -283,7 +283,7 @@ namespace OpenSim.Data.SQLiteNG
283 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 283 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
284 284
285 cmd.CommandText = "delete from "+table+" where EstateID = :EstateID"; 285 cmd.CommandText = "delete from "+table+" where EstateID = :EstateID";
286 cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString()); 286 cmd.Parameters.Add(":EstateID", EstateID.ToString());
287 287
288 cmd.ExecuteNonQuery(); 288 cmd.ExecuteNonQuery();
289 289
@@ -293,8 +293,8 @@ namespace OpenSim.Data.SQLiteNG
293 293
294 foreach (UUID uuid in data) 294 foreach (UUID uuid in data)
295 { 295 {
296 cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString()); 296 cmd.Parameters.Add(":EstateID", EstateID.ToString());
297 cmd.Parameters.AddWithValue(":uuid", uuid.ToString()); 297 cmd.Parameters.Add(":uuid", uuid.ToString());
298 298
299 cmd.ExecuteNonQuery(); 299 cmd.ExecuteNonQuery();
300 cmd.Parameters.Clear(); 300 cmd.Parameters.Clear();
@@ -308,7 +308,7 @@ namespace OpenSim.Data.SQLiteNG
308 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 308 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
309 309
310 cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID"; 310 cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID";
311 cmd.Parameters.AddWithValue(":EstateID", EstateID); 311 cmd.Parameters.Add(":EstateID", EstateID);
312 312
313 IDataReader r = cmd.ExecuteReader(); 313 IDataReader r = cmd.ExecuteReader();
314 314
@@ -333,7 +333,7 @@ namespace OpenSim.Data.SQLiteNG
333 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 333 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
334 334
335 cmd.CommandText = sql; 335 cmd.CommandText = sql;
336 cmd.Parameters.AddWithValue(":EstateID", estateID.ToString()); 336 cmd.Parameters.Add(":EstateID", estateID.ToString());
337 337
338 return DoLoad(cmd, UUID.Zero, false); 338 return DoLoad(cmd, UUID.Zero, false);
339 } 339 }
@@ -347,7 +347,7 @@ namespace OpenSim.Data.SQLiteNG
347 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 347 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
348 348
349 cmd.CommandText = sql; 349 cmd.CommandText = sql;
350 cmd.Parameters.AddWithValue(":EstateName", search); 350 cmd.Parameters.Add(":EstateName", search);
351 351
352 IDataReader r = cmd.ExecuteReader(); 352 IDataReader r = cmd.ExecuteReader();
353 353
@@ -365,8 +365,8 @@ namespace OpenSim.Data.SQLiteNG
365 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); 365 SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
366 366
367 cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; 367 cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)";
368 cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); 368 cmd.Parameters.Add(":RegionID", regionID.ToString());
369 cmd.Parameters.AddWithValue(":EstateID", estateID.ToString()); 369 cmd.Parameters.Add(":EstateID", estateID.ToString());
370 370
371 if (cmd.ExecuteNonQuery() == 0) 371 if (cmd.ExecuteNonQuery() == 0)
372 return false; 372 return false;
diff --git a/OpenSim/Data/SQLiteNG/SQLiteFramework.cs b/OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs
index f0ddc59..606478e 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteFramework.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs
@@ -31,9 +31,9 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using Mono.Data.Sqlite; 34using Mono.Data.SqliteClient;
35 35
36namespace OpenSim.Data.SQLiteNG 36namespace OpenSim.Data.SQLiteLegacy
37{ 37{
38 /// <summary> 38 /// <summary>
39 /// A database interface class to a user profile storage system 39 /// A database interface class to a user profile storage system
@@ -55,14 +55,11 @@ namespace OpenSim.Data.SQLiteNG
55 { 55 {
56 lock (connection) 56 lock (connection)
57 { 57 {
58/*
59 SqliteConnection newConnection = 58 SqliteConnection newConnection =
60 (SqliteConnection)((ICloneable)connection).Clone(); 59 (SqliteConnection)((ICloneable)connection).Clone();
61 newConnection.Open(); 60 newConnection.Open();
62 61
63 cmd.Connection = newConnection; 62 cmd.Connection = newConnection;
64*/
65 cmd.Connection = connection;
66 //Console.WriteLine("XXX " + cmd.CommandText); 63 //Console.WriteLine("XXX " + cmd.CommandText);
67 64
68 return cmd.ExecuteNonQuery(); 65 return cmd.ExecuteNonQuery();
@@ -73,12 +70,11 @@ namespace OpenSim.Data.SQLiteNG
73 { 70 {
74 lock (connection) 71 lock (connection)
75 { 72 {
76 //SqliteConnection newConnection = 73 SqliteConnection newConnection =
77 // (SqliteConnection)((ICloneable)connection).Clone(); 74 (SqliteConnection)((ICloneable)connection).Clone();
78 //newConnection.Open(); 75 newConnection.Open();
79 76
80 //cmd.Connection = newConnection; 77 cmd.Connection = newConnection;
81 cmd.Connection = connection;
82 //Console.WriteLine("XXX " + cmd.CommandText); 78 //Console.WriteLine("XXX " + cmd.CommandText);
83 79
84 return cmd.ExecuteReader(); 80 return cmd.ExecuteReader();
diff --git a/OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs
index 702a1d8..d529d4d 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs
@@ -31,9 +31,9 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using Mono.Data.Sqlite; 34using Mono.Data.SqliteClient;
35 35
36namespace OpenSim.Data.SQLiteNG 36namespace OpenSim.Data.SQLiteLegacy
37{ 37{
38 public class SQLiteFriendsData : SQLiteGenericTableHandler<FriendsData>, IFriendsData 38 public class SQLiteFriendsData : SQLiteGenericTableHandler<FriendsData>, IFriendsData
39 { 39 {
@@ -47,7 +47,7 @@ namespace OpenSim.Data.SQLiteNG
47 SqliteCommand cmd = new SqliteCommand(); 47 SqliteCommand cmd = new SqliteCommand();
48 48
49 cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm); 49 cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm);
50 cmd.Parameters.AddWithValue(":PrincipalID", userID.ToString()); 50 cmd.Parameters.Add(":PrincipalID", userID.ToString());
51 51
52 return DoQuery(cmd); 52 return DoQuery(cmd);
53 53
@@ -58,8 +58,8 @@ namespace OpenSim.Data.SQLiteNG
58 SqliteCommand cmd = new SqliteCommand(); 58 SqliteCommand cmd = new SqliteCommand();
59 59
60 cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm); 60 cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm);
61 cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString()); 61 cmd.Parameters.Add(":PrincipalID", principalID.ToString());
62 cmd.Parameters.AddWithValue(":Friend", friend); 62 cmd.Parameters.Add(":Friend", friend);
63 63
64 ExecuteNonQuery(cmd, cmd.Connection); 64 ExecuteNonQuery(cmd, cmd.Connection);
65 65
diff --git a/OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs b/OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs
index 632c5bf..1c1fe8c 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs
@@ -30,12 +30,12 @@ using System.Collections.Generic;
30using System.Data; 30using System.Data;
31using System.Reflection; 31using System.Reflection;
32using log4net; 32using log4net;
33using Mono.Data.Sqlite; 33using Mono.Data.SqliteClient;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
37 37
38namespace OpenSim.Data.SQLiteNG 38namespace OpenSim.Data.SQLiteLegacy
39{ 39{
40 public class SQLiteGenericTableHandler<T> : SQLiteFramework where T: class, new() 40 public class SQLiteGenericTableHandler<T> : SQLiteFramework where T: class, new()
41 { 41 {
@@ -59,21 +59,19 @@ namespace OpenSim.Data.SQLiteNG
59 if (!m_initialized) 59 if (!m_initialized)
60 { 60 {
61 m_Connection = new SqliteConnection(connectionString); 61 m_Connection = new SqliteConnection(connectionString);
62 Console.WriteLine(string.Format("OPENING CONNECTION FOR {0} USING {1}", storeName, connectionString));
63 m_Connection.Open(); 62 m_Connection.Open();
64 63
65 if (storeName != String.Empty) 64 if (storeName != String.Empty)
66 { 65 {
67 Assembly assem = GetType().Assembly; 66 Assembly assem = GetType().Assembly;
68 //SqliteConnection newConnection = 67 SqliteConnection newConnection =
69 // (SqliteConnection)((ICloneable)m_Connection).Clone(); 68 (SqliteConnection)((ICloneable)m_Connection).Clone();
70 //newConnection.Open(); 69 newConnection.Open();
71 70
72 //Migration m = new Migration(newConnection, assem, storeName); 71 Migration m = new Migration(newConnection, assem, storeName);
73 Migration m = new Migration(m_Connection, assem, storeName);
74 m.Update(); 72 m.Update();
75 //newConnection.Close(); 73 newConnection.Close();
76 //newConnection.Dispose(); 74 newConnection.Dispose();
77 } 75 }
78 76
79 m_initialized = true; 77 m_initialized = true;
@@ -199,7 +197,7 @@ namespace OpenSim.Data.SQLiteNG
199 result.Add(row); 197 result.Add(row);
200 } 198 }
201 199
202 //CloseCommand(cmd); 200 CloseCommand(cmd);
203 201
204 return result.ToArray(); 202 return result.ToArray();
205 } 203 }
diff --git a/OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs b/OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs
index 9207ca3..726703b 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs
@@ -30,11 +30,11 @@ using System.Collections.Generic;
30using System.Data; 30using System.Data;
31using System.Reflection; 31using System.Reflection;
32using log4net; 32using log4net;
33using Mono.Data.Sqlite; 33using Mono.Data.SqliteClient;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36 36
37namespace OpenSim.Data.SQLiteNG 37namespace OpenSim.Data.SQLiteLegacy
38{ 38{
39 /// <summary> 39 /// <summary>
40 /// An Inventory Interface to the SQLite database 40 /// An Inventory Interface to the SQLite database
@@ -98,13 +98,11 @@ namespace OpenSim.Data.SQLiteNG
98 ds.Tables.Add(createInventoryFoldersTable()); 98 ds.Tables.Add(createInventoryFoldersTable());
99 invFoldersDa.Fill(ds.Tables["inventoryfolders"]); 99 invFoldersDa.Fill(ds.Tables["inventoryfolders"]);
100 setupFoldersCommands(invFoldersDa, conn); 100 setupFoldersCommands(invFoldersDa, conn);
101 CreateDataSetMapping(invFoldersDa, "inventoryfolders");
102 m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions"); 101 m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions");
103 102
104 ds.Tables.Add(createInventoryItemsTable()); 103 ds.Tables.Add(createInventoryItemsTable());
105 invItemsDa.Fill(ds.Tables["inventoryitems"]); 104 invItemsDa.Fill(ds.Tables["inventoryitems"]);
106 setupItemsCommands(invItemsDa, conn); 105 setupItemsCommands(invItemsDa, conn);
107 CreateDataSetMapping(invItemsDa, "inventoryitems");
108 m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions"); 106 m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions");
109 107
110 ds.AcceptChanges(); 108 ds.AcceptChanges();
@@ -730,15 +728,6 @@ namespace OpenSim.Data.SQLiteNG
730 * 728 *
731 **********************************************************************/ 729 **********************************************************************/
732 730
733 protected void CreateDataSetMapping(IDataAdapter da, string tableName)
734 {
735 ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
736 foreach (DataColumn col in ds.Tables[tableName].Columns)
737 {
738 dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
739 }
740 }
741
742 /// <summary> 731 /// <summary>
743 /// Create the "inventoryitems" table 732 /// Create the "inventoryitems" table
744 /// </summary> 733 /// </summary>
diff --git a/OpenSim/Data/SQLiteNG/SQLiteRegionData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs
index 289d626..eb78037 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs
@@ -32,13 +32,13 @@ using System.Drawing;
32using System.IO; 32using System.IO;
33using System.Reflection; 33using System.Reflection;
34using log4net; 34using log4net;
35using Mono.Data.Sqlite; 35using Mono.Data.SqliteClient;
36using OpenMetaverse; 36using OpenMetaverse;
37using OpenSim.Framework; 37using OpenSim.Framework;
38using OpenSim.Region.Framework.Interfaces; 38using OpenSim.Region.Framework.Interfaces;
39using OpenSim.Region.Framework.Scenes; 39using OpenSim.Region.Framework.Scenes;
40 40
41namespace OpenSim.Data.SQLiteNG 41namespace OpenSim.Data.SQLiteLegacy
42{ 42{
43 /// <summary> 43 /// <summary>
44 /// A RegionData Interface to the SQLite database 44 /// A RegionData Interface to the SQLite database
@@ -87,142 +87,119 @@ namespace OpenSim.Data.SQLiteNG
87 /// <param name="connectionString">the connection string</param> 87 /// <param name="connectionString">the connection string</param>
88 public void Initialise(string connectionString) 88 public void Initialise(string connectionString)
89 { 89 {
90 try 90 m_connectionString = connectionString;
91 {
92 m_connectionString = connectionString;
93 91
94 ds = new DataSet("Region"); 92 ds = new DataSet();
95 93
96 m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString); 94 m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
97 m_conn = new SqliteConnection(m_connectionString); 95 m_conn = new SqliteConnection(m_connectionString);
98 m_conn.Open(); 96 m_conn.Open();
99 97
100 SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
101 primDa = new SqliteDataAdapter(primSelectCmd);
102 98
103 SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
104 shapeDa = new SqliteDataAdapter(shapeSelectCmd);
105 // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
106 99
107 SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn); 100 SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
108 itemsDa = new SqliteDataAdapter(itemsSelectCmd); 101 primDa = new SqliteDataAdapter(primSelectCmd);
102 // SqliteCommandBuilder primCb = new SqliteCommandBuilder(primDa);
109 103
110 SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn); 104 SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
111 terrainDa = new SqliteDataAdapter(terrainSelectCmd); 105 shapeDa = new SqliteDataAdapter(shapeSelectCmd);
106 // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
112 107
113 SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn); 108 SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn);
114 landDa = new SqliteDataAdapter(landSelectCmd); 109 itemsDa = new SqliteDataAdapter(itemsSelectCmd);
115 110
116 SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn); 111 SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn);
117 landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd); 112 terrainDa = new SqliteDataAdapter(terrainSelectCmd);
118 113
119 SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn); 114 SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn);
120 regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd); 115 landDa = new SqliteDataAdapter(landSelectCmd);
121 // This actually does the roll forward assembly stuff
122 Assembly assem = GetType().Assembly;
123 Migration m = new Migration(m_conn, assem, "RegionStore");
124 m.Update();
125 116
126 lock (ds) 117 SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn);
127 { 118 landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd);
128 ds.Tables.Add(createPrimTable());
129 setupPrimCommands(primDa, m_conn);
130 119
131 ds.Tables.Add(createShapeTable()); 120 SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn);
132 setupShapeCommands(shapeDa, m_conn); 121 regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd);
122 // This actually does the roll forward assembly stuff
123 Assembly assem = GetType().Assembly;
124 Migration m = new Migration(m_conn, assem, "RegionStore");
125 m.Update();
133 126
134 ds.Tables.Add(createItemsTable()); 127 lock (ds)
135 setupItemsCommands(itemsDa, m_conn); 128 {
129 ds.Tables.Add(createPrimTable());
130 setupPrimCommands(primDa, m_conn);
131 primDa.Fill(ds.Tables["prims"]);
136 132
137 ds.Tables.Add(createTerrainTable()); 133 ds.Tables.Add(createShapeTable());
138 setupTerrainCommands(terrainDa, m_conn); 134 setupShapeCommands(shapeDa, m_conn);
139 135
140 ds.Tables.Add(createLandTable()); 136 ds.Tables.Add(createItemsTable());
141 setupLandCommands(landDa, m_conn); 137 setupItemsCommands(itemsDa, m_conn);
138 itemsDa.Fill(ds.Tables["primitems"]);
142 139
143 ds.Tables.Add(createLandAccessListTable()); 140 ds.Tables.Add(createTerrainTable());
144 setupLandAccessCommands(landAccessListDa, m_conn); 141 setupTerrainCommands(terrainDa, m_conn);
145 142
146 ds.Tables.Add(createRegionSettingsTable()); 143 ds.Tables.Add(createLandTable());
147 setupRegionSettingsCommands(regionSettingsDa, m_conn); 144 setupLandCommands(landDa, m_conn);
148 145
149 // WORKAROUND: This is a work around for sqlite on 146 ds.Tables.Add(createLandAccessListTable());
150 // windows, which gets really unhappy with blob columns 147 setupLandAccessCommands(landAccessListDa, m_conn);
151 // that have no sample data in them. At some point we
152 // need to actually find a proper way to handle this.
153 try
154 {
155 primDa.Fill(ds.Tables["prims"]);
156 }
157 catch (Exception)
158 {
159 m_log.Info("[REGION DB]: Caught fill error on prims table");
160 }
161 148
162 try 149 ds.Tables.Add(createRegionSettingsTable());
163 { 150
164 shapeDa.Fill(ds.Tables["primshapes"]); 151 setupRegionSettingsCommands(regionSettingsDa, m_conn);
165 }
166 catch (Exception)
167 {
168 m_log.Info("[REGION DB]: Caught fill error on primshapes table");
169 }
170 152
171 try 153 // WORKAROUND: This is a work around for sqlite on
172 { 154 // windows, which gets really unhappy with blob columns
173 terrainDa.Fill(ds.Tables["terrain"]); 155 // that have no sample data in them. At some point we
174 } 156 // need to actually find a proper way to handle this.
175 catch (Exception) 157 try
176 { 158 {
177 m_log.Info("[REGION DB]: Caught fill error on terrain table"); 159 shapeDa.Fill(ds.Tables["primshapes"]);
178 } 160 }
161 catch (Exception)
162 {
163 m_log.Info("[REGION DB]: Caught fill error on primshapes table");
164 }
179 165
180 try 166 try
181 { 167 {
182 landDa.Fill(ds.Tables["land"]); 168 terrainDa.Fill(ds.Tables["terrain"]);
183 } 169 }
184 catch (Exception) 170 catch (Exception)
185 { 171 {
186 m_log.Info("[REGION DB]: Caught fill error on land table"); 172 m_log.Info("[REGION DB]: Caught fill error on terrain table");
187 } 173 }
188 174
189 try 175 try
190 { 176 {
191 landAccessListDa.Fill(ds.Tables["landaccesslist"]); 177 landDa.Fill(ds.Tables["land"]);
192 } 178 }
193 catch (Exception) 179 catch (Exception)
194 { 180 {
195 m_log.Info("[REGION DB]: Caught fill error on landaccesslist table"); 181 m_log.Info("[REGION DB]: Caught fill error on land table");
196 } 182 }
197 183
198 try 184 try
199 { 185 {
200 regionSettingsDa.Fill(ds.Tables["regionsettings"]); 186 landAccessListDa.Fill(ds.Tables["landaccesslist"]);
201 } 187 }
202 catch (Exception) 188 catch (Exception)
203 { 189 {
204 m_log.Info("[REGION DB]: Caught fill error on regionsettings table"); 190 m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
205 } 191 }
206 192
207 // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values! 193 try
208 // Not sure exactly why this is - this kind of thing was not necessary before - justincc 20100409 194 {
209 // Possibly because we manually set up our own DataTables before connecting to the database 195 regionSettingsDa.Fill(ds.Tables["regionsettings"]);
210 CreateDataSetMapping(primDa, "prims");
211 CreateDataSetMapping(shapeDa, "primshapes");
212 CreateDataSetMapping(itemsDa, "primitems");
213 CreateDataSetMapping(terrainDa, "terrain");
214 CreateDataSetMapping(landDa, "land");
215 CreateDataSetMapping(landAccessListDa, "landaccesslist");
216 CreateDataSetMapping(regionSettingsDa, "regionsettings");
217 } 196 }
197 catch (Exception)
198 {
199 m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
200 }
201 return;
218 } 202 }
219 catch (Exception e)
220 {
221 m_log.Error(e);
222 Environment.Exit(23);
223 }
224
225 return;
226 } 203 }
227 204
228 public void Dispose() 205 public void Dispose()
@@ -626,7 +603,7 @@ namespace OpenSim.Data.SQLiteNG
626 } 603 }
627 } 604 }
628 } 605 }
629 rev = Convert.ToInt32(row["Revision"]); 606 rev = (int) row["Revision"];
630 } 607 }
631 else 608 else
632 { 609 {
@@ -778,7 +755,6 @@ namespace OpenSim.Data.SQLiteNG
778 /// </summary> 755 /// </summary>
779 public void Commit() 756 public void Commit()
780 { 757 {
781 m_log.Debug("[SQLITE]: Starting commit");
782 lock (ds) 758 lock (ds)
783 { 759 {
784 primDa.Update(ds, "prims"); 760 primDa.Update(ds, "prims");
@@ -793,11 +769,18 @@ namespace OpenSim.Data.SQLiteNG
793 { 769 {
794 regionSettingsDa.Update(ds, "regionsettings"); 770 regionSettingsDa.Update(ds, "regionsettings");
795 } 771 }
796 catch (SqliteException SqlEx) 772 catch (SqliteExecutionException SqlEx)
797 { 773 {
798 throw new Exception( 774 if (SqlEx.Message.Contains("logic error"))
799 "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!", 775 {
800 SqlEx); 776 throw new Exception(
777 "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!",
778 SqlEx);
779 }
780 else
781 {
782 throw SqlEx;
783 }
801 } 784 }
802 ds.AcceptChanges(); 785 ds.AcceptChanges();
803 } 786 }
@@ -819,15 +802,6 @@ namespace OpenSim.Data.SQLiteNG
819 * 802 *
820 **********************************************************************/ 803 **********************************************************************/
821 804
822 protected void CreateDataSetMapping(IDataAdapter da, string tableName)
823 {
824 ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
825 foreach (DataColumn col in ds.Tables[tableName].Columns)
826 {
827 dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
828 }
829 }
830
831 /// <summary> 805 /// <summary>
832 /// 806 ///
833 /// </summary> 807 /// </summary>
@@ -1990,7 +1964,6 @@ namespace OpenSim.Data.SQLiteNG
1990 sql += ") values (:"; 1964 sql += ") values (:";
1991 sql += String.Join(", :", cols); 1965 sql += String.Join(", :", cols);
1992 sql += ")"; 1966 sql += ")";
1993 m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql);
1994 SqliteCommand cmd = new SqliteCommand(sql); 1967 SqliteCommand cmd = new SqliteCommand(sql);
1995 1968
1996 // this provides the binding for all our parameters, so 1969 // this provides the binding for all our parameters, so
@@ -2286,36 +2259,6 @@ namespace OpenSim.Data.SQLiteNG
2286 return DbType.String; 2259 return DbType.String;
2287 } 2260 }
2288 } 2261 }
2289
2290 static void PrintDataSet(DataSet ds)
2291 {
2292 // Print out any name and extended properties.
2293 Console.WriteLine("DataSet is named: {0}", ds.DataSetName);
2294 foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties)
2295 {
2296 Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
2297 }
2298 Console.WriteLine();
2299 foreach (DataTable dt in ds.Tables)
2300 {
2301 Console.WriteLine("=> {0} Table:", dt.TableName);
2302 // Print out the column names.
2303 for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
2304 {
2305 Console.Write(dt.Columns[curCol].ColumnName + "\t");
2306 }
2307 Console.WriteLine("\n----------------------------------");
2308 // Print the DataTable.
2309 for (int curRow = 0; curRow < dt.Rows.Count; curRow++)
2310 {
2311 for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
2312 {
2313 Console.Write(dt.Rows[curRow][curCol].ToString() + "\t");
2314 }
2315 Console.WriteLine();
2316 }
2317 }
2318 }
2319 2262
2320 } 2263 }
2321} 2264}
diff --git a/OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs
index f77159c..27553c6 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs
@@ -31,9 +31,9 @@ using System.Collections.Generic;
31using System.Data; 31using System.Data;
32using OpenMetaverse; 32using OpenMetaverse;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using Mono.Data.Sqlite; 34using Mono.Data.SqliteClient;
35 35
36namespace OpenSim.Data.SQLiteNG 36namespace OpenSim.Data.SQLiteLegacy
37{ 37{
38 public class SQLiteUserAccountData : SQLiteGenericTableHandler<UserAccountData>, IUserAccountData 38 public class SQLiteUserAccountData : SQLiteGenericTableHandler<UserAccountData>, IUserAccountData
39 { 39 {
@@ -66,7 +66,7 @@ namespace OpenSim.Data.SQLiteNG
66 66
67 if (words.Length == 1) 67 if (words.Length == 1)
68 { 68 {
69 cmd.CommandText = String.Format("select * from {0} where ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')", 69 cmd.CommandText = String.Format("select * from {0} where (ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')",
70 m_Realm, scopeID.ToString(), words[0]); 70 m_Realm, scopeID.ToString(), words[0]);
71 } 71 }
72 else 72 else
diff --git a/OpenSim/Data/SQLiteNG/SQLiteUtils.cs b/OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs
index 82a2e37..095a262 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteUtils.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs
@@ -27,9 +27,9 @@
27 27
28using System; 28using System;
29using System.Data; 29using System.Data;
30using Mono.Data.Sqlite; 30using Mono.Data.SqliteClient;
31 31
32namespace OpenSim.Data.SQLiteNG 32namespace OpenSim.Data.SQLiteLegacy
33{ 33{
34 /// <summary> 34 /// <summary>
35 /// A base class for methods needed by all SQLite database classes 35 /// A base class for methods needed by all SQLite database classes
diff --git a/OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs
index a0c17f8..5422cbf 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs
@@ -29,12 +29,12 @@ using System;
29using System.Data; 29using System.Data;
30using System.Reflection; 30using System.Reflection;
31using System.Collections.Generic; 31using System.Collections.Generic;
32using Mono.Data.Sqlite; 32using Mono.Data.SqliteClient;
33using log4net; 33using log4net;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework; 35using OpenSim.Framework;
36 36
37namespace OpenSim.Data.SQLiteNG 37namespace OpenSim.Data.SQLiteLegacy
38{ 38{
39 /// <summary> 39 /// <summary>
40 /// A MySQL Interface for the Asset Server 40 /// A MySQL Interface for the Asset Server
@@ -147,7 +147,7 @@ namespace OpenSim.Data.SQLiteNG
147 } 147 }
148 148
149 reader.Close(); 149 reader.Close();
150 //CloseCommand(cmd); 150 CloseCommand(cmd);
151 151
152 return perms; 152 return perms;
153 } 153 }
diff --git a/OpenSim/Data/Tests/DataTestUtil.cs b/OpenSim/Data/Tests/DataTestUtil.cs
index d211ab3..5393529 100644
--- a/OpenSim/Data/Tests/DataTestUtil.cs
+++ b/OpenSim/Data/Tests/DataTestUtil.cs
@@ -39,7 +39,8 @@ namespace OpenSim.Data.Tests
39 public class DataTestUtil 39 public class DataTestUtil
40 { 40 {
41 public const uint UNSIGNED_INTEGER_MIN = uint.MinValue; 41 public const uint UNSIGNED_INTEGER_MIN = uint.MinValue;
42 public const uint UNSIGNED_INTEGER_MAX = uint.MaxValue; 42 //public const uint UNSIGNED_INTEGER_MAX = uint.MaxValue;
43 public const uint UNSIGNED_INTEGER_MAX = INTEGER_MAX;
43 44
44 public const int INTEGER_MIN = int.MinValue + 1; // Postgresql requires +1 to .NET int.MinValue 45 public const int INTEGER_MIN = int.MinValue + 1; // Postgresql requires +1 to .NET int.MinValue
45 public const int INTEGER_MAX = int.MaxValue; 46 public const int INTEGER_MAX = int.MaxValue;
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index bbc6f78..f49cd97 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -113,14 +113,14 @@
113 113
114 ; --- To use sqlite as region storage: 114 ; --- To use sqlite as region storage:
115 ; 115 ;
116 ; PLEASE NOTE: Unfortunately, the SQLiteNG database plugin, while necessary to use sqlite with Mono on Linux, is 116 ; PLEASE NOTE: Unfortunately, the current SQLite database plugin (necessary to use SQLite with Mono on Linux) is
117 ; not compatible with the sqlite3 library installed on Mac OSX. If you're using Mono 2.4 you can still use the old sqlite 117 ; not compatible with the sqlite3 library installed on Mac OSX. If you're using Mono 2.4 you can still use the old sqlite
118 ; library by uncommenting the SQLite.dll storage plugin (and commenting out SQLiteNG). Unfortunately, the older library 118 ; library by uncommenting the SQLiteLegacy.dll storage plugin (and commenting out SQLite.dll). Unfortunately, the older library
119 ; will not work with Mono 2.6 on Mac OSX so you will either need to replace the sqlite3 system library or use MySQL instead 119 ; will not work with Mono 2.6 on Mac OSX so you will either need to replace the OSX sqlite3 system library or use MySQL instead
120 ; 120 ;
121 ; You will also need to do the same thing in config-include/StandaloneCommon.ini if you are running in standalone mode 121 ; You will also need to do the same thing in config-include/StandaloneCommon.ini if you are running in standalone mode
122 storage_plugin = "OpenSim.Data.SQLiteNG.dll" 122 storage_plugin = "OpenSim.Data.SQLite.dll"
123 ;storage_plugin = "OpenSim.Data.SQLite.dll" 123 ;storage_plugin = "OpenSim.Data.SQLiteLegacy.dll"
124 storage_connection_string="URI=file:OpenSim.db,version=3"; 124 storage_connection_string="URI=file:OpenSim.db,version=3";
125 125
126 ; --- To use MySQL storage, supply your own connection string (this is only an example): 126 ; --- To use MySQL storage, supply your own connection string (this is only an example):
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example
index 58860d1..572c153 100644
--- a/bin/config-include/StandaloneCommon.ini.example
+++ b/bin/config-include/StandaloneCommon.ini.example
@@ -6,12 +6,12 @@
6 ; 6 ;
7 7
8 ; SQLite 8 ; SQLite
9 Include-Storage = "config-include/storage/SQLiteNGStandalone.ini"; 9 Include-Storage = "config-include/storage/SQLiteStandalone.ini";
10 10
11 ; Unfortunately SQLiteNG is not compatible with Mac OSX. You can still use the older 11 ; Unfortunately the current SQLite database plugin is not compatible with Mac OSX. You can still use the older
12 ; sqlite library if you are using Mono 2.4. Please see the notes in OpenSim.ini for sqlite 12 ; legacy sqlite library if you are using Mono 2.4. Please see the notes in OpenSim.ini (search for sqlite)
13 ; for more details 13 ; for more details
14 ;Include-Storage = "config-include/storage/SQLiteStandalone.ini"; 14 ;Include-Storage = "config-include/storage/SQLiteLegacyStandalone.ini";
15 15
16 ; MySql 16 ; MySql
17 ; Uncomment these lines if you want to use mysql storage 17 ; Uncomment these lines if you want to use mysql storage
diff --git a/bin/config-include/storage/SQLiteNGStandalone.ini b/bin/config-include/storage/SQLiteLegacyStandalone.ini
index ba00aca..1d4dd29 100644
--- a/bin/config-include/storage/SQLiteNGStandalone.ini
+++ b/bin/config-include/storage/SQLiteLegacyStandalone.ini
@@ -1,7 +1,7 @@
1; These are the initialization settings for running OpenSim Standalone with an SQLite database 1; These are the initialization settings for running OpenSim Standalone with an SQLite database
2 2
3[DatabaseService] 3[DatabaseService]
4 StorageProvider = "OpenSim.Data.SQLiteNG.dll" 4 StorageProvider = "OpenSim.Data.SQLiteLegacy.dll"
5 5
6[AvatarService] 6[AvatarService]
7 ConnectionString = "URI=file:avatars.db,version=3" 7 ConnectionString = "URI=file:avatars.db,version=3"
diff --git a/prebuild.xml b/prebuild.xml
index 602750a..9802349 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -2178,7 +2178,7 @@
2178 </Files> 2178 </Files>
2179 </Project> 2179 </Project>
2180 2180
2181 <Project frameworkVersion="v3_5" name="OpenSim.Data.SQLite" path="OpenSim/Data/SQLite" type="Library"> 2181 <Project frameworkVersion="v3_5" name="OpenSim.Data.SQLiteLegacy" path="OpenSim/Data/SQLiteLegacy" type="Library">
2182 <Configuration name="Debug"> 2182 <Configuration name="Debug">
2183 <Options> 2183 <Options>
2184 <OutputPath>../../../bin/</OutputPath> 2184 <OutputPath>../../../bin/</OutputPath>
@@ -2215,7 +2215,7 @@
2215 </Files> 2215 </Files>
2216 </Project> 2216 </Project>
2217 2217
2218 <Project frameworkVersion="v3_5" name="OpenSim.Data.SQLiteNG" path="OpenSim/Data/SQLiteNG" type="Library"> 2218 <Project frameworkVersion="v3_5" name="OpenSim.Data.SQLite" path="OpenSim/Data/SQLite" type="Library">
2219 <Configuration name="Debug"> 2219 <Configuration name="Debug">
2220 <Options> 2220 <Options>
2221 <OutputPath>../../../bin/</OutputPath> 2221 <OutputPath>../../../bin/</OutputPath>