FLAIM Change. Added support for running a database sweep within an update transaction.

git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@687 0109f412-320b-0410-ab79-c3e0c5ffbbe6
This commit is contained in:
ahodgkinson
2006-07-20 19:20:32 +00:00
parent 4968fdc5f1
commit 26e8c51b3c
2 changed files with 300 additions and 205 deletions

View File

@@ -1804,15 +1804,15 @@ Exit:
Desc:
****************************************************************************/
RCODE IFlmTestImpl::deleteFieldTest(
FLMUINT uiFieldNum
)
FLMUINT uiFieldNum)
{
RCODE rc = FERR_OK;
FlmRecord * pDictRec = NULL;
FlmRecord * pNewRec = NULL;
void * pvField;
FLMUINT uiDrn;
FLMBOOL bPassed = FALSE;
RCODE rc = FERR_OK;
FlmRecord * pDictRec = NULL;
FlmRecord * pNewRec = NULL;
void * pvField;
FLMUINT uiDrn;
FLMBOOL bPassed = FALSE;
FLMBOOL bTransActive = FALSE;
beginTest( "Delete Field Definition Test");
@@ -1927,12 +1927,26 @@ RCODE IFlmTestImpl::deleteFieldTest(
goto Exit;
}
if (RC_BAD( rc = FlmDbSweep( m_hDb, SWEEP_CHECKING_FLDS, EACH_CHANGE, NULL, NULL)))
if( RC_BAD( rc = FlmDbTransBegin( m_hDb, FLM_UPDATE_TRANS, FLM_NO_TIMEOUT)))
{
goto Exit;
}
bTransActive = TRUE;
if( RC_BAD( rc = FlmDbSweep( m_hDb, SWEEP_CHECKING_FLDS,
EACH_CHANGE, NULL, NULL)))
{
MAKE_ERROR_STRING( "calling FlmDbSweep", rc, m_szFailInfo);
goto Exit;
}
bTransActive = FALSE;
if( RC_BAD( rc = FlmDbTransCommit( m_hDb)))
{
goto Exit;
}
if (pNewRec)
{
pNewRec->Release();
@@ -2023,12 +2037,25 @@ RCODE IFlmTestImpl::deleteFieldTest(
goto Exit;
}
if (RC_BAD( rc = FlmDbSweep( m_hDb, SWEEP_PURGED_FLDS, EACH_CHANGE, NULL, NULL)))
if( RC_BAD( rc = FlmDbTransBegin( m_hDb, FLM_UPDATE_TRANS, FLM_NO_TIMEOUT)))
{
goto Exit;
}
bTransActive = TRUE;
if( RC_BAD( rc = FlmDbSweep( m_hDb, SWEEP_PURGED_FLDS, EACH_CHANGE, NULL, NULL)))
{
MAKE_ERROR_STRING( "calling FlmDbSweep", rc, m_szFailInfo);
goto Exit;
}
bTransActive = FALSE;
if( RC_BAD( rc = FlmDbTransCommit( m_hDb)))
{
goto Exit;
}
// Make sure the dictionary definition is gone now.
if (pDictRec)
@@ -2062,15 +2089,20 @@ RCODE IFlmTestImpl::deleteFieldTest(
Exit:
if (pDictRec)
if( pDictRec)
{
pDictRec->Release();
}
if (pNewRec)
if( pNewRec)
{
pNewRec->Release();
}
if( bTransActive)
{
FlmDbTransAbort( m_hDb);
}
endTest( bPassed);
return( rc);
@@ -2228,7 +2260,7 @@ RCODE IFlmTestImpl::sortedFieldsTest(
// Start an update transaction
if( RC_BAD( rc = FlmDbTransBegin( m_hDb, FLM_UPDATE_TRANS, 15)))
if( RC_BAD( rc = FlmDbTransBegin( m_hDb, FLM_UPDATE_TRANS, FLM_NO_TIMEOUT)))
{
MAKE_ERROR_STRING( "calling FlmDbTransBegin", rc, m_szFailInfo);
goto Exit;
@@ -3417,7 +3449,7 @@ RCODE IFlmTestImpl::reduceSizeTest(
// Start a transaction and attempt to do the remove - should fail.
if( RC_BAD( rc = FlmDbTransBegin( hDb, FLM_UPDATE_TRANS, 15)))
if( RC_BAD( rc = FlmDbTransBegin( hDb, FLM_UPDATE_TRANS, FLM_NO_TIMEOUT)))
{
MAKE_ERROR_STRING( "calling FlmDbTransBegin", rc, m_szFailInfo);
goto Exit;
@@ -3466,7 +3498,7 @@ RCODE IFlmTestImpl::reduceSizeTest(
goto Exit;
}
if( RC_BAD( rc = FlmDbTransBegin( hDb, FLM_UPDATE_TRANS, 15)))
if( RC_BAD( rc = FlmDbTransBegin( hDb, FLM_UPDATE_TRANS, FLM_NO_TIMEOUT)))
{
MAKE_ERROR_STRING( "calling FlmDbTransBegin", rc, m_szFailInfo);
goto Exit;