//--------------------------------------------------------------------------- // @function: // CMDProviderTest::EresUnittest_Basic // // @doc: // Test fetching existing metadata objects from a file-based provider // //--------------------------------------------------------------------------- GPOS_RESULT CMDProviderTest::EresUnittest_Basic() { // create memory pool CAutoMemoryPool amp; IMemoryPool *mp = amp.Pmp(); // test lookup with a file-based provider CMDProviderMemory *pmdpFile = GPOS_NEW(mp) CMDProviderMemory(mp, file_name); pmdpFile->AddRef(); TestMDLookup(mp, pmdpFile); pmdpFile->Release(); // test lookup with a memory-based provider CHAR *dxl_string = CDXLUtils::Read(mp, file_name); IMDCacheObjectArray *mdcache_obj_array = CDXLUtils::ParseDXLToIMDObjectArray(mp, dxl_string, NULL /*xsd_file_path*/); CMDProviderMemory *pmdpMemory = GPOS_NEW(mp) CMDProviderMemory(mp, mdcache_obj_array); pmdpMemory->AddRef(); TestMDLookup(mp, pmdpMemory); GPOS_DELETE_ARRAY(dxl_string); mdcache_obj_array->Release(); pmdpMemory->Release(); return GPOS_OK; }
//--------------------------------------------------------------------------- // @function: // CMDProviderTest::EresUnittest_Basic // // @doc: // Test fetching existing metadata objects from a file-based provider // //--------------------------------------------------------------------------- GPOS_RESULT CMDProviderTest::EresUnittest_Basic() { // create memory pool CAutoMemoryPool amp; IMemoryPool *pmp = amp.Pmp(); // test lookup with a file-based provider CMDProviderMemory *pmdpFile = GPOS_NEW(pmp) CMDProviderMemory(pmp, szFileName); pmdpFile->AddRef(); TestMDLookup(pmp, pmdpFile); pmdpFile->Release(); // test lookup with a memory-based provider CHAR *szDXL = CDXLUtils::SzRead(pmp, szFileName); DrgPimdobj *pdrgpmdobj = CDXLUtils::PdrgpmdobjParseDXL(pmp, szDXL, NULL /*szXSDPath*/); CMDProviderMemory *pmdpMemory = GPOS_NEW(pmp) CMDProviderMemory(pmp, pdrgpmdobj); pmdpMemory->AddRef(); TestMDLookup(pmp, pmdpMemory); GPOS_DELETE_ARRAY(szDXL); pdrgpmdobj->Release(); pmdpMemory->Release(); return GPOS_OK; }
//--------------------------------------------------------------------------- // @function: // CMDProviderTest::EresUnittest_Stats // // @doc: // Test fetching existing stats objects from a file-based provider // //--------------------------------------------------------------------------- GPOS_RESULT CMDProviderTest::EresUnittest_Stats() { // create memory pool CAutoMemoryPool amp; IMemoryPool *mp = amp.Pmp(); CMDProviderMemory *pmdpFile = GPOS_NEW(mp) CMDProviderMemory(mp, file_name); { pmdpFile->AddRef(); CAutoMDAccessor amda(mp, pmdpFile, CTestUtils::m_sysidDefault, CMDCache::Pcache()); // lookup different objects CMDIdRelStats *rel_stats_mdid = GPOS_NEW(mp) CMDIdRelStats(GPOS_NEW(mp) CMDIdGPDB(GPOPT_MDCACHE_TEST_OID, 1, 1)); CWStringBase *pstrRelStats = pmdpFile->GetMDObjDXLStr(mp, amda.Pmda(), rel_stats_mdid); GPOS_ASSERT(NULL != pstrRelStats); IMDCacheObject *pmdobjRelStats = CDXLUtils::ParseDXLToIMDIdCacheObj(mp, pstrRelStats, NULL); GPOS_ASSERT(NULL != pmdobjRelStats); CMDIdColStats *mdid_col_stats = GPOS_NEW(mp) CMDIdColStats(GPOS_NEW(mp) CMDIdGPDB(GPOPT_MDCACHE_TEST_OID, 1, 1), 1 /* attno */); CWStringBase *pstrColStats = pmdpFile->GetMDObjDXLStr(mp, amda.Pmda(), mdid_col_stats); GPOS_ASSERT(NULL != pstrColStats); IMDCacheObject *pmdobjColStats = CDXLUtils::ParseDXLToIMDIdCacheObj(mp, pstrColStats, NULL); GPOS_ASSERT(NULL != pmdobjColStats); // cleanup rel_stats_mdid->Release(); mdid_col_stats->Release(); GPOS_DELETE(pstrRelStats); GPOS_DELETE(pstrColStats); pmdobjRelStats->Release(); pmdobjColStats->Release(); } pmdpFile->Release(); return GPOS_OK; }
//--------------------------------------------------------------------------- // @function: // CMDProviderTest::EresUnittest_Stats // // @doc: // Test fetching existing stats objects from a file-based provider // //--------------------------------------------------------------------------- GPOS_RESULT CMDProviderTest::EresUnittest_Stats() { // create memory pool CAutoMemoryPool amp; IMemoryPool *pmp = amp.Pmp(); CMDProviderMemory *pmdpFile = GPOS_NEW(pmp) CMDProviderMemory(pmp, szFileName); { pmdpFile->AddRef(); CAutoMDAccessor amda(pmp, pmdpFile, CTestUtils::m_sysidDefault, CMDCache::Pcache()); // lookup different objects CMDIdRelStats *pmdidRelStats = GPOS_NEW(pmp) CMDIdRelStats(GPOS_NEW(pmp) CMDIdGPDB(GPOPT_MDCACHE_TEST_OID, 1, 1)); CWStringBase *pstrRelStats = pmdpFile->PstrObject(pmp, amda.Pmda(), pmdidRelStats); GPOS_ASSERT(NULL != pstrRelStats); IMDCacheObject *pmdobjRelStats = CDXLUtils::PimdobjParseDXL(pmp, pstrRelStats, NULL); GPOS_ASSERT(NULL != pmdobjRelStats); CMDIdColStats *pmdidColStats = GPOS_NEW(pmp) CMDIdColStats(GPOS_NEW(pmp) CMDIdGPDB(GPOPT_MDCACHE_TEST_OID, 1, 1), 1 /* ulAttno */); CWStringBase *pstrColStats = pmdpFile->PstrObject(pmp, amda.Pmda(), pmdidColStats); GPOS_ASSERT(NULL != pstrColStats); IMDCacheObject *pmdobjColStats = CDXLUtils::PimdobjParseDXL(pmp, pstrColStats, NULL); GPOS_ASSERT(NULL != pmdobjColStats); // cleanup pmdidRelStats->Release(); pmdidColStats->Release(); GPOS_DELETE(pstrRelStats); GPOS_DELETE(pstrColStats); pmdobjRelStats->Release(); pmdobjColStats->Release(); } pmdpFile->Release(); return GPOS_OK; }