CernVM-FS  2.9.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)
bool Bind (const int index, const int &value)
bool Bind (const int index, const unsigned int &value)
bool Bind (const int index, const uint64_t &value)
bool Bind (const int index, const sqlite3_int64 &value)
bool Bind (const int index, const std::string &value)
bool Bind (const int index, const float &value)
bool Bind (const int index, const double &value)
int Retrieve (const int index)
bool Retrieve (const int index)
sqlite3_int64 Retrieve (const int index)
uint64_t Retrieve (const int index)
std::string Retrieve (const int index)
float Retrieve (const int index)
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

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)

Definition at line 802 of file

Here is the call graph for this function:

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