WiscDB
|
Classes | |
class | RIDKeyPair |
Structure to store a key-rid pair. It is used to pass the pair to functions that add to or make changes to the leaf node pages of the tree. Is templated for the key member. More... | |
class | PageKeyPair |
Structure to store a key page pair which is used to pass the key and page to functions that make any modifications to the non leaf pages of the tree. More... | |
struct | IndexMetaInfo |
The meta page, which holds metadata for Index file, is always first page of the btree index file and is cast to the following structure to store or retrieve information from it. Contains the relation name for which the index is created, the byte offset of the key value on which the index is made, the type of the key and the page no of the root page. Root page starts as page 2 but since a split can occur at the root the root page may get moved up and get a new page no. More... | |
struct | NonLeafNodeInt |
Structure for all non-leaf nodes when the key is of INTEGER type. More... | |
struct | NonLeafNodeDouble |
Structure for all non-leaf nodes when the key is of DOUBLE type. More... | |
struct | NonLeafNodeString |
Structure for all non-leaf nodes when the key is of STRING type. More... | |
struct | LeafNodeInt |
Structure for all leaf nodes when the key is of INTEGER type. More... | |
struct | LeafNodeDouble |
Structure for all leaf nodes when the key is of DOUBLE type. More... | |
struct | LeafNodeString |
Structure for all leaf nodes when the key is of STRING type. More... | |
class | BTreeIndex |
BTreeIndex class. It implements a B+ Tree index on a single attribute of a relation. This index supports only one scan at a time. More... | |
class | BadBufferException |
An exception that is thrown when a buffer is found whose valid is false but other variables in BufDesc are assigned valid values. More... | |
class | BadIndexInfoException |
An exception that is thrown when a file operation is requested for a filename that doesn't exist. More... | |
class | BadOpcodesException |
An exception that is thrown when some unexpected error occurs in the hash table. More... | |
class | BadScanParamException |
An exception that is thrown when some unexpected error occurs in the hash table. More... | |
class | BadScanrangeException |
An exception that is thrown when some unexpected error occurs in the hash table. More... | |
class | BufferExceededException |
An exception that is thrown when buffer capacity is exceeded. More... | |
class | EndOfFileException |
An exception that is thrown when some unexpected error occurs in the hash table. More... | |
class | FileExistsException |
An exception that is thrown when a file creation is requested for a filename that already exists. More... | |
class | FileNotFoundException |
An exception that is thrown when a file operation is requested for a filename that doesn't exist. More... | |
class | FileOpenException |
An exception that is thrown when a file deletion is requested for a filename that's currently open. More... | |
class | HashAlreadyPresentException |
An exception that is thrown when a new entry to be inserted in the hash table is already present in it. More... | |
class | HashNotFoundException |
An exception that is thrown when an entry being looked up in the hash table is not present in it. More... | |
class | HashTableException |
An exception that is thrown when some unexpected error occurs in the hash table. More... | |
class | IndexScanCompletedException |
An exception that is thrown when a file operation is requested for a filename that doesn't exist. More... | |
class | InsufficientSpaceException |
An exception that is thrown when a record is attempted to be inserted into a page that doesn't have space for it. More... | |
class | InvalidPageException |
An exception that is thrown when an attempt is made to access an invalid page in a file. More... | |
class | InvalidRecordException |
An exception that is thrown when a record is requested from a page that has a bad record ID. More... | |
class | InvalidSlotException |
An exception that is thrown when a slot that doesn't have data is requested from a page. More... | |
class | NoSuchKeyFoundException |
An exception that is thrown when a file operation is requested for a filename that doesn't exist. More... | |
class | PageNotPinnedException |
An exception that is thrown when a page which is expected to be pinned in the buffer pool is found to be not pinned. More... | |
class | PagePinnedException |
An exception that is thrown when a page which is not expected to be pinned in the buffer pool is found to be pinned. More... | |
class | ScanNotInitializedException |
An exception that is thrown when a file operation is requested for a filename that doesn't exist. More... | |
class | SlotInUseException |
An exception that is thrown when a record is attempted to be inserted into a slot that is already in use. More... | |
class | WiscDbException |
Base class for all WiscDB-specific exceptions. More... | |
class | FileScanner |
This class is used to sequentially scan records in a relation. More... | |
class | Frame |
Maintains information about one buffer pool frame. One frame corresponds to one page on disk. More... | |
struct | BufferStats |
Class to maintain statistics of buffer usage. More... | |
class | BufferManager |
The central class which manages the buffer pool including frame allocation and deallocation to pages in the file. More... | |
struct | HashItem |
Declarations for buffer pool hash table item. More... | |
class | BufferHashTable |
Hash table class to keep track of pages in the buffer pool. More... | |
struct | FileHeader |
Header metadata for files on disk which contain pages. More... | |
class | File |
Class which represents a file in the filesystem containing database pages. More... | |
class | PageFile |
class | RawFile |
class | FileIterator |
Iterator for iterating over the pages in a file. More... | |
struct | PageHeader |
Header metadata in a page. More... | |
struct | PageSlot |
Slot metadata that tracks where a record is in the data space. More... | |
class | Page |
Class which represents a fixed-size database page containing records. More... | |
class | PageIterator |
Iterator for iterating over the records in a page. More... | |
struct | RecordId |
Identifier for a record in a page. More... | |
Typedefs | |
typedef std::uint32_t | PageId |
Identifier for a page in a file. | |
typedef std::uint16_t | SlotId |
Identifier for a slot in a page. | |
typedef std::uint32_t | FrameId |
Identifier for a frame in buffer pool. | |
Enumerations | |
enum | Datatype { INTEGER = 0, DOUBLE = 1, STRING = 2 } |
Datatype enumeration type. | |
enum | Operator { LT, LTE, GTE, GT } |
Scan operations enumeration. Passed to BTreeIndex::startScan() method. | |
Functions | |
template<class T > | |
bool | operator< (const RIDKeyPair< T > &r1, const RIDKeyPair< T > &r2) |
Overloaded operator to compare the key values of two rid-key pairs and if they are the same compares to see if the first pair has a smaller rid.pageNo value. | |
static_assert (Page::SIZE > sizeof(PageHeader),"Page size must be large enough to hold header and data.") | |
static_assert (Page::DATA_SIZE > 0,"Page must have some space to hold data.") | |
Variables | |
const int | STRINGSIZE = 10 |
Size of String key. | |
const int | INTARRAYLEAFSIZE = ( Page::SIZE - sizeof( PageId ) ) / ( sizeof( int ) + sizeof( RecordId ) ) |
Number of key slots in B+Tree leaf for INTEGER key. | |
const int | DOUBLEARRAYLEAFSIZE = ( Page::SIZE - sizeof( PageId ) ) / ( sizeof( double ) + sizeof( RecordId ) ) |
Number of key slots in B+Tree leaf for DOUBLE key. | |
const int | STRINGARRAYLEAFSIZE = ( Page::SIZE - sizeof( PageId ) ) / ( 10 * sizeof(char) + sizeof( RecordId ) ) |
Number of key slots in B+Tree leaf for STRING key. | |
const int | INTARRAYNONLEAFSIZE = ( Page::SIZE - sizeof( int ) - sizeof( PageId ) ) / ( sizeof( int ) + sizeof( PageId ) ) |
Number of key slots in B+Tree non-leaf for INTEGER key. | |
const int | DOUBLEARRAYNONLEAFSIZE = (( Page::SIZE - sizeof( int ) - sizeof( PageId ) ) / ( sizeof( double ) + sizeof( PageId ) )) - 1 |
Number of key slots in B+Tree leaf for DOUBLE key. | |
const int | STRINGARRAYNONLEAFSIZE = ( Page::SIZE - sizeof( int ) - sizeof( PageId ) ) / ( 10 * sizeof(char) + sizeof( PageId ) ) |
Number of key slots in B+Tree leaf for STRING key. |
Copyright (c) 2012 Database Group, Computer Sciences Department, University of Wisconsin-Madison.
Copyright (c) 2012 Database Group, Computer Sciences Department, University of Wisconsin-Madison.
Copyright (c) 2012 Database Group, Computer Sciences Department, University of Wisconsin-Madison.