[fdo-trac] #284: .NET: Exceptions being thrown on
IInserts/IUpdates involving large datasets
FDO
trac_fdo at osgeo.org
Wed Apr 2 15:16:22 EDT 2008
#284: .NET: Exceptions being thrown on IInserts/IUpdates involving large datasets
---------------------+------------------------------------------------------
Reporter: MaksimS | Owner: gregboone
Type: defect | Status: assigned
Priority: major | Milestone: 3.4.0
Component: FDO API | Version: 3.2.0
Severity: 3 | Resolution:
Keywords: | External_id:
---------------------+------------------------------------------------------
Comment (by gregboone):
Test Details:
{{{
Unit Test:
public void Test_LargeDataVolumeInsert()
{
IConnection mConnection = base.ConnectionInitialized;
mConnection.ConnectionString =
@"File=..\..\..\..\TestData\PARCEL_NEW.SDF";
ConnectionState state = mConnection.Open();
IInsert insertCmd =
(IInsert)mConnection.CreateCommand(CommandType.CommandType_Insert);
insertCmd.SetFeatureClassName("MyClass");
PropertyValueCollection propVals = insertCmd.PropertyValues;
for (Int32 counter = 0; counter < System.Int32.MaxValue - 1;
counter++)
{
propVals.Clear();
Expression expr = Expression.Parse("'ABCDEFGHIJKLOMOP'");
PropertyValue propVal = new PropertyValue("NotNullString",
(ValueExpression)expr);
propVals.Add(propVal);
expr = Expression.Parse("'Poor'");
propVal = new PropertyValue("StringRange",
(ValueExpression)expr);
propVals.Add(propVal);
expr = ParseByDataType("10000", DataType.DataType_Int32);
propVal = new PropertyValue("Int32Range",
(ValueExpression)expr);
propVals.Add(propVal);
expr = Expression.Parse("'Down'");
propVal = new PropertyValue("StringEnum",
(ValueExpression)expr);
propVals.Add(propVal);
expr = Expression.Parse("GEOMFROMTEXT('LINESTRING XY
(100000.0 100000.0, 200000.0 200000.0, 100000.0 300000.0)')");
propVal = new PropertyValue("Geom",
(ValueExpression)expr);
propVals.Add(propVal);
IFeatureReader reader = insertCmd.Execute();
reader.Close();
}
Console.WriteLine("Test_LargeDataVolumeInsert runs
successfully !");
}
Call Stack:
SDFProvider.dll!sqlite3pager_ref(0xfeeefeee) Line 2174 C
SDFProvider.dll!initPage(0x068459f0, 0x06839128) Line 1304 C
SDFProvider.dll!getAndInitPage(0x04b5aee8, 36, 0x0012bd00,
0x06839128) Line 1417 C
SDFProvider.dll!moveToChild(0x06800c08, 36) Line 3090 C
SDFProvider.dll!sqlite3BtreeMoveto(0x06800c08, 0x00000000, 321,
0x0012bd80) Line 3394 C
SDFProvider.dll!SQLiteCursor::move_to(4, 0x0012be08, false) Line
63 C++
SDFProvider.dll!SQLiteTable::get(0x00000000, 0x0012bde0,
0x0012bde8, 0, true) Line 622 C++
SDFProvider.dll!SdfRTree::RetrieveNode({...}, 321, true) Line 133
C++
SDFProvider.dll!SdfRTree::InsertRect2({...}, {...}, {...}, 0,
{...}, 0) Line 261 C++
SDFProvider.dll!SdfRTree::InsertRect2({...}, {...}, {...}, 0,
{...}, 0) Line 261 C++
SDFProvider.dll!SdfRTree::Insert({...}, 0, {...}, 0) Line 200
C++
> SDFProvider.dll!SdfInsert::Execute() Line 272 C++
[Managed to Native Transition]
OSGeo.FDO.dll!OSGeo::FDO::Commands::Feature::IInsertImp::Execute()
Line 77 C++
mgUnitTest.exe!unit_test.ProviderTests.SchemaTests.Test_LargeDataVolumeInsert()
Line 207 C#
Local Function:
/*
** Increment the reference count for a page. The input pointer is
** a reference to the page data.
*/
int sqlite3pager_ref(void *pData){
PgHdr *pPg = DATA_TO_PGHDR(pData);
page_ref(pPg);
return SQLITE_OK;
}
Autos:
pData 0xfeeefeee void *
+ pPg 0xfeeefeb6 {pPager=??? pgno=??? pNextHash=??? ...} PgHdr *
}}}
--
Ticket URL: <http://trac.osgeo.org/fdo/ticket/284#comment:3>
FDO <http://fdo.osgeo.org/>
Feature Data Objects
More information about the fdo-trac
mailing list