CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
catalog::SqlLookupDanglingMountpoints Class Reference

#include <catalog_sql.h>

Inheritance diagram for catalog::SqlLookupDanglingMountpoints:
Collaboration diagram for catalog::SqlLookupDanglingMountpoints:

Public Member Functions

 SqlLookupDanglingMountpoints (const CatalogDatabase &database)
 
- Public Member Functions inherited from catalog::SqlLookup
DirectoryEntry GetDirent (const Catalog *catalog, const bool expand_symlink=true) const
 
shash::Md5 GetPathHash () const
 
shash::Md5 GetParentPathHash () const
 
- Public Member Functions inherited from catalog::SqlCatalog
 SqlCatalog (const CatalogDatabase &database, const std::string &statement)
 
shash::Md5 RetrieveMd5 (const int idx_high, const int idx_low) const
 
shash::Any RetrieveHashBlob (const int idx_column, const shash::Algorithms hash_algo, const char hash_suffix=shash::kSuffixNone) const
 
shash::Any RetrieveHashHex (const int idx_column, const char hash_suffix=shash::kSuffixNone) const
 
bool BindMd5 (const int idx_high, const int idx_low, const shash::Md5 &hash)
 
bool BindHashBlob (const int idx_column, const shash::Any &hash)
 
- Public Member Functions inherited from sqlite::Sql
 Sql (sqlite3 *sqlite_db, const std::string &statement)
 
virtual ~Sql ()
 
bool Execute ()
 
bool FetchRow ()
 
std::string DebugResultTable ()
 
bool Reset ()
 
int GetLastError () const
 
std::string GetLastErrorMsg () const
 
bool BindBlob (const int index, const void *value, const unsigned size)
 
bool BindBlobTransient (const int index, const void *value, const unsigned size)
 
bool BindDouble (const int index, const double value)
 
bool BindInt (const int index, const int value)
 
bool BindInt64 (const int index, const sqlite3_int64 value)
 
bool BindNull (const int index)
 
bool BindTextTransient (const int index, const std::string &value)
 
bool BindTextTransient (const int index, const char *value, const int size)
 
bool BindText (const int index, const std::string &value)
 
bool BindText (const int index, const char *value, const int size, void(*dtor)(void *)=SQLITE_STATIC)
 
template<typename T >
bool Bind (const int index, const T &value)
 
int RetrieveType (const int idx_column) const
 
int RetrieveBytes (const int idx_column) const
 
const void * RetrieveBlob (const int idx_column) const
 
double RetrieveDouble (const int idx_column) const
 
int RetrieveInt (const int idx_column) const
 
sqlite3_int64 RetrieveInt64 (const int idx_column) const
 
const unsigned char * RetrieveText (const int idx_column) const
 
std::string RetrieveString (const int idx_column) const
 
template<typename T >
Retrieve (const int index)
 
template<>
bool Bind (const int index, const int &value)
 
template<>
bool Bind (const int index, const unsigned int &value)
 
template<>
bool Bind (const int index, const uint64_t &value)
 
template<>
bool Bind (const int index, const sqlite3_int64 &value)
 
template<>
bool Bind (const int index, const std::string &value)
 
template<>
bool Bind (const int index, const float &value)
 
template<>
bool Bind (const int index, const double &value)
 
template<>
int Retrieve (const int index)
 
template<>
bool Retrieve (const int index)
 
template<>
sqlite3_int64 Retrieve (const int index)
 
template<>
uint64_t Retrieve (const int index)
 
template<>
std::string Retrieve (const int index)
 
template<>
float Retrieve (const int index)
 
template<>
double Retrieve (const int index)
 

Additional Inherited Members

- Static Public Attributes inherited from catalog::SqlDirent
static const int kFlagDir = 1
 
static const int kFlagDirNestedMountpoint = 2
 
static const int kFlagDirNestedRoot = 32
 
static const int kFlagFile = 4
 
static const int kFlagLink = 8
 
static const int kFlagFileSpecial = 16
 
static const int kFlagFileChunk = 64
 
static const int kFlagFileExternal = 128
 
static const int kFlagPosHash = 8
 
static const int kFlagPosCompression = 11
 
static const int kFlagDirBindMountpoint = 0x4000
 
static const int kFlagHidden = 0x8000
 
static const int kFlagDirectIo = 0x10000
 
- Protected Member Functions inherited from catalog::SqlDirent
unsigned CreateDatabaseFlags (const DirectoryEntry &entry) const
 
void StoreHashAlgorithm (const shash::Algorithms algo, unsigned *flags) const
 
shash::Algorithms RetrieveHashAlgorithm (const unsigned flags) const
 
zlib::Algorithms RetrieveCompressionAlgorithm (const unsigned flags) const
 
uint32_t Hardlinks2Linkcount (const uint64_t hardlinks) const
 
uint32_t Hardlinks2HardlinkGroup (const uint64_t hardlinks) const
 
uint64_t MakeHardlinks (const uint32_t hardlink_group, const uint32_t linkcount) const
 
void ExpandSymlink (LinkString *raw_symlink) const
 
- Protected Member Functions inherited from catalog::SqlCatalog
 SqlCatalog ()
 
- Protected Member Functions inherited from sqlite::Sql
 Sql ()
 
bool IsInitialized () const
 
bool Init (const sqlite3 *database, const std::string &statement)
 
void DeferredInit (const sqlite3 *database, const char *statement)
 
bool Successful () const
 

Detailed Description

This SQL statement is only used for legacy catalog migrations and has been moved here as it needs to use a locally defined macro inside catalog_sql.cc

Queries a single catalog and looks for DirectoryEntrys that have direct children in the same catalog but are marked as 'nested catalog mountpoints'. This is an inconsistent situation, since a mountpoint is supposed to be empty and it's children are stored in the corresponding referenced nested catalog.

Note: the user code needs to check if there is a corresponding nested catalog reference for the found dangling mountpoints. If so, we also have a bogus state, but it is not reliably fixable automatically. The child- DirectoryEntrys would be masked by the mounting nested catalog but it is not clear if we can simply delete them or if this would destroy data.

Definition at line 364 of file catalog_sql.h.

Constructor & Destructor Documentation

catalog::SqlLookupDanglingMountpoints::SqlLookupDanglingMountpoints ( const CatalogDatabase database)
explicit

Definition at line 810 of file catalog_sql.cc.

Here is the call graph for this function:


The documentation for this class was generated from the following files: