From 56fe4c24b8c67ec3b6a5a897c35ab19507bd1077 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 30 Apr 2010 17:45:00 +0100
Subject: 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.
---
OpenSim/Data/SQLite/SQLiteRegionData.cs | 259 +++++++++++++++++++-------------
1 file changed, 158 insertions(+), 101 deletions(-)
(limited to 'OpenSim/Data/SQLite/SQLiteRegionData.cs')
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index 5a4ee2a..85368ab 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -32,7 +32,7 @@ using System.Drawing;
using System.IO;
using System.Reflection;
using log4net;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
@@ -87,119 +87,142 @@ namespace OpenSim.Data.SQLite
/// the connection string
public void Initialise(string connectionString)
{
- m_connectionString = connectionString;
+ try
+ {
+ m_connectionString = connectionString;
- ds = new DataSet();
+ ds = new DataSet("Region");
- m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
- m_conn = new SqliteConnection(m_connectionString);
- m_conn.Open();
+ m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
+ m_conn = new SqliteConnection(m_connectionString);
+ m_conn.Open();
+ SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
+ primDa = new SqliteDataAdapter(primSelectCmd);
+ SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
+ shapeDa = new SqliteDataAdapter(shapeSelectCmd);
+ // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
- SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
- primDa = new SqliteDataAdapter(primSelectCmd);
- // SqliteCommandBuilder primCb = new SqliteCommandBuilder(primDa);
+ SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn);
+ itemsDa = new SqliteDataAdapter(itemsSelectCmd);
- SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
- shapeDa = new SqliteDataAdapter(shapeSelectCmd);
- // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
+ SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn);
+ terrainDa = new SqliteDataAdapter(terrainSelectCmd);
- SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn);
- itemsDa = new SqliteDataAdapter(itemsSelectCmd);
+ SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn);
+ landDa = new SqliteDataAdapter(landSelectCmd);
- SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn);
- terrainDa = new SqliteDataAdapter(terrainSelectCmd);
+ SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn);
+ landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd);
- SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn);
- landDa = new SqliteDataAdapter(landSelectCmd);
+ SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn);
+ regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd);
+ // This actually does the roll forward assembly stuff
+ Assembly assem = GetType().Assembly;
+ Migration m = new Migration(m_conn, assem, "RegionStore");
+ m.Update();
- SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn);
- landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd);
+ lock (ds)
+ {
+ ds.Tables.Add(createPrimTable());
+ setupPrimCommands(primDa, m_conn);
- SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn);
- regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd);
- // This actually does the roll forward assembly stuff
- Assembly assem = GetType().Assembly;
- Migration m = new Migration(m_conn, assem, "RegionStore");
- m.Update();
+ ds.Tables.Add(createShapeTable());
+ setupShapeCommands(shapeDa, m_conn);
- lock (ds)
- {
- ds.Tables.Add(createPrimTable());
- setupPrimCommands(primDa, m_conn);
- primDa.Fill(ds.Tables["prims"]);
+ ds.Tables.Add(createItemsTable());
+ setupItemsCommands(itemsDa, m_conn);
- ds.Tables.Add(createShapeTable());
- setupShapeCommands(shapeDa, m_conn);
+ ds.Tables.Add(createTerrainTable());
+ setupTerrainCommands(terrainDa, m_conn);
- ds.Tables.Add(createItemsTable());
- setupItemsCommands(itemsDa, m_conn);
- itemsDa.Fill(ds.Tables["primitems"]);
+ ds.Tables.Add(createLandTable());
+ setupLandCommands(landDa, m_conn);
- ds.Tables.Add(createTerrainTable());
- setupTerrainCommands(terrainDa, m_conn);
+ ds.Tables.Add(createLandAccessListTable());
+ setupLandAccessCommands(landAccessListDa, m_conn);
- ds.Tables.Add(createLandTable());
- setupLandCommands(landDa, m_conn);
+ ds.Tables.Add(createRegionSettingsTable());
+ setupRegionSettingsCommands(regionSettingsDa, m_conn);
- ds.Tables.Add(createLandAccessListTable());
- setupLandAccessCommands(landAccessListDa, m_conn);
+ // WORKAROUND: This is a work around for sqlite on
+ // windows, which gets really unhappy with blob columns
+ // that have no sample data in them. At some point we
+ // need to actually find a proper way to handle this.
+ try
+ {
+ primDa.Fill(ds.Tables["prims"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on prims table");
+ }
- ds.Tables.Add(createRegionSettingsTable());
-
- setupRegionSettingsCommands(regionSettingsDa, m_conn);
+ try
+ {
+ shapeDa.Fill(ds.Tables["primshapes"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on primshapes table");
+ }
- // WORKAROUND: This is a work around for sqlite on
- // windows, which gets really unhappy with blob columns
- // that have no sample data in them. At some point we
- // need to actually find a proper way to handle this.
- try
- {
- shapeDa.Fill(ds.Tables["primshapes"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on primshapes table");
- }
+ try
+ {
+ terrainDa.Fill(ds.Tables["terrain"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on terrain table");
+ }
- try
- {
- terrainDa.Fill(ds.Tables["terrain"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on terrain table");
- }
+ try
+ {
+ landDa.Fill(ds.Tables["land"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on land table");
+ }
- try
- {
- landDa.Fill(ds.Tables["land"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on land table");
- }
+ try
+ {
+ landAccessListDa.Fill(ds.Tables["landaccesslist"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
+ }
- try
- {
- landAccessListDa.Fill(ds.Tables["landaccesslist"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
- }
+ try
+ {
+ regionSettingsDa.Fill(ds.Tables["regionsettings"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
+ }
- try
- {
- regionSettingsDa.Fill(ds.Tables["regionsettings"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
+ // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values!
+ // Not sure exactly why this is - this kind of thing was not necessary before - justincc 20100409
+ // Possibly because we manually set up our own DataTables before connecting to the database
+ CreateDataSetMapping(primDa, "prims");
+ CreateDataSetMapping(shapeDa, "primshapes");
+ CreateDataSetMapping(itemsDa, "primitems");
+ CreateDataSetMapping(terrainDa, "terrain");
+ CreateDataSetMapping(landDa, "land");
+ CreateDataSetMapping(landAccessListDa, "landaccesslist");
+ CreateDataSetMapping(regionSettingsDa, "regionsettings");
}
- return;
}
+ catch (Exception e)
+ {
+ m_log.Error(e);
+ Environment.Exit(23);
+ }
+
+ return;
}
public void Dispose()
@@ -594,7 +617,7 @@ namespace OpenSim.Data.SQLite
}
}
}
- rev = (int) row["Revision"];
+ rev = Convert.ToInt32(row["Revision"]);
}
else
{
@@ -746,6 +769,7 @@ namespace OpenSim.Data.SQLite
///
public void Commit()
{
+ m_log.Debug("[SQLITE]: Starting commit");
lock (ds)
{
primDa.Update(ds, "prims");
@@ -760,18 +784,11 @@ namespace OpenSim.Data.SQLite
{
regionSettingsDa.Update(ds, "regionsettings");
}
- catch (SqliteExecutionException SqlEx)
+ catch (SqliteException SqlEx)
{
- if (SqlEx.Message.Contains("logic error"))
- {
- throw new Exception(
- "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!",
- SqlEx);
- }
- else
- {
- throw SqlEx;
- }
+ throw new Exception(
+ "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!",
+ SqlEx);
}
ds.AcceptChanges();
}
@@ -793,6 +810,15 @@ namespace OpenSim.Data.SQLite
*
**********************************************************************/
+ protected void CreateDataSetMapping(IDataAdapter da, string tableName)
+ {
+ ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
+ foreach (DataColumn col in ds.Tables[tableName].Columns)
+ {
+ dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
+ }
+ }
+
///
///
///
@@ -1955,6 +1981,7 @@ namespace OpenSim.Data.SQLite
sql += ") values (:";
sql += String.Join(", :", cols);
sql += ")";
+ m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql);
SqliteCommand cmd = new SqliteCommand(sql);
// this provides the binding for all our parameters, so
@@ -2250,6 +2277,36 @@ namespace OpenSim.Data.SQLite
return DbType.String;
}
}
+
+ static void PrintDataSet(DataSet ds)
+ {
+ // Print out any name and extended properties.
+ Console.WriteLine("DataSet is named: {0}", ds.DataSetName);
+ foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties)
+ {
+ Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
+ }
+ Console.WriteLine();
+ foreach (DataTable dt in ds.Tables)
+ {
+ Console.WriteLine("=> {0} Table:", dt.TableName);
+ // Print out the column names.
+ for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
+ {
+ Console.Write(dt.Columns[curCol].ColumnName + "\t");
+ }
+ Console.WriteLine("\n----------------------------------");
+ // Print the DataTable.
+ for (int curRow = 0; curRow < dt.Rows.Count; curRow++)
+ {
+ for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
+ {
+ Console.Write(dt.Rows[curRow][curCol].ToString() + "\t");
+ }
+ Console.WriteLine();
+ }
+ }
+ }
}
}
--
cgit v1.1
From d8b604b550c76610187d929087bce3b08e7018c5 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 30 Apr 2010 18:18:21 +0100
Subject: take out some debug logging in the sqlite db adaptor
---
OpenSim/Data/SQLite/SQLiteRegionData.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Data/SQLite/SQLiteRegionData.cs')
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index 85368ab..fe6e919 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -769,7 +769,7 @@ namespace OpenSim.Data.SQLite
///
public void Commit()
{
- m_log.Debug("[SQLITE]: Starting commit");
+ //m_log.Debug("[SQLITE]: Starting commit");
lock (ds)
{
primDa.Update(ds, "prims");
@@ -1914,7 +1914,7 @@ namespace OpenSim.Data.SQLite
///
public void StorePrimInventory(UUID primID, ICollection items)
{
- m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
+ //m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
DataTable dbItems = ds.Tables["primitems"];
@@ -1981,7 +1981,7 @@ namespace OpenSim.Data.SQLite
sql += ") values (:";
sql += String.Join(", :", cols);
sql += ")";
- m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql);
+ //m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql);
SqliteCommand cmd = new SqliteCommand(sql);
// this provides the binding for all our parameters, so
--
cgit v1.1
From 8eb70f9719585f26f4dc610b383d546bda091655 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 4 Jun 2010 17:14:12 +0100
Subject: Fix bug where prim items were not loaded in the new sqlite database
handler
This addresses mantis http://opensimulator.org/mantis/view.php?id=4739
---
OpenSim/Data/SQLite/SQLiteRegionData.cs | 66 +++++++++++++++++++--------------
1 file changed, 39 insertions(+), 27 deletions(-)
(limited to 'OpenSim/Data/SQLite/SQLiteRegionData.cs')
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index fe6e919..4313db8 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -93,7 +93,7 @@ namespace OpenSim.Data.SQLite
ds = new DataSet("Region");
- m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
+ m_log.Info("[SQLITE REGION DB]: Sqlite - connecting: " + connectionString);
m_conn = new SqliteConnection(m_connectionString);
m_conn.Open();
@@ -156,7 +156,7 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on prims table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on prims table");
}
try
@@ -165,16 +165,25 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on primshapes table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on primshapes table");
}
try
{
+ itemsDa.Fill(ds.Tables["primitems"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on primitems table");
+ }
+
+ try
+ {
terrainDa.Fill(ds.Tables["terrain"]);
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on terrain table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on terrain table");
}
try
@@ -183,7 +192,7 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on land table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on land table");
}
try
@@ -192,7 +201,7 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on landaccesslist table");
}
try
@@ -201,7 +210,7 @@ namespace OpenSim.Data.SQLite
}
catch (Exception)
{
- m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
+ m_log.Info("[SQLITE REGION DB]: Caught fill error on regionsettings table");
}
// We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values!
@@ -425,7 +434,7 @@ namespace OpenSim.Data.SQLite
lock (ds)
{
DataRow[] primsForRegion = prims.Select(byRegion);
- m_log.Info("[REGION DB]: Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
+// m_log.Info("[SQLITE REGION DB]: Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
// First, create all groups
foreach (DataRow primRow in primsForRegion)
@@ -447,8 +456,8 @@ namespace OpenSim.Data.SQLite
}
else
{
- m_log.Info(
- "[REGION DB]: No shape found for prim in storage, so setting default box shape");
+ m_log.Warn(
+ "[SQLITE REGION DB]: No shape found for prim in storage, so setting default box shape");
prim.Shape = PrimitiveBaseShape.Default;
}
@@ -460,11 +469,11 @@ namespace OpenSim.Data.SQLite
}
catch (Exception e)
{
- m_log.Error("[REGION DB]: Failed create prim object in new group, exception and data follows");
- m_log.Info("[REGION DB]: " + e.ToString());
+ m_log.Error("[SQLITE REGION DB]: Failed create prim object in new group, exception and data follows");
+ m_log.Error("[SQLITE REGION DB]: ", e);
foreach (DataColumn col in prims.Columns)
{
- m_log.Info("[REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
+ m_log.Error("[SQLITE REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
}
}
}
@@ -489,7 +498,7 @@ namespace OpenSim.Data.SQLite
else
{
m_log.Warn(
- "[REGION DB]: No shape found for prim in storage, so setting default box shape");
+ "[SQLITE REGION DB]: No shape found for prim in storage, so setting default box shape");
prim.Shape = PrimitiveBaseShape.Default;
}
@@ -499,11 +508,11 @@ namespace OpenSim.Data.SQLite
}
catch (Exception e)
{
- m_log.Error("[REGION DB]: Failed create prim object in group, exception and data follows");
- m_log.Info("[REGION DB]: " + e.ToString());
+ m_log.Error("[SQLITE REGION DB]: Failed create prim object in group, exception and data follows");
+ m_log.Error("[SQLITE REGION DB]: ", e);
foreach (DataColumn col in prims.Columns)
{
- m_log.Info("[REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
+ m_log.Error("[SQLITE REGION DB]: Col: " + col.ColumnName + " => " + primRow[col]);
}
}
}
@@ -516,20 +525,23 @@ namespace OpenSim.Data.SQLite
///
/// the prim
private void LoadItems(SceneObjectPart prim)
- {
- //m_log.DebugFormat("[DATASTORE]: Loading inventory for {0}, {1}", prim.Name, prim.UUID);
-
+ {
+// m_log.DebugFormat("[SQLITE REGION DB]: Loading inventory for {0} {1}", prim.Name, prim.UUID);
+
DataTable dbItems = ds.Tables["primitems"];
- String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
+ String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
DataRow[] dbItemRows = dbItems.Select(sql);
IList inventory = new List();
+// m_log.DebugFormat(
+// "[SQLITE REGION DB]: Found {0} items for {1} {2}", dbItemRows.Length, prim.Name, prim.UUID);
+
foreach (DataRow row in dbItemRows)
{
TaskInventoryItem item = buildItem(row);
inventory.Add(item);
- //m_log.DebugFormat("[DATASTORE]: Restored item {0}, {1}", item.Name, item.ItemID);
+// m_log.DebugFormat("[SQLITE REGION DB]: Restored item {0} {1}", item.Name, item.ItemID);
}
prim.Inventory.RestoreInventoryItems(inventory);
@@ -565,7 +577,7 @@ namespace OpenSim.Data.SQLite
// the following is an work around for .NET. The perf
// issues associated with it aren't as bad as you think.
- m_log.Info("[REGION DB]: Storing terrain revision r" + revision.ToString());
+ m_log.Debug("[SQLITE REGION DB]: Storing terrain revision r" + revision.ToString());
String sql = "insert into terrain(RegionUUID, Revision, Heightfield)" +
" values(:RegionUUID, :Revision, :Heightfield)";
@@ -621,11 +633,11 @@ namespace OpenSim.Data.SQLite
}
else
{
- m_log.Info("[REGION DB]: No terrain found for region");
+ m_log.Warn("[SQLITE REGION DB]: No terrain found for region");
return null;
}
- m_log.Info("[REGION DB]: Loaded terrain revision r" + rev.ToString());
+ m_log.Debug("[SQLITE REGION DB]: Loaded terrain revision r" + rev.ToString());
}
}
return terret;
@@ -1407,7 +1419,7 @@ namespace OpenSim.Data.SQLite
}
catch (InvalidCastException)
{
- m_log.ErrorFormat("[PARCEL]: unable to get parcel telehub settings for {1}", newData.Name);
+ m_log.ErrorFormat("[SQLITE REGION DB]: unable to get parcel telehub settings for {1}", newData.Name);
newData.UserLocation = Vector3.Zero;
newData.UserLookAt = Vector3.Zero;
}
@@ -1914,7 +1926,7 @@ namespace OpenSim.Data.SQLite
///
public void StorePrimInventory(UUID primID, ICollection items)
{
- //m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
+// m_log.DebugFormat("[SQLITE REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
DataTable dbItems = ds.Tables["primitems"];
--
cgit v1.1