diff --git a/catalogue/CatalogueTest.cpp b/catalogue/CatalogueTest.cpp index 0154d011c03be9baed5f5af7e405c38931b72fa4..bcd6684b20ab208f81b05b0eef619549a3bcc6cc 100644 --- a/catalogue/CatalogueTest.cpp +++ b/catalogue/CatalogueTest.cpp @@ -7136,4 +7136,10 @@ TEST_P(cta_catalogue_CatalogueTest, lockSchema_unlockSchema_lockSchema) { ASSERT_TRUE(m_catalogue->schemaIsLocked()); } +TEST_P(cta_catalogue_CatalogueTest, ping) { + using namespace cta; + + m_catalogue->ping(); +} + } // namespace unitTests diff --git a/catalogue/RdbmsCatalogue.cpp b/catalogue/RdbmsCatalogue.cpp index f08b8bd3b7d0e9dfe2695fb1b5e54889dcb5d4bb..9518171c1a6cbdf7beb4b442733845e0c3718ed6 100644 --- a/catalogue/RdbmsCatalogue.cpp +++ b/catalogue/RdbmsCatalogue.cpp @@ -4519,7 +4519,15 @@ void RdbmsCatalogue::unlockSchema() { // ping //------------------------------------------------------------------------------ bool RdbmsCatalogue::ping() { - throw exception::Exception(std::string(__FUNCTION__) + " not implemented"); + try { + const char *const sql = "SELECT COUNT(*) FROM CTA_CATALOGUE"; + auto conn = m_connPool.getConn(); + auto stmt = conn->createStmt(sql, rdbms::Stmt::AutocommitMode::OFF); + auto rset = stmt->executeQuery(); + return true; + } catch(...) { + return false; + } } } // namespace catalogue