[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