CernVM-FS
2.12.0
|
#include <catalog_sql.h>
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 | RetrieveNullableInt (const int idx_column, const int val_null) 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 > | |
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 |
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 365 of file catalog_sql.h.
|
explicit |