taco-db  0.1.0
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
taco Namespace Reference

Namespaces

 datum_impl
 The private definitions of datum classes.
 
 initoids
 
 utils_numbers_impl
 

Classes

class  Datum
 A Datum stores and possibly manage the memory resource of a read-only value of a plain fixed-length C++ type, a null-terminated string (cstring), or an object of a variable-length type. More...
 
class  DatumRef
 A DatumRef object is a read-only reference to an C++ object of a supported runtime type. More...
 
class  NullableDatumRef
 
struct  DataArray
 DataArray is a plain byte array that can be stored as a Datum itself and stores the data of a few datum where we do not want to bother with creating a schema. More...
 
struct  FunctionCallInfo
 This struct is the data actually passed to an fmgr function. More...
 
class  TDBError
 
class  BootstrapCatCache
 BootstrapCatCache stores hard-coded data needed to bootstrap the entire database catalog. More...
 
class  CatCache
 Catcache is the catalog cache class as configured in the top-level CMakeLists.txt. More...
 
struct  CCLookupTableEntry
 This is an internal data structure of the catalog cache for storing an in-memory catalog table entry. More...
 
class  CatCacheInternalAccess
 Some internal functions of catalog cache implementations. More...
 
class  CatCacheBase
 CatCacheBase implements the common routines and public interfaces for accessing and modifying the system catalog files. More...
 
class  IndexDesc
 
class  InitDataFileReader
 
class  PersistentCatCache
 
class  Schema
 A Schema object stores the information for accessing an ordered set of typed fields either from a disk-based record payload, or from an in-memory Datum/DatumRef array. More...
 
class  SysTable_Aggregation
 SysTable_Aggregation is an in-memory cached record in the system catalog SysTable_Aggregation. More...
 
class  SysTable_Cast
 SysTable_Cast is an in-memory cached record in the system catalog SysTable_Cast. More...
 
class  SysTable_Column
 SysTable_Column is an in-memory cached record in the system catalog SysTable_Column. More...
 
class  SysTable_Function
 SysTable_Function is an in-memory cached record in the system catalog SysTable_Function. More...
 
class  SysTable_FunctionArgs
 SysTable_FunctionArgs is an in-memory cached record in the system catalog SysTable_FunctionArgs. More...
 
class  SysTable_Index
 SysTable_Index is an in-memory cached record in the system catalog SysTable_Index. More...
 
class  SysTable_IndexColumn
 SysTable_IndexColumn is an in-memory cached record in the system catalog SysTable_IndexColumn. More...
 
class  SysTable_Operator
 SysTable_Operator is an in-memory cached record in the system catalog SysTable_Operator. More...
 
class  SysTable_Table
 SysTable_Table is an in-memory cached record in the system catalog SysTable_Table. More...
 
class  SysTable_Type
 SysTable_Type is an in-memory cached record in the system catalog SysTable_Type. More...
 
class  TableDesc
 
class  VolatileCatCache
 
class  Database
 The class for a database instance. More...
 
class  AggregationState
 AggregationState is the execution state for aggregation. More...
 
class  CartesianProductState
 CartesianProductState is the execution state for cartesian product. More...
 
class  IndexScanState
 IndexScanState is the execution state for index based table scan. More...
 
class  LimitState
 LimitState is the exeuction state for limitation. More...
 
class  PlanExecState
 PlanExecState is an abstract interface for execution state of various query plan. More...
 
class  ProjectionState
 ProjectionState is the execution state for projections. More...
 
class  SelectionState
 SelectionState is the execution state for selections. More...
 
class  SortState
 SortState is the execution state for sorting. More...
 
class  TableDeleteState
 TableDeleteState is the execution state for table deletion action. More...
 
class  TableInsertState
 TableDeleteState is the execution state for table insertion action. More...
 
class  TableScanState
 TableScanState is the execution state for heap file table scan. More...
 
class  TempTableState
 TempTableState is the execution state for a in-memory temp table scan. More...
 
class  AndOperator
 
class  BinaryOperator
 
class  Cast
 
class  ExprNode
 ExprNode is an abstract class of all expressions. More...
 
class  FuncCallOperator
 
class  Literal
 
class  OrOperator
 
class  UnaryOperator
 
class  Variable
 
class  ExternalSort
 ExternalSort is a general utility class to do external sorting on any number of general bytes. More...
 
class  ItemIterator
 A pure abstract iterator over items (i.e., plain byte arrays). More...
 
class  BTree
 A B-tree stored in the persistent files. More...
 
struct  BTreeMetaPageData
 The B-tree meta page. More...
 
struct  BTreePageHeaderData
 The B-Tree page header for both internal pages and the leaf pages. More...
 
struct  BTreeInternalRecordHeaderData
 The header of a B-Tree internal page record. More...
 
struct  BTreeLeafRecordHeaderData
 The header of a B-Tree leaf page record. More...
 
class  BulkLoadIterator
 BulkLoadIterator is an interface for providing (key, RecordId) pairs for index bulk loading. More...
 
class  Index
 An interface class for index implementations. More...
 
struct  IndexKey
 An IndexKey stores references to a few data (Datum objects) that comprise a key tuple to in an index. More...
 
class  TableBulkLoadIterator
 
struct  VolatileTreeRecordHeader
 
struct  VolatileTreeFuncs
 
struct  VolatileTreeLess
 
struct  VolatileTreeBase
 
class  VolatileTree
 An in-memory tree index that is stored only in memory. More...
 
class  Aggregation
 Aggregation is the physical plan for aggregations. More...
 
class  CartesianProduct
 CartesianProduct is the physical plan for Cartesian products. More...
 
class  IndexScan
 IndexScan is the physical plan for index based table scanning. More...
 
class  Limit
 Limit is the physical plan for limitation. More...
 
class  PlanNode
 PlanNode is an abstract interface representing physical query plan that does not bound with any particular execution state. More...
 
class  Projection
 Projection is the physical plan for projections. More...
 
class  Selection
 Selection is the physical plan for selecitons. More...
 
class  Sort
 Sort is the physical plan for sorting operators. More...
 
class  TableDelete
 TableDelete is the physical plan for delete actions on a table. More...
 
class  TableInsert
 TableInsert is the physical plan for insert actions on a table. More...
 
class  TableScan
 TableScan is the physical plan for heap file table scanning. More...
 
class  TempTable
 TempTable is the physical plan for scanning on a temp in-memory table. More...
 
struct  BufferMeta
 
struct  BufferUnpin
 
struct  BufferUnlatch
 
class  BufferManager
 BufferManager implements a steal and no-force buffer pool with a fixed number of page frames to buffer the pages in the regular files. More...
 
class  PageHeaderData
 PageHeaderData defines the header of every virtual file data page. More...
 
class  FileManager
 FileManager exposes a virtual file interface based on FSFile. More...
 
class  File
 Represents an open virtual file managed by the FileManager. More...
 
struct  MetaPageHeaderData
 This is a truncated and private version of PageHeaderData. More...
 
struct  FreePageList
 
struct  FMMetaPageData
 
struct  FileDirectoryData
 
struct  RegularFileMetaPageData
 
class  FSFile
 Represents an open file in the file system. More...
 
struct  RecordId
 The record ID of a record on a page is a pair of ‘(PageNumber, SlotId)’. More...
 
class  Record
 
class  Table
 Table implements a heap file over the virtual file provided by the FileManager. More...
 
struct  VarlenDataPageHeader
 The page header of a variable-length record data page. More...
 
struct  SlotData
 Describes a slot. More...
 
class  VarlenDataPage
 VarlenDataPage implements a buffered heap page that supports inserting, deleting, updating and random accessing variable-length records on the page. More...
 
class  CSVReader
 
class  FileCSVReader
 
struct  MutexReleaseFunc
 
class  MutexGuard
 MutexGuard is similar to std::lock_guard but it stores a pointer to a mutex and allows one to store a nullptr instead. More...
 
class  ResourceGuard
 ResourceGuard is used for automatically relinquishes some resource when it goes out of scope. More...
 
class  ResourceGuard< T, Relinquish, bool, false, void >
 Specialization of ResourceGuard when we use an additional boolean flag to denote the invalid value. More...
 
class  ResourceGuard< T, Relinquish, bool, true, void >
 Specialization of ResourceGuard where we have an always-valid value (e.g., lvalue-ref). More...
 
class  SpinLock
 
class  TreeNode
 TreeNode is the base class of all tree structures in TDB (e.g., parsing tree, logical plan, physical plan, query execution state). More...
 
class  TruncatedZipfian
 A truncated zipfian distribution over [0, N - 1], where all items with probability smaller than a threshold in the original zipfian distribution are uniformly sampled with the same probability, while all others are sampled with the same probabilities as in the zipfian. More...
 
struct  SumState
 
struct  SumStateAggType
 
struct  SumStateAggType< T, typename std::enable_if< std::is_integral< T >::value &&std::is_signed< T >::value >::type >
 
struct  SumStateAggType< T, typename std::enable_if< std::is_integral< T >::value &&!std::is_signed< T >::value >::type >
 
struct  SumStateAggType< T, typename std::enable_if< std::is_floating_point< T >::value >::type >
 
struct  AvgState
 
struct  PrimitiveMinMaxState
 
class  Walker
 A discrete distribution over non-negative integer set [n] for some n over a given probability distribution. More...
 

Typedefs

typedef Datum(* FunctionPtr) (FunctionCallInfo &fcinfo)
 
typedef std::function< Datum(FunctionCallInfo &)> FunctionInfo
 An FMGR managed function should be declared as. More...
 
typedef uint32_t Oid
 
typedef int16_t FieldOffset
 
typedef int16_t FieldId
 
typedef uint32_t PageNumber
 
typedef uint64_t BufferId
 
typedef uint32_t FileId
 The file ID. More...
 
typedef uint16_t SlotId
 
typedef uint8_t IdxType
 The index type, see index/idxtyps.h. More...
 
typedef uint8_t OpType
 The operator type, see expr/optypes.h. More...
 
typedef uint8_t AggType
 The aggregation type, see catalog/aggtyp.h. More...
 
typedef ::taco::PersistentCatCache CatCacheImpl
 
typedef std::function< int(const char *item1, const char *item2)> SortCompareFunction
 SortCompareFunction compares item1 and item2 and returns a negative integer if item1 < item2, 0 if they equal, or a positive integer if item1 > item2. More...
 
typedef RecordId PathItem
 Each PathItem is a (PageNumber, SlotId) pair of an B-tree internal record. More...
 
typedef std::unique_ptr< IndexKey, AlignedAllocImpl::FreeMemUniqueIndexKey
 The returned smart pointer of IndexKey::Create(). More...
 
using tree_type = VolatileTree::tree_type
 
using ScopedBufferId = ResourceGuard< BufferId, BufferUnpin, BufferId, INVALID_BUFID >
 An RAII-style guard for a pinned buffer frame, which is unpinned when it goes out of its scope. More...
 
using ScopedBufferLatch = ResourceGuard< BufferId, BufferUnlatch, BufferId, INVALID_BUFID >
 You may ignore this type alias since we won't be implementing concurrency control and recovery. More...
 

Enumerations

enum class  InitLineType { Eof , Error , Table , Data }
 
enum class  LatchMode { SH , EX }
 
enum class  NodeTag : uint16_t { T_TreeNode = 0 , T_InvalidTag = 0xFFFF }
 

Functions

template<class ... Args>
Datum FunctionCall (const FunctionInfo &func, Args &&...args)
 Call a function without passing any type parameter for the return type. More...
 
template<class ... Args>
Datum FunctionCallWithTypparam (const FunctionInfo &func, uint64_t typparam, Args &&...args)
 
void LogError (LogSeverity severity, std::string &&msg)
 Logs a message (which may not be an error despite what the name suggests). More...
 
void SetLogOutput (std::ostream *log_out)
 Sets the output stream where the log messages should be printed to. More...
 
void RestoreLogOutput ()
 Restores the log output stream to std::cerr. More...
 
void SetLogPrintMinSeverity (LogSeverity min_severity)
 Sets the minimum severity level of a log message to be printed. More...
 
void DisableLogPrint ()
 Disable all log message printing. More...
 
void SetSecondaryLogOutput (std::ostream *log_out, LogSeverity min_severity)
 Sets the secondary output stream where logs messages additionally prints with at least the specified severity. More...
 
void ClearSecondaryLogOutput ()
 Clears the secondary output stream where logs messages additionally prints. More...
 
template<class T >
constexpr T TYPEALIGN (uint64_t ALIGNVAL, T LEN)
 These alignment macros are derived from PostgreSQL. More...
 
template<class T >
constexpr T TYPEALIGN_DOWN (uint64_t ALIGNVAL, T LEN)
 
template<class T , class U >
bool AddWithCheck (T &left, U right)
 
static void copy_bytes (bool passbyref, int16_t len, const char *src, char *tgt)
 
static Datum RecordIdToTSSSavedPosition (RecordId recid)
 Encodes a record ID as a saved position in TableScanState. More...
 
static RecordId TSSSavedPositionToRecordId (DatumRef d)
 
void InitOpTypes ()
 
absl::string_view GetOpTypeSymbol (OpType optype)
 
OpType ParseOpTypesSymbol (absl::string_view str)
 
bool OpTypeIsUnary (OpType optype)
 
bool OpTypeIsBinary (OpType optype)
 
OpType ParseOpTypeSymbol (absl::string_view str)
 
static void BTreeCheckComparisonOperatorPrototype (Oid typid, Oid opfuncid)
 Checks if the function opfuncid is a boolean binary operator over type typid. More...
 
static char * BTreeRecordGetPayload (char *recbuf, bool isleaf)
 
static const char * BTreeRecordGetPayload (const char *recbuf, bool isleaf)
 
static const RecordIdBTreeRecordGetHeapRecordId (const char *recbuf, bool isleaf)
 
static FieldOffset BTreeComputePageUsage (SlotId num_recs, FieldOffset totrlen)
 Returns the page usage of a B-Tree page given its number of records and its total length of all the records. More...
 
absl::string_view IdxTypeGetName (IdxType idx)
 
bool IdxTypeIsVolatile (IdxType idx)
 
bool IdxTypeNeedsEqualOperator (IdxType idx)
 
bool IdxTypeNeedsLessOperator (IdxType idx)
 
static constexpr bool IdxTypeIsValid (IdxType idxtyp)
 
int TupleCompare (const IndexKey *key, const char *tuplebuf, const Schema *schema, const FunctionInfo *lt_funcs, const FunctionInfo *eq_funcs)
 Compares the key with the tuple serialized in the buffer tuplebuf with the schema, using the "<" functions in lt_funcs, and ">" functions in eq_funcs, in lexicographical order. More...
 
bool TupleEqual (const IndexKey *key, const char *tuplebuf, const Schema *schema, const FunctionInfo *eq_funcs)
 
static bool VTHDRGetIsRecord (VolatileTreeRecordHeader *hdr)
 
static void VTHDRSetIsRecord (VolatileTreeRecordHeader *hdr, bool is_rec)
 
static size_t VTHDRGetBufIdx (VolatileTreeRecordHeader *hdr)
 
static void VTHDRSetBufIdx (VolatileTreeRecordHeader *hdr, size_t bufidx)
 
const IndexKey *& VTHDRKeyPointer (VolatileTreeRecordHeader *hdr)
 
char * VTHDRGetData (VolatileTreeRecordHeader *hdr)
 
void InitVolatileTree ()
 Initializes the internal state of the in-memory tree index. More...
 
void CleanVolatileTree ()
 Cleans up the internal state of the in-memory tree index. More...
 
static void check_datadir (const std::string &datadir, bool create)
 
static void create_datadir (const std::string &datadir)
 
constexpr FileId FileIdGetDir1Offset (FileId fid)
 
constexpr FileId FileIdGetDir2Offset (FileId fid)
 
constexpr uint64_t PageNumberGetDataFileId (PageNumber pid)
 
constexpr PageNumber PageNumberGetDataFilePageId (PageNumber pid)
 
constexpr PageNumber DataFileIdAndPageIdGetPageNumber (uint64_t fsfileid, PageNumber fspid)
 
bool fallocate_zerofill_fast (int fd, off_t offset, off_t len)
 Calls fallocate(2) with mode FALLOC_FL_ZERO_RANGE if it is available. More...
 
constexpr bool operator== (const RecordId &rid1, const RecordId &rid2)
 
constexpr bool operator!= (const RecordId &rid1, const RecordId &rid2)
 
constexpr bool operator< (const RecordId &rid1, const RecordId &rid2)
 
constexpr bool operator<= (const RecordId &rid1, const RecordId &rid2)
 
constexpr bool operator> (const RecordId &rid1, const RecordId &rid2)
 
constexpr bool operator>= (const RecordId &rid1, const RecordId &rid2)
 
std::ostream & operator<< (std::ostream &out, const RecordId &rid)
 
void InitBuiltinFunctions ()
 Initializes the lookup table for built-in functions registered in the system catalog. More...
 
FunctionInfo FindBuiltinFunction (Oid oid)
 Looks up the callable function info for a built-in function registered in the system catalog. More...
 
bool file_exists (const char *path)
 
bool regular_file_exists (const char *path)
 
bool dir_exists (const char *path)
 
bool dir_empty (const char *path)
 
void remove_dir (const char *path)
 
void copy_dir (const char *srcpath, const char *dstpath)
 
std::string mktempfile (std::string prefix)
 
std::string mktempdir (std::string prefix)
 
bool FilePathIsTDBFilePath (absl::string_view filepath)
 Returns true if filepath belongs to tdb source code path. More...
 
absl::string_view StripSourcePath (absl::string_view path)
 
uint64_t GetCurrentDataSize ()
 Returns the approximate size of heap-allocated memory in bytes. More...
 
template<class Container , class Arg0 , class ... Args>
void emplace_back_parameter_pack (Container &c, Arg0 &&arg0, Args &&...args)
 
template<class Container >
void emplace_back_parameter_pack (Container &c)
 
constexpr int logn_floor (uint64_t x)
 Returns $\lfloor log_2(x) \rfloor$ for x > 0, or 0 for x = 0. More...
 
constexpr int logn_ceil (uint64_t x)
 Returns $\lceil log_2(x) \rceil$ for x > 0, or 0 for x = 0. More...
 
template<class IntType >
bool SimpleAtoiWrapper (absl::string_view str, IntType *out)
 A wrapper version of absl::SimpleAtoi that supports 1/2/4/8-byte integers. More...
 
void str_append_spaces (std::string &buf, int num_spaces)
 
int string_compare_ci (const absl::string_view &s1, const absl::string_view &s2)
 
bool string_equal_ci (const absl::string_view &s1, const absl::string_view &s2)
 
static constexpr uint16_t node_tag_offset (NodeTag tag)
 
const char * node_tag_name (NodeTag tag)
 Returns the class name of the tag's class. More...
 
NodeTag node_tag_base (NodeTag tag)
 Returns the immediate base class of `‘tag’'. More...
 
bool node_tag_is_a (NodeTag tag1, NodeTag tag2)
 Returns whether tag1'' is a class derived fromtag2''. More...
 
 BUILTIN_ARGTYPE ()
 
 BUILTIN_ARGTYPE (__INTERNAL, ANY)
 
 BUILTIN_ARGTYPE (__INTERNAL)
 
 BUILTIN_ARGTYPE (__STRING)
 
 BUILTIN_ARGTYPE (BOOL)
 
 BUILTIN_OPR (NOT)
 
 BUILTIN_OPR (OR)
 
 BUILTIN_OPR (AND)
 
 BUILTIN_OPR (EQ)
 
 BUILTIN_OPR (NE)
 
 BUILTIN_OPR (LT)
 
 BUILTIN_OPR (LE)
 
 BUILTIN_OPR (GT)
 
 BUILTIN_OPR (GE)
 
static absl::string_view remove_trailing_space (absl::string_view s)
 
 BUILTIN_ARGTYPE (CHAR)
 
 BUILTIN_ARGTYPE (UINT8)
 
 BUILTIN_OPR (IMPLICIT_CAST)
 
 BUILTIN_ARGTYPE (CHAR, CHAR)
 
 BUILTIN_ARGTYPE (DATE)
 
 BUILTIN_OPR (ADD)
 
 BUILTIN_OPR (SUB)
 
 BUILTIN_ARGTYPE (DOUBLE)
 
 BUILTIN_OPR (MUL)
 
 BUILTIN_OPR (DIV)
 
 BUILTIN_OPR (NEG)
 
 BUILTIN_ARGTYPE (__INTERNAL, DOUBLE)
 
 BUILTIN_OPR (CAST)
 
 BUILTIN_ARGTYPE (FLOAT)
 
 BUILTIN_ARGTYPE (__INTERNAL, FLOAT)
 
 BUILTIN_ARGTYPE (INT1)
 
 BUILTIN_OPR (MOD)
 
 BUILTIN_OPR (BITNOT)
 
 BUILTIN_OPR (BITAND)
 
 BUILTIN_OPR (BITOR)
 
 BUILTIN_OPR (BITXOR)
 
 BUILTIN_OPR (LSH)
 
 BUILTIN_OPR (RSH)
 
 BUILTIN_ARGTYPE (__INTERNAL, INT1)
 
 BUILTIN_ARGTYPE (INT2)
 
 BUILTIN_ARGTYPE (__INTERNAL, INT2)
 
 BUILTIN_ARGTYPE (INT4)
 
 BUILTIN_ARGTYPE (__INTERNAL, INT4)
 
 BUILTIN_ARGTYPE (INT8)
 
 BUILTIN_ARGTYPE (__INTERNAL, INT8)
 
 BUILTIN_ARGTYPE (OID)
 
 BUILTIN_ARGTYPE (UINT1)
 
 BUILTIN_ARGTYPE (__INTERNAL, UINT1)
 
 BUILTIN_ARGTYPE (UINT2)
 
 BUILTIN_ARGTYPE (__INTERNAL, UINT2)
 
 BUILTIN_ARGTYPE (UINT4)
 
 BUILTIN_ARGTYPE (__INTERNAL, UINT4)
 
 BUILTIN_ARGTYPE (__INTERNAL, UINT8)
 
absl::string_view varchar_to_string_view (DatumRef datum)
 Converts a VARCHAR-typed datum into a internal string. More...
 
 BUILTIN_ARGTYPE (VARCHAR)
 
 BUILTIN_ARGTYPE (VARCHAR, VARCHAR)
 
 BUILTIN_ARGTYPE (VARCHAR, __STRING)
 
static void walker_construct (const double *E, double *B, double *F, uint32_t *IA, uint32_t N)
 

Variables

static int g_min_log_severity = (int) kInfo
 The minimum log severity that we'll print it to stderr. More...
 
static std::ostream * g_log_out = &std::cerr
 The output stream the log prints to. More...
 
static std::ostream * g_secondary_log_out = nullptr
 The secondary output stream the log additionally prints to. More...
 
static int g_secondary_min_log_severity = ((int) kFatal) + 1
 The minimum log severity that we'll additionally print to the secondary outptu stream. More...
 
constexpr LogSeverity kInfo = LogSeverity::kInfo
 
constexpr LogSeverity kWarning = LogSeverity::kWarning
 
constexpr LogSeverity kError = LogSeverity::kError
 
constexpr LogSeverity kFatal = LogSeverity::kFatal
 
constexpr const size_t log_msg_buf_size = 8192
 
constexpr const size_t log_msg_max_len = log_msg_buf_size - 12
 
constexpr Oid InvalidOid = 0
 
constexpr FieldId InvalidFieldId = 0x7fff
 
constexpr FieldId MaxNumRegularFieldId = 0x7fff
 
constexpr int PageNumberBits = 32
 
constexpr int FieldOffsetBits = logn_ceil(PAGE_SIZE)
 
constexpr FieldOffset MaxFieldOffset = (1 << FieldOffsetBits) - 1
 
constexpr PageNumber INVALID_PID = 0
 The invalid page number. More...
 
constexpr PageNumber RESERVED_PID = ~(PageNumber) 0
 An invalid page number reserved for file manager internal use. More...
 
constexpr PageNumber MaxPageNumber
 The maximum valid page number. More...
 
constexpr SlotId INVALID_SID = 0
 The invalid slot ID. More...
 
constexpr SlotId MinSlotId = 1
 The minimum valid slot ID. More...
 
constexpr SlotId MaxSlotId = (~(SlotId) 0) - 1
 The maximum valid slot ID. More...
 
constexpr BufferId INVALID_BUFID = ~(BufferId) 0
 
constexpr Oid MaxOid = std::numeric_limits<Oid>::max() - 1
 The largest valid Oid. More...
 
constexpr const int num_bootstrap_tables = 4
 
constexpr const int num_bootstrap_types = 7
 
constexpr const int num_bootstrap_functions = 14
 
constexpr const int num_bootstrap_columns = 26
 
Datum BOOL_in (FMGR_FUNCTION_ARGS)
 
Datum BOOL_out (FMGR_FUNCTION_ARGS)
 
Datum BOOL_not (FMGR_FUNCTION_ARGS)
 
Datum BOOL_or (FMGR_FUNCTION_ARGS)
 
Datum BOOL_and (FMGR_FUNCTION_ARGS)
 
Datum BOOL_eq (FMGR_FUNCTION_ARGS)
 
Datum BOOL_ne (FMGR_FUNCTION_ARGS)
 
Datum BOOL_lt (FMGR_FUNCTION_ARGS)
 
Datum BOOL_le (FMGR_FUNCTION_ARGS)
 
Datum BOOL_gt (FMGR_FUNCTION_ARGS)
 
Datum BOOL_ge (FMGR_FUNCTION_ARGS)
 
Datum CHAR_in (FMGR_FUNCTION_ARGS)
 
Datum CHAR_out (FMGR_FUNCTION_ARGS)
 
Datum CHAR_typlen (FMGR_FUNCTION_ARGS)
 
Datum CHAR_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum CHAR_eq (FMGR_FUNCTION_ARGS)
 
Datum CHAR_ne (FMGR_FUNCTION_ARGS)
 
Datum CHAR_lt (FMGR_FUNCTION_ARGS)
 
Datum CHAR_le (FMGR_FUNCTION_ARGS)
 
Datum CHAR_gt (FMGR_FUNCTION_ARGS)
 
Datum CHAR_ge (FMGR_FUNCTION_ARGS)
 
Datum CHAR_eq_ci (FMGR_FUNCTION_ARGS)
 
Datum CHAR_ne_ci (FMGR_FUNCTION_ARGS)
 
Datum CHAR_lt_ci (FMGR_FUNCTION_ARGS)
 
Datum CHAR_le_ci (FMGR_FUNCTION_ARGS)
 
Datum CHAR_gt_ci (FMGR_FUNCTION_ARGS)
 
Datum CHAR_ge_ci (FMGR_FUNCTION_ARGS)
 
Datum INT1_in (FMGR_FUNCTION_ARGS)
 
Datum INT1_out (FMGR_FUNCTION_ARGS)
 
Datum INT1_add (FMGR_FUNCTION_ARGS)
 
Datum INT1_sub (FMGR_FUNCTION_ARGS)
 
Datum INT1_mul (FMGR_FUNCTION_ARGS)
 
Datum INT1_div (FMGR_FUNCTION_ARGS)
 
Datum INT1_mod (FMGR_FUNCTION_ARGS)
 
Datum INT1_neg (FMGR_FUNCTION_ARGS)
 
Datum INT1_eq (FMGR_FUNCTION_ARGS)
 
Datum INT1_ne (FMGR_FUNCTION_ARGS)
 
Datum INT1_lt (FMGR_FUNCTION_ARGS)
 
Datum INT1_le (FMGR_FUNCTION_ARGS)
 
Datum INT1_gt (FMGR_FUNCTION_ARGS)
 
Datum INT1_ge (FMGR_FUNCTION_ARGS)
 
Datum INT1_not (FMGR_FUNCTION_ARGS)
 
Datum INT1_and (FMGR_FUNCTION_ARGS)
 
Datum INT1_or (FMGR_FUNCTION_ARGS)
 
Datum INT1_xor (FMGR_FUNCTION_ARGS)
 
Datum INT1_lsh (FMGR_FUNCTION_ARGS)
 
Datum INT1_rsh (FMGR_FUNCTION_ARGS)
 
Datum INT1_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum INT1_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum INT1_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum INT1_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum INT1_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum INT2_in (FMGR_FUNCTION_ARGS)
 
Datum INT2_out (FMGR_FUNCTION_ARGS)
 
Datum INT2_add (FMGR_FUNCTION_ARGS)
 
Datum INT2_sub (FMGR_FUNCTION_ARGS)
 
Datum INT2_mul (FMGR_FUNCTION_ARGS)
 
Datum INT2_div (FMGR_FUNCTION_ARGS)
 
Datum INT2_mod (FMGR_FUNCTION_ARGS)
 
Datum INT2_neg (FMGR_FUNCTION_ARGS)
 
Datum INT2_eq (FMGR_FUNCTION_ARGS)
 
Datum INT2_ne (FMGR_FUNCTION_ARGS)
 
Datum INT2_lt (FMGR_FUNCTION_ARGS)
 
Datum INT2_le (FMGR_FUNCTION_ARGS)
 
Datum INT2_gt (FMGR_FUNCTION_ARGS)
 
Datum INT2_ge (FMGR_FUNCTION_ARGS)
 
Datum INT2_not (FMGR_FUNCTION_ARGS)
 
Datum INT2_and (FMGR_FUNCTION_ARGS)
 
Datum INT2_or (FMGR_FUNCTION_ARGS)
 
Datum INT2_xor (FMGR_FUNCTION_ARGS)
 
Datum INT2_lsh (FMGR_FUNCTION_ARGS)
 
Datum INT2_rsh (FMGR_FUNCTION_ARGS)
 
Datum INT2_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum INT2_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum INT2_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum INT2_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum INT2_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum INT4_in (FMGR_FUNCTION_ARGS)
 
Datum INT4_out (FMGR_FUNCTION_ARGS)
 
Datum INT4_add (FMGR_FUNCTION_ARGS)
 
Datum INT4_sub (FMGR_FUNCTION_ARGS)
 
Datum INT4_mul (FMGR_FUNCTION_ARGS)
 
Datum INT4_div (FMGR_FUNCTION_ARGS)
 
Datum INT4_mod (FMGR_FUNCTION_ARGS)
 
Datum INT4_neg (FMGR_FUNCTION_ARGS)
 
Datum INT4_eq (FMGR_FUNCTION_ARGS)
 
Datum INT4_ne (FMGR_FUNCTION_ARGS)
 
Datum INT4_lt (FMGR_FUNCTION_ARGS)
 
Datum INT4_le (FMGR_FUNCTION_ARGS)
 
Datum INT4_gt (FMGR_FUNCTION_ARGS)
 
Datum INT4_ge (FMGR_FUNCTION_ARGS)
 
Datum INT4_not (FMGR_FUNCTION_ARGS)
 
Datum INT4_and (FMGR_FUNCTION_ARGS)
 
Datum INT4_or (FMGR_FUNCTION_ARGS)
 
Datum INT4_xor (FMGR_FUNCTION_ARGS)
 
Datum INT4_lsh (FMGR_FUNCTION_ARGS)
 
Datum INT4_rsh (FMGR_FUNCTION_ARGS)
 
Datum INT4_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum INT4_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum INT4_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum INT4_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum INT4_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum INT8_in (FMGR_FUNCTION_ARGS)
 
Datum INT8_out (FMGR_FUNCTION_ARGS)
 
Datum INT8_add (FMGR_FUNCTION_ARGS)
 
Datum INT8_sub (FMGR_FUNCTION_ARGS)
 
Datum INT8_mul (FMGR_FUNCTION_ARGS)
 
Datum INT8_div (FMGR_FUNCTION_ARGS)
 
Datum INT8_mod (FMGR_FUNCTION_ARGS)
 
Datum INT8_neg (FMGR_FUNCTION_ARGS)
 
Datum INT8_eq (FMGR_FUNCTION_ARGS)
 
Datum INT8_ne (FMGR_FUNCTION_ARGS)
 
Datum INT8_lt (FMGR_FUNCTION_ARGS)
 
Datum INT8_le (FMGR_FUNCTION_ARGS)
 
Datum INT8_gt (FMGR_FUNCTION_ARGS)
 
Datum INT8_ge (FMGR_FUNCTION_ARGS)
 
Datum INT8_not (FMGR_FUNCTION_ARGS)
 
Datum INT8_and (FMGR_FUNCTION_ARGS)
 
Datum INT8_or (FMGR_FUNCTION_ARGS)
 
Datum INT8_xor (FMGR_FUNCTION_ARGS)
 
Datum INT8_lsh (FMGR_FUNCTION_ARGS)
 
Datum INT8_rsh (FMGR_FUNCTION_ARGS)
 
Datum INT8_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum INT8_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum INT8_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum INT8_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum INT8_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum OID_in (FMGR_FUNCTION_ARGS)
 
Datum OID_out (FMGR_FUNCTION_ARGS)
 
Datum OID_eq (FMGR_FUNCTION_ARGS)
 
Datum OID_ne (FMGR_FUNCTION_ARGS)
 
Datum OID_lt (FMGR_FUNCTION_ARGS)
 
Datum OID_le (FMGR_FUNCTION_ARGS)
 
Datum OID_gt (FMGR_FUNCTION_ARGS)
 
Datum OID_ge (FMGR_FUNCTION_ARGS)
 
Datum UINT1_in (FMGR_FUNCTION_ARGS)
 
Datum UINT1_out (FMGR_FUNCTION_ARGS)
 
Datum UINT1_add (FMGR_FUNCTION_ARGS)
 
Datum UINT1_sub (FMGR_FUNCTION_ARGS)
 
Datum UINT1_mul (FMGR_FUNCTION_ARGS)
 
Datum UINT1_div (FMGR_FUNCTION_ARGS)
 
Datum UINT1_mod (FMGR_FUNCTION_ARGS)
 
Datum UINT1_neg (FMGR_FUNCTION_ARGS)
 
Datum UINT1_eq (FMGR_FUNCTION_ARGS)
 
Datum UINT1_ne (FMGR_FUNCTION_ARGS)
 
Datum UINT1_lt (FMGR_FUNCTION_ARGS)
 
Datum UINT1_le (FMGR_FUNCTION_ARGS)
 
Datum UINT1_gt (FMGR_FUNCTION_ARGS)
 
Datum UINT1_ge (FMGR_FUNCTION_ARGS)
 
Datum UINT1_not (FMGR_FUNCTION_ARGS)
 
Datum UINT1_and (FMGR_FUNCTION_ARGS)
 
Datum UINT1_or (FMGR_FUNCTION_ARGS)
 
Datum UINT1_xor (FMGR_FUNCTION_ARGS)
 
Datum UINT1_lsh (FMGR_FUNCTION_ARGS)
 
Datum UINT1_rsh (FMGR_FUNCTION_ARGS)
 
Datum UINT1_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT1_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT1_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT1_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT1_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_in (FMGR_FUNCTION_ARGS)
 
Datum UINT2_out (FMGR_FUNCTION_ARGS)
 
Datum UINT2_add (FMGR_FUNCTION_ARGS)
 
Datum UINT2_sub (FMGR_FUNCTION_ARGS)
 
Datum UINT2_mul (FMGR_FUNCTION_ARGS)
 
Datum UINT2_div (FMGR_FUNCTION_ARGS)
 
Datum UINT2_mod (FMGR_FUNCTION_ARGS)
 
Datum UINT2_neg (FMGR_FUNCTION_ARGS)
 
Datum UINT2_eq (FMGR_FUNCTION_ARGS)
 
Datum UINT2_ne (FMGR_FUNCTION_ARGS)
 
Datum UINT2_lt (FMGR_FUNCTION_ARGS)
 
Datum UINT2_le (FMGR_FUNCTION_ARGS)
 
Datum UINT2_gt (FMGR_FUNCTION_ARGS)
 
Datum UINT2_ge (FMGR_FUNCTION_ARGS)
 
Datum UINT2_not (FMGR_FUNCTION_ARGS)
 
Datum UINT2_and (FMGR_FUNCTION_ARGS)
 
Datum UINT2_or (FMGR_FUNCTION_ARGS)
 
Datum UINT2_xor (FMGR_FUNCTION_ARGS)
 
Datum UINT2_lsh (FMGR_FUNCTION_ARGS)
 
Datum UINT2_rsh (FMGR_FUNCTION_ARGS)
 
Datum UINT2_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT2_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT2_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT2_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT2_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_in (FMGR_FUNCTION_ARGS)
 
Datum UINT4_out (FMGR_FUNCTION_ARGS)
 
Datum UINT4_add (FMGR_FUNCTION_ARGS)
 
Datum UINT4_sub (FMGR_FUNCTION_ARGS)
 
Datum UINT4_mul (FMGR_FUNCTION_ARGS)
 
Datum UINT4_div (FMGR_FUNCTION_ARGS)
 
Datum UINT4_mod (FMGR_FUNCTION_ARGS)
 
Datum UINT4_neg (FMGR_FUNCTION_ARGS)
 
Datum UINT4_eq (FMGR_FUNCTION_ARGS)
 
Datum UINT4_ne (FMGR_FUNCTION_ARGS)
 
Datum UINT4_lt (FMGR_FUNCTION_ARGS)
 
Datum UINT4_le (FMGR_FUNCTION_ARGS)
 
Datum UINT4_gt (FMGR_FUNCTION_ARGS)
 
Datum UINT4_ge (FMGR_FUNCTION_ARGS)
 
Datum UINT4_not (FMGR_FUNCTION_ARGS)
 
Datum UINT4_and (FMGR_FUNCTION_ARGS)
 
Datum UINT4_or (FMGR_FUNCTION_ARGS)
 
Datum UINT4_xor (FMGR_FUNCTION_ARGS)
 
Datum UINT4_lsh (FMGR_FUNCTION_ARGS)
 
Datum UINT4_rsh (FMGR_FUNCTION_ARGS)
 
Datum UINT4_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT4_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT4_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT4_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT4_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_in (FMGR_FUNCTION_ARGS)
 
Datum UINT8_out (FMGR_FUNCTION_ARGS)
 
Datum UINT8_add (FMGR_FUNCTION_ARGS)
 
Datum UINT8_sub (FMGR_FUNCTION_ARGS)
 
Datum UINT8_mul (FMGR_FUNCTION_ARGS)
 
Datum UINT8_div (FMGR_FUNCTION_ARGS)
 
Datum UINT8_mod (FMGR_FUNCTION_ARGS)
 
Datum UINT8_neg (FMGR_FUNCTION_ARGS)
 
Datum UINT8_eq (FMGR_FUNCTION_ARGS)
 
Datum UINT8_ne (FMGR_FUNCTION_ARGS)
 
Datum UINT8_lt (FMGR_FUNCTION_ARGS)
 
Datum UINT8_le (FMGR_FUNCTION_ARGS)
 
Datum UINT8_gt (FMGR_FUNCTION_ARGS)
 
Datum UINT8_ge (FMGR_FUNCTION_ARGS)
 
Datum UINT8_not (FMGR_FUNCTION_ARGS)
 
Datum UINT8_and (FMGR_FUNCTION_ARGS)
 
Datum UINT8_or (FMGR_FUNCTION_ARGS)
 
Datum UINT8_xor (FMGR_FUNCTION_ARGS)
 
Datum UINT8_lsh (FMGR_FUNCTION_ARGS)
 
Datum UINT8_rsh (FMGR_FUNCTION_ARGS)
 
Datum UINT8_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT8_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT8_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT8_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum UINT8_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_in (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_out (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_length (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_concat (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_eq (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_ne (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_lt (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_le (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_gt (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_ge (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_CHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR___STRING_eq (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_eq_ci (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_ne_ci (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_lt_ci (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_le_ci (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_gt_ci (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_ge_ci (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR___STRING_eq_ci (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_in (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_out (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_add (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_sub (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_mul (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_div (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_neg (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_eq (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_ne (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_lt (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_le (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_gt (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_ge (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_in (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_out (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_add (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_sub (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_mul (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_div (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_neg (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_eq (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_ne (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_lt (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_le (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_gt (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_ge (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_SUM_acc (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_AVG_acc (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_MIN_acc (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_MAX_acc (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_MINMAX_finalize (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_VARCHAR (FMGR_FUNCTION_ARGS)
 
Datum VARCHAR_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum COUNT_init (FMGR_FUNCTION_ARGS)
 
Datum COUNT_acc (FMGR_FUNCTION_ARGS)
 
Datum COUNT_finalize (FMGR_FUNCTION_ARGS)
 
Datum primitive_SUM_init (FMGR_FUNCTION_ARGS)
 
Datum int_SUM_finalize (FMGR_FUNCTION_ARGS)
 
Datum uint_SUM_finalize (FMGR_FUNCTION_ARGS)
 
Datum floating_SUM_finalize (FMGR_FUNCTION_ARGS)
 
Datum AVG_init (FMGR_FUNCTION_ARGS)
 
Datum AVG_finalize (FMGR_FUNCTION_ARGS)
 
Datum MINMAX_init (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_INT1 (FMGR_FUNCTION_ARGS)
 
Datum INT1_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_INT2 (FMGR_FUNCTION_ARGS)
 
Datum INT2_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_INT4 (FMGR_FUNCTION_ARGS)
 
Datum INT4_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_INT8 (FMGR_FUNCTION_ARGS)
 
Datum INT8_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_UINT1 (FMGR_FUNCTION_ARGS)
 
Datum UINT1_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_UINT2 (FMGR_FUNCTION_ARGS)
 
Datum UINT2_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_UINT4 (FMGR_FUNCTION_ARGS)
 
Datum UINT4_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_UINT8 (FMGR_FUNCTION_ARGS)
 
Datum UINT8_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum FLOAT_to_DOUBLE (FMGR_FUNCTION_ARGS)
 
Datum DOUBLE_to_FLOAT (FMGR_FUNCTION_ARGS)
 
Datum DATE_in (FMGR_FUNCTION_ARGS)
 
Datum DATE_out (FMGR_FUNCTION_ARGS)
 
Datum DATE_eq (FMGR_FUNCTION_ARGS)
 
Datum DATE_ne (FMGR_FUNCTION_ARGS)
 
Datum DATE_lt (FMGR_FUNCTION_ARGS)
 
Datum DATE_le (FMGR_FUNCTION_ARGS)
 
Datum DATE_gt (FMGR_FUNCTION_ARGS)
 
Datum DATE_ge (FMGR_FUNCTION_ARGS)
 
Datum DATE_adddays (FMGR_FUNCTION_ARGS)
 
Datum DATE_subdays (FMGR_FUNCTION_ARGS)
 
std::pair< Oid, FunctionPtrbuiltin_func_table []
 
constexpr uint32_t num_builtin_funcs = 420
 
constexpr Oid max_sys_oid = 19999
 This is an arbitrarily chosen large number that all systable entries in the init file should have an OID <= max_sys_oid. More...
 
static Database s_db_instance
 
Database *const g_db = &s_db_instance
 The global instance of Database. More...
 
static bool s_init_global_called = false
 
bool g_test_no_bufman = false
 Set this to true if you don't want Database to create and initialize the buffer manager. More...
 
bool g_test_no_catcache = false
 Set this to true if you don't want Database to create and initialize the catalog and its cache. More...
 
bool g_test_no_index = false
 Set this to true if you don't want the Database to disallow building any index (including the catalog tables). More...
 
bool g_test_catcache_use_volatiletree = false
 Set this to true if you want the catalog cache to build volatile tree index over the catalog tables. More...
 
static const char * s_optype_symbols []
 
static FieldId s_num_operands []
 
static absl::flat_hash_map< std::string, OpTypes_optype_lookup_table
 
static const RecordId INFINITY_RECORDID = { RESERVED_PID, MaxSlotId }
 This is the record number that is guaranteed to be larger than any valid record ID. More...
 
constexpr uint16_t BTREE_PAGE_ISROOT = 1u
 
constexpr uint16_t BTREE_PAGE_ISLEAF = 2u
 
constexpr size_t BTreePageHeaderSize = sizeof(BTreePageHeaderData)
 
constexpr size_t BTreeInternalRecordHeaderSize
 
constexpr size_t BTreeLeafRecordHeaderSize
 
constexpr FieldOffset BTREE_MAX_RECORD_SIZE = 2000
 
constexpr FieldOffset BTREE_MIN_PAGE_USAGE = (FieldOffset) (PAGE_SIZE * 0.4)
 
static constexpr const uint64_t VTHDR_ISREC_MASK = ((uint64_t) 1) << 32
 
static constexpr const uint64_t VTHDR_BUFIDX_MASK = (((uint64_t) 1) << 32) - 1
 
static absl::flat_hash_map< Oid, std::shared_ptr< VolatileTreeBase > > s_volatile_tree_base
 
constexpr FileId WAL_FILEID_MASK = ((FileId) 1) << 31
 
constexpr FileId TMP_FILEID_MASK = ((FileId) 1) << 30
 
constexpr int FileIdBits = 19
 
constexpr FileId MinRegularFileId = 1
 
constexpr FileId MaxRegularFileId = (((FileId) 1) << (FileIdBits + 1)) - 1
 
constexpr FileId INVALID_FID = 0
 
constexpr FileId NEW_REGULAR_FID = INVALID_FID
 
constexpr FileId NEW_TMP_FID = TMP_FILEID_MASK
 
constexpr uint64_t DBFILE_MAGIC = 0xdefabc1221cbafedul
 
constexpr PageNumber PENDING_CREATION_PID = RESERVED_PID
 
constexpr PageNumber FM_META_PID = INVALID_PID
 The FM meta page is always the first page in the file. More...
 
constexpr PageNumber PageGroupSize = 64
 Size of allocation in pages. More...
 
constexpr size_t MaxFileSize = (size_t) 64 * 1024 * 1024 * 1024
 Maximum size of a single data file. More...
 
constexpr PageNumber MaxNumPagesPerFile = MaxFileSize / PAGE_SIZE
 Maximum number of pages in a single data file. More...
 
constexpr uint64_t MaxNumDataFiles
 Maximum number of data files. More...
 
static constexpr size_t VarlenDataPageHeaderSize
 
static constexpr char LogTable256 [256]
 
static constexpr const uint16_t node_tag_group_count [16]
 
static constexpr const uint16_t node_tag_group_base_offset [16]
 
static constexpr const uint16_t num_node_tags
 
static const char *const node_tag_name_ [num_node_tags]
 
static constexpr NodeTag node_tag_base_ [num_node_tags]
 
char g_zerobuf [g_zerobuf_size]
 
constexpr size_t g_zerobuf_size = 8 * PAGE_SIZE
 

Typedef Documentation

◆ AggType

typedef uint8_t taco::AggType

The aggregation type, see catalog/aggtyp.h.

All except the OTHER type may be uniquely identified by the aggregation type and its operand type. In all cases, aggregations are also uniquely identified by operand type and its name.

◆ BufferId

typedef uint64_t taco::BufferId

◆ CatCacheImpl

◆ FieldId

typedef int16_t taco::FieldId

◆ FieldOffset

typedef int16_t taco::FieldOffset

◆ FileId

typedef uint32_t taco::FileId

The file ID.

It is stored as tabfid in the systables. If the type of FileId changes, the SQL type of tabfid must also change in catalog/systables/Table.inc.

◆ FunctionInfo

typedef std::function<Datum(FunctionCallInfo&)> taco::FunctionInfo

An FMGR managed function should be declared as.

taco::Datum some_function(FMGR_FUNCTION_ARGS);

To define a built-in function that the Function catalog collects at compile time, use the BUILTIN_XXX() macros defined in utils/builtin_funcs.h.

It should access its arguments using appropriate FMGR_GETARG macros and should return its result using return Datum::From() or return Datum::FromXXX().

To call a function, use any of the function call templates (e.g., FunctionCall()) below, or directly call FunctionInfo with a FunctionCallInfo supplied by the caller (in which case the caller is responsible for checking whether the return value is null).

FunctionInfo can be implicitly cast to a bool, to indicate whether it is valid and callable.

◆ FunctionPtr

typedef Datum(* taco::FunctionPtr) (FunctionCallInfo &fcinfo)

◆ IdxType

typedef uint8_t taco::IdxType

The index type, see index/idxtyps.h.

◆ Oid

typedef uint32_t taco::Oid

◆ OpType

typedef uint8_t taco::OpType

The operator type, see expr/optypes.h.

◆ PageNumber

typedef uint32_t taco::PageNumber

◆ PathItem

Each PathItem is a (PageNumber, SlotId) pair of an B-tree internal record.

It is used for storing the page number and slot id of each B-tree internal record whose child page pid you followed when you call BTree::FindLeafPage() to locate a leaf page for a (key, recid) pair.

◆ ScopedBufferId

An RAII-style guard for a pinned buffer frame, which is unpinned when it goes out of its scope.

A typical usage is:

{ char *buf; ScopedBufferId bufid = g_bufman->PinPage(some_pid, &buf); // do something with the buffered page } // buffer pin automatically dropped at the end of the current scope

Note that this is only meant to be a convenient tool for you to write correct code, but you should always keep an eye on when and where the buffer pin is dropped. Suppose bufid is a ScopedBufferId, excplicitly calling g_bufman->UnpinPage(bufid) is safe, as it resets it upon retrun. However, it is not safe to call g_bufman->UnpinPage(bufid.Get()) without resetting it, because you will end up with a double "unpin" at the end of the scope.

◆ ScopedBufferLatch

You may ignore this type alias since we won't be implementing concurrency control and recovery.

◆ SlotId

typedef uint16_t taco::SlotId

◆ SortCompareFunction

typedef std::function<int(const char *item1, const char *item2)> taco::SortCompareFunction

SortCompareFunction compares item1 and item2 and returns a negative integer if item1 < item2, 0 if they equal, or a positive integer if item1 > item2.

It might be a lambda expression that captures its environment, or an std::bind() over a member function of a class and etc.

Note: it does not need length information of items since they are going to be implicitly known by the users through schema and encoded in the function already.

◆ tree_type

◆ UniqueIndexKey

The returned smart pointer of IndexKey::Create().

Enumeration Type Documentation

◆ InitLineType

enum taco::InitLineType
strong
Enumerator
Eof 
Error 
Table 
Data 

◆ LatchMode

enum taco::LatchMode
strong
Enumerator
SH 
EX 

◆ NodeTag

enum taco::NodeTag : uint16_t
strong
Enumerator
T_TreeNode 
T_InvalidTag 

Function Documentation

◆ AddWithCheck()

template<class T , class U >
bool taco::AddWithCheck ( T &  left,
right 
)

◆ BTreeCheckComparisonOperatorPrototype()

void taco::BTreeCheckComparisonOperatorPrototype ( Oid  typid,
Oid  opfuncid 
)
static

Checks if the function opfuncid is a boolean binary operator over type typid.

◆ BTreeComputePageUsage()

static FieldOffset taco::BTreeComputePageUsage ( SlotId  num_recs,
FieldOffset  totrlen 
)
inlinestatic

Returns the page usage of a B-Tree page given its number of records and its total length of all the records.

◆ BTreeRecordGetHeapRecordId()

static const RecordId& taco::BTreeRecordGetHeapRecordId ( const char *  recbuf,
bool  isleaf 
)
inlinestatic

◆ BTreeRecordGetPayload() [1/2]

static char* taco::BTreeRecordGetPayload ( char *  recbuf,
bool  isleaf 
)
inlinestatic

◆ BTreeRecordGetPayload() [2/2]

static const char* taco::BTreeRecordGetPayload ( const char *  recbuf,
bool  isleaf 
)
inlinestatic

◆ BUILTIN_ARGTYPE() [1/32]

taco::BUILTIN_ARGTYPE ( )

◆ BUILTIN_ARGTYPE() [2/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  )

◆ BUILTIN_ARGTYPE() [3/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
ANY   
)

◆ BUILTIN_ARGTYPE() [4/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
DOUBLE   
)

◆ BUILTIN_ARGTYPE() [5/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
FLOAT   
)

◆ BUILTIN_ARGTYPE() [6/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
INT1   
)

◆ BUILTIN_ARGTYPE() [7/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
INT2   
)

◆ BUILTIN_ARGTYPE() [8/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
INT4   
)

◆ BUILTIN_ARGTYPE() [9/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
INT8   
)

◆ BUILTIN_ARGTYPE() [10/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
UINT1   
)

◆ BUILTIN_ARGTYPE() [11/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
UINT2   
)

◆ BUILTIN_ARGTYPE() [12/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
UINT4   
)

◆ BUILTIN_ARGTYPE() [13/32]

taco::BUILTIN_ARGTYPE ( __INTERNAL  ,
UINT8   
)

◆ BUILTIN_ARGTYPE() [14/32]

taco::BUILTIN_ARGTYPE ( __STRING  )

◆ BUILTIN_ARGTYPE() [15/32]

taco::BUILTIN_ARGTYPE ( BOOL  )

◆ BUILTIN_ARGTYPE() [16/32]

taco::BUILTIN_ARGTYPE ( CHAR  )

◆ BUILTIN_ARGTYPE() [17/32]

taco::BUILTIN_ARGTYPE ( CHAR  ,
CHAR   
)

◆ BUILTIN_ARGTYPE() [18/32]

taco::BUILTIN_ARGTYPE ( DATE  )

◆ BUILTIN_ARGTYPE() [19/32]

taco::BUILTIN_ARGTYPE ( DOUBLE  )

◆ BUILTIN_ARGTYPE() [20/32]

taco::BUILTIN_ARGTYPE ( FLOAT  )

◆ BUILTIN_ARGTYPE() [21/32]

taco::BUILTIN_ARGTYPE ( INT1  )

◆ BUILTIN_ARGTYPE() [22/32]

taco::BUILTIN_ARGTYPE ( INT2  )

◆ BUILTIN_ARGTYPE() [23/32]

taco::BUILTIN_ARGTYPE ( INT4  )

◆ BUILTIN_ARGTYPE() [24/32]

taco::BUILTIN_ARGTYPE ( INT8  )

◆ BUILTIN_ARGTYPE() [25/32]

taco::BUILTIN_ARGTYPE ( OID  )

◆ BUILTIN_ARGTYPE() [26/32]

taco::BUILTIN_ARGTYPE ( UINT1  )

◆ BUILTIN_ARGTYPE() [27/32]

taco::BUILTIN_ARGTYPE ( UINT2  )

◆ BUILTIN_ARGTYPE() [28/32]

taco::BUILTIN_ARGTYPE ( UINT4  )

◆ BUILTIN_ARGTYPE() [29/32]

taco::BUILTIN_ARGTYPE ( UINT8  )

◆ BUILTIN_ARGTYPE() [30/32]

taco::BUILTIN_ARGTYPE ( VARCHAR  )

◆ BUILTIN_ARGTYPE() [31/32]

taco::BUILTIN_ARGTYPE ( VARCHAR  ,
__STRING   
)

◆ BUILTIN_ARGTYPE() [32/32]

taco::BUILTIN_ARGTYPE ( VARCHAR  ,
VARCHAR   
)

◆ BUILTIN_OPR() [1/23]

taco::BUILTIN_OPR ( ADD  )

◆ BUILTIN_OPR() [2/23]

taco::BUILTIN_OPR ( AND  )

◆ BUILTIN_OPR() [3/23]

taco::BUILTIN_OPR ( BITAND  )

◆ BUILTIN_OPR() [4/23]

taco::BUILTIN_OPR ( BITNOT  )

◆ BUILTIN_OPR() [5/23]

taco::BUILTIN_OPR ( BITOR  )

◆ BUILTIN_OPR() [6/23]

taco::BUILTIN_OPR ( BITXOR  )

◆ BUILTIN_OPR() [7/23]

taco::BUILTIN_OPR ( CAST  )

◆ BUILTIN_OPR() [8/23]

taco::BUILTIN_OPR ( DIV  )

◆ BUILTIN_OPR() [9/23]

taco::BUILTIN_OPR ( EQ  )

◆ BUILTIN_OPR() [10/23]

taco::BUILTIN_OPR ( GE  )

◆ BUILTIN_OPR() [11/23]

taco::BUILTIN_OPR ( GT  )

◆ BUILTIN_OPR() [12/23]

taco::BUILTIN_OPR ( IMPLICIT_CAST  )

◆ BUILTIN_OPR() [13/23]

taco::BUILTIN_OPR ( LE  )

◆ BUILTIN_OPR() [14/23]

taco::BUILTIN_OPR ( LSH  )

◆ BUILTIN_OPR() [15/23]

taco::BUILTIN_OPR ( LT  )

◆ BUILTIN_OPR() [16/23]

taco::BUILTIN_OPR ( MOD  )

◆ BUILTIN_OPR() [17/23]

taco::BUILTIN_OPR ( MUL  )

◆ BUILTIN_OPR() [18/23]

taco::BUILTIN_OPR ( NE  )

◆ BUILTIN_OPR() [19/23]

taco::BUILTIN_OPR ( NEG  )

◆ BUILTIN_OPR() [20/23]

taco::BUILTIN_OPR ( NOT  )

◆ BUILTIN_OPR() [21/23]

taco::BUILTIN_OPR ( OR  )

◆ BUILTIN_OPR() [22/23]

taco::BUILTIN_OPR ( RSH  )

◆ BUILTIN_OPR() [23/23]

taco::BUILTIN_OPR ( SUB  )

◆ check_datadir()

static void taco::check_datadir ( const std::string &  datadir,
bool  create 
)
static

◆ CleanVolatileTree()

void taco::CleanVolatileTree ( )

Cleans up the internal state of the in-memory tree index.

◆ ClearSecondaryLogOutput()

void taco::ClearSecondaryLogOutput ( )

Clears the secondary output stream where logs messages additionally prints.

◆ copy_bytes()

static void taco::copy_bytes ( bool  passbyref,
int16_t  len,
const char *  src,
char *  tgt 
)
inlinestatic

◆ copy_dir()

void taco::copy_dir ( const char *  srcpath,
const char *  dstpath 
)

◆ create_datadir()

static void taco::create_datadir ( const std::string &  datadir)
static

◆ DataFileIdAndPageIdGetPageNumber()

constexpr PageNumber taco::DataFileIdAndPageIdGetPageNumber ( uint64_t  fsfileid,
PageNumber  fspid 
)
constexpr

◆ dir_empty()

bool taco::dir_empty ( const char *  path)

◆ dir_exists()

bool taco::dir_exists ( const char *  path)

◆ DisableLogPrint()

void taco::DisableLogPrint ( )

Disable all log message printing.

Note that, even if log message printing is disabled, a log message at severity kError or a kFatal will stll cause a TDBError exception to be thrown.

◆ emplace_back_parameter_pack() [1/2]

template<class Container >
void taco::emplace_back_parameter_pack ( Container &  c)
inline

◆ emplace_back_parameter_pack() [2/2]

template<class Container , class Arg0 , class ... Args>
void taco::emplace_back_parameter_pack ( Container &  c,
Arg0 &&  arg0,
Args &&...  args 
)
inline

◆ fallocate_zerofill_fast()

bool taco::fallocate_zerofill_fast ( int  fd,
off_t  offset,
off_t  len 
)

Calls fallocate(2) with mode FALLOC_FL_ZERO_RANGE if it is available.

Returns true only if the system has falloate(2); the file system supports the mode and the allocation is successful. In case fallocate(2) exists but fails, errno will be the one set by fallocate(2) call. Otherwise, errno is set to 0 upon return.

◆ file_exists()

bool taco::file_exists ( const char *  path)

◆ FileIdGetDir1Offset()

constexpr FileId taco::FileIdGetDir1Offset ( FileId  fid)
constexpr

◆ FileIdGetDir2Offset()

constexpr FileId taco::FileIdGetDir2Offset ( FileId  fid)
constexpr

◆ FilePathIsTDBFilePath()

bool taco::FilePathIsTDBFilePath ( absl::string_view  filepath)

Returns true if filepath belongs to tdb source code path.

Note that this function is used as a flags usage config function for absl flags library, and we expect the filepath does not have the initial '/'.

◆ FindBuiltinFunction()

FunctionInfo taco::FindBuiltinFunction ( Oid  oid)

Looks up the callable function info for a built-in function registered in the system catalog.

Returns
a valid FunctionInfo if found, or an invalid FunctionInfo if not found

◆ FunctionCall()

template<class ... Args>
Datum taco::FunctionCall ( const FunctionInfo func,
Args &&...  args 
)

Call a function without passing any type parameter for the return type.

◆ FunctionCallWithTypparam()

template<class ... Args>
Datum taco::FunctionCallWithTypparam ( const FunctionInfo func,
uint64_t  typparam,
Args &&...  args 
)

◆ GetCurrentDataSize()

uint64_t taco::GetCurrentDataSize ( )

Returns the approximate size of heap-allocated memory in bytes.

This returns stats.allocated if we're using jemalloc that was compiled with –enable-stats (enabled by default). Otherwise, it returns the size of the data segment.

◆ GetOpTypeSymbol()

absl::string_view taco::GetOpTypeSymbol ( OpType  optype)

◆ IdxTypeGetName()

absl::string_view taco::IdxTypeGetName ( IdxType  idx)

◆ IdxTypeIsValid()

static constexpr bool taco::IdxTypeIsValid ( IdxType  idxtyp)
inlinestaticconstexpr

◆ IdxTypeIsVolatile()

bool taco::IdxTypeIsVolatile ( IdxType  idx)

◆ IdxTypeNeedsEqualOperator()

bool taco::IdxTypeNeedsEqualOperator ( IdxType  idx)

◆ IdxTypeNeedsLessOperator()

bool taco::IdxTypeNeedsLessOperator ( IdxType  idx)

◆ InitBuiltinFunctions()

void taco::InitBuiltinFunctions ( )

Initializes the lookup table for built-in functions registered in the system catalog.

◆ InitOpTypes()

void taco::InitOpTypes ( )

◆ InitVolatileTree()

void taco::InitVolatileTree ( )

Initializes the internal state of the in-memory tree index.

◆ LogError()

void taco::LogError ( LogSeverity  severity,
std::string &&  msg 
)

Logs a message (which may not be an error despite what the name suggests).

This function is used by LOG() macro, and usually no one should directly call LogError().

◆ logn_ceil()

constexpr int taco::logn_ceil ( uint64_t  x)
constexpr

Returns $\lceil log_2(x) \rceil$ for x > 0, or 0 for x = 0.

◆ logn_floor()

constexpr int taco::logn_floor ( uint64_t  x)
constexpr

Returns $\lfloor log_2(x) \rfloor$ for x > 0, or 0 for x = 0.

Ref: Bit Twiddling Hacks.

◆ mktempdir()

std::string taco::mktempdir ( std::string  prefix)

◆ mktempfile()

std::string taco::mktempfile ( std::string  prefix)

◆ node_tag_base()

NodeTag taco::node_tag_base ( NodeTag  tag)

Returns the immediate base class of `‘tag’'.

◆ node_tag_is_a()

bool taco::node_tag_is_a ( NodeTag  tag1,
NodeTag  tag2 
)

Returns whether tag1'' is a class derived fromtag2''.

◆ node_tag_name()

const char * taco::node_tag_name ( NodeTag  tag)

Returns the class name of the tag's class.

◆ node_tag_offset()

static constexpr uint16_t taco::node_tag_offset ( NodeTag  tag)
inlinestaticconstexpr

◆ operator!=()

constexpr bool taco::operator!= ( const RecordId rid1,
const RecordId rid2 
)
inlineconstexpr

◆ operator<()

constexpr bool taco::operator< ( const RecordId rid1,
const RecordId rid2 
)
inlineconstexpr

◆ operator<<()

std::ostream& taco::operator<< ( std::ostream &  out,
const RecordId rid 
)
inline

◆ operator<=()

constexpr bool taco::operator<= ( const RecordId rid1,
const RecordId rid2 
)
inlineconstexpr

◆ operator==()

constexpr bool taco::operator== ( const RecordId rid1,
const RecordId rid2 
)
inlineconstexpr

◆ operator>()

constexpr bool taco::operator> ( const RecordId rid1,
const RecordId rid2 
)
inlineconstexpr

◆ operator>=()

constexpr bool taco::operator>= ( const RecordId rid1,
const RecordId rid2 
)
inlineconstexpr

◆ OpTypeIsBinary()

bool taco::OpTypeIsBinary ( OpType  optype)

◆ OpTypeIsUnary()

bool taco::OpTypeIsUnary ( OpType  optype)

◆ PageNumberGetDataFileId()

constexpr uint64_t taco::PageNumberGetDataFileId ( PageNumber  pid)
constexpr

◆ PageNumberGetDataFilePageId()

constexpr PageNumber taco::PageNumberGetDataFilePageId ( PageNumber  pid)
constexpr

◆ ParseOpTypesSymbol()

OpType taco::ParseOpTypesSymbol ( absl::string_view  str)

◆ ParseOpTypeSymbol()

OpType taco::ParseOpTypeSymbol ( absl::string_view  str)

◆ RecordIdToTSSSavedPosition()

static Datum taco::RecordIdToTSSSavedPosition ( RecordId  recid)
static

Encodes a record ID as a saved position in TableScanState.

Feel free to devise your own encoding scheme. This function is only provided as a hint of how to do so in Taco-DB.

You might also want to decide how to denote the boundary cases (i.e., start of scan and end of scan) in the saved positions. Hint: neither INVALID_PID nor RESERVED_PID may appear in any valid record id.

◆ regular_file_exists()

bool taco::regular_file_exists ( const char *  path)

◆ remove_dir()

void taco::remove_dir ( const char *  path)

◆ remove_trailing_space()

static absl::string_view taco::remove_trailing_space ( absl::string_view  s)
static

◆ RestoreLogOutput()

void taco::RestoreLogOutput ( )

Restores the log output stream to std::cerr.

◆ SetLogOutput()

void taco::SetLogOutput ( std::ostream *  log_out)

Sets the output stream where the log messages should be printed to.

◆ SetLogPrintMinSeverity()

void taco::SetLogPrintMinSeverity ( LogSeverity  min_severity)

Sets the minimum severity level of a log message to be printed.

◆ SetSecondaryLogOutput()

void taco::SetSecondaryLogOutput ( std::ostream *  log_out,
LogSeverity  min_severity 
)

Sets the secondary output stream where logs messages additionally prints with at least the specified severity.

◆ SimpleAtoiWrapper()

template<class IntType >
bool taco::SimpleAtoiWrapper ( absl::string_view  str,
IntType *  out 
)
inline

A wrapper version of absl::SimpleAtoi that supports 1/2/4/8-byte integers.

◆ str_append_spaces()

void taco::str_append_spaces ( std::string &  buf,
int  num_spaces 
)
inline

◆ string_compare_ci()

int taco::string_compare_ci ( const absl::string_view &  s1,
const absl::string_view &  s2 
)
inline

◆ string_equal_ci()

bool taco::string_equal_ci ( const absl::string_view &  s1,
const absl::string_view &  s2 
)
inline

◆ StripSourcePath()

absl::string_view taco::StripSourcePath ( absl::string_view  path)

◆ TSSSavedPositionToRecordId()

static RecordId taco::TSSSavedPositionToRecordId ( DatumRef  d)
static

◆ TupleCompare()

int taco::TupleCompare ( const IndexKey key,
const char *  tuplebuf,
const Schema schema,
const FunctionInfo lt_funcs,
const FunctionInfo eq_funcs 
)

Compares the key with the tuple serialized in the buffer tuplebuf with the schema, using the "<" functions in lt_funcs, and ">" functions in eq_funcs, in lexicographical order.

However, null values are considered to be smaller than any non-null and two null values compare equal.

When key has fewer keys fields than the schema, only a prefix of the fields are compared. Hence, key which is a prefix of a key record is considered as equal rather than smaller than that. If the caller wants to interpret that a prefix of a key record as smaller than the key record, it should do further check if the number of fields in the key matches the number of fields in the key record.

Returns a -1 if key is smaller than the tuple stored in tuplebuf; returns 0 if they are equal; or returns +1 if key is larger than the tuple stored in tuplebuf.

It is a fatal error if the key has more fields than the schema does. It is undefined if !schema->IsLayoutComputed(); or lt_funcs/eq_funcs do not have as many functions as the number of fields.

◆ TupleEqual()

bool taco::TupleEqual ( const IndexKey key,
const char *  tuplebuf,
const Schema schema,
const FunctionInfo eq_funcs 
)

◆ TYPEALIGN()

template<class T >
constexpr T taco::TYPEALIGN ( uint64_t  ALIGNVAL,
LEN 
)
constexpr

These alignment macros are derived from PostgreSQL.

See COPYRIGHT for a copyright notice on code for that. We assume we have 8-byte integers and pointers so MAXALIGN_OF is fixed to 8. These macros are intentionally kept as macros, so that we can use either some integral type or any flavor of char* as the second argument, without writing tons of boiler-plate template code with std::enable_if's. The downside is GDB can't invoke macros, but it just takes too much effort to enable these in GDB.

Alignment macros: align a length or address appropriately for a given type. The fooALIGN() macros round up to a multiple of the required alignment, while the fooALIGN_DOWN() macros round down. The latter are more useful for problems like "how many X-sized structures will fit in a page?".

NOTE: TYPEALIGN[_DOWN] will not work if ALIGNVAL is not a power of 2. That case seems extremely unlikely to be needed in practice, however.

NOTE: MAXIMUM_ALIGNOF, and hence MAXALIGN(), intentionally exclude any larger-than-8-byte types the compiler might have.

◆ TYPEALIGN_DOWN()

template<class T >
constexpr T taco::TYPEALIGN_DOWN ( uint64_t  ALIGNVAL,
LEN 
)
constexpr

◆ varchar_to_string_view()

absl::string_view taco::varchar_to_string_view ( DatumRef  datum)

Converts a VARCHAR-typed datum into a internal string.

Different from the output function VARCHAR_out, this does not copy the content and thus is useful for avoiding an unncessary copy if the caller can make sure the datum is still alive when the returned string is accessed.

◆ VTHDRGetBufIdx()

static size_t taco::VTHDRGetBufIdx ( VolatileTreeRecordHeader hdr)
inlinestatic

◆ VTHDRGetData()

char* taco::VTHDRGetData ( VolatileTreeRecordHeader hdr)
inline

◆ VTHDRGetIsRecord()

static bool taco::VTHDRGetIsRecord ( VolatileTreeRecordHeader hdr)
inlinestatic

◆ VTHDRKeyPointer()

const IndexKey*& taco::VTHDRKeyPointer ( VolatileTreeRecordHeader hdr)
inline

◆ VTHDRSetBufIdx()

static void taco::VTHDRSetBufIdx ( VolatileTreeRecordHeader hdr,
size_t  bufidx 
)
inlinestatic

◆ VTHDRSetIsRecord()

static void taco::VTHDRSetIsRecord ( VolatileTreeRecordHeader hdr,
bool  is_rec 
)
inlinestatic

◆ walker_construct()

static void taco::walker_construct ( const double *  E,
double *  B,
double *  F,
uint32_t *  IA,
uint32_t  N 
)
static

Variable Documentation

◆ AVG_finalize

Datum taco::AVG_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ AVG_init

◆ BOOL_and

◆ BOOL_eq

◆ BOOL_ge

◆ BOOL_gt

◆ BOOL_in

◆ BOOL_le

◆ BOOL_lt

◆ BOOL_ne

◆ BOOL_not

◆ BOOL_or

◆ BOOL_out

◆ BTREE_MAX_RECORD_SIZE

constexpr FieldOffset taco::BTREE_MAX_RECORD_SIZE = 2000
constexpr

◆ BTREE_MIN_PAGE_USAGE

constexpr FieldOffset taco::BTREE_MIN_PAGE_USAGE = (FieldOffset) (PAGE_SIZE * 0.4)
constexpr

◆ BTREE_PAGE_ISLEAF

constexpr uint16_t taco::BTREE_PAGE_ISLEAF = 2u
constexpr

◆ BTREE_PAGE_ISROOT

constexpr uint16_t taco::BTREE_PAGE_ISROOT = 1u
constexpr

◆ BTreeInternalRecordHeaderSize

constexpr size_t taco::BTreeInternalRecordHeaderSize
constexpr
Initial value:
=
MAXALIGN(sizeof(BTreeInternalRecordHeaderData))
#define MAXALIGN(LEN)
Definition: tdb_base.h:327

◆ BTreeLeafRecordHeaderSize

constexpr size_t taco::BTreeLeafRecordHeaderSize
constexpr
Initial value:
=
MAXALIGN(sizeof(BTreeLeafRecordHeaderData))

◆ BTreePageHeaderSize

constexpr size_t taco::BTreePageHeaderSize = sizeof(BTreePageHeaderData)
constexpr

◆ builtin_func_table

std::pair< Oid, FunctionPtr > taco::builtin_func_table

◆ CHAR_eq

◆ CHAR_eq_ci

Datum taco::CHAR_eq_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ CHAR_ge

◆ CHAR_ge_ci

Datum taco::CHAR_ge_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ CHAR_gt

◆ CHAR_gt_ci

Datum taco::CHAR_gt_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ CHAR_in

◆ CHAR_le

◆ CHAR_le_ci

Datum taco::CHAR_le_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ CHAR_lt

◆ CHAR_lt_ci

Datum taco::CHAR_lt_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ CHAR_ne

◆ CHAR_ne_ci

Datum taco::CHAR_ne_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ CHAR_out

◆ CHAR_to_VARCHAR

Datum taco::CHAR_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ CHAR_typlen

Datum taco::CHAR_typlen(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ COUNT_acc

◆ COUNT_finalize

Datum taco::COUNT_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ COUNT_init

Datum taco::COUNT_init(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DATE_adddays

Datum taco::DATE_adddays(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DATE_eq

◆ DATE_ge

◆ DATE_gt

◆ DATE_in

◆ DATE_le

◆ DATE_lt

◆ DATE_ne

◆ DATE_out

◆ DATE_subdays

Datum taco::DATE_subdays(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DBFILE_MAGIC

constexpr uint64_t taco::DBFILE_MAGIC = 0xdefabc1221cbafedul
constexpr

◆ DOUBLE_add

Datum taco::DOUBLE_add(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_AVG_acc

Datum taco::DOUBLE_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_div

Datum taco::DOUBLE_div(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_eq

◆ DOUBLE_ge

◆ DOUBLE_gt

◆ DOUBLE_in

◆ DOUBLE_le

◆ DOUBLE_lt

◆ DOUBLE_MAX_acc

Datum taco::DOUBLE_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_MIN_acc

Datum taco::DOUBLE_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_MINMAX_finalize

Datum taco::DOUBLE_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_mul

Datum taco::DOUBLE_mul(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_ne

◆ DOUBLE_neg

Datum taco::DOUBLE_neg(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_out

Datum taco::DOUBLE_out(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_sub

Datum taco::DOUBLE_sub(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_SUM_acc

Datum taco::DOUBLE_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_FLOAT

Datum taco::DOUBLE_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_INT1

Datum taco::DOUBLE_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_INT2

Datum taco::DOUBLE_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_INT4

Datum taco::DOUBLE_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_INT8

Datum taco::DOUBLE_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_UINT1

Datum taco::DOUBLE_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_UINT2

Datum taco::DOUBLE_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_UINT4

Datum taco::DOUBLE_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_UINT8

Datum taco::DOUBLE_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ DOUBLE_to_VARCHAR

Datum taco::DOUBLE_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FieldOffsetBits

constexpr int taco::FieldOffsetBits = logn_ceil(PAGE_SIZE)
constexpr

◆ FileIdBits

constexpr int taco::FileIdBits = 19
constexpr

◆ FLOAT_add

◆ FLOAT_AVG_acc

Datum taco::FLOAT_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_div

◆ FLOAT_eq

◆ FLOAT_ge

◆ FLOAT_gt

◆ FLOAT_in

◆ FLOAT_le

◆ FLOAT_lt

◆ FLOAT_MAX_acc

Datum taco::FLOAT_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_MIN_acc

Datum taco::FLOAT_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_MINMAX_finalize

Datum taco::FLOAT_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_mul

◆ FLOAT_ne

◆ FLOAT_neg

◆ FLOAT_out

◆ FLOAT_sub

◆ FLOAT_SUM_acc

Datum taco::FLOAT_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_DOUBLE

Datum taco::FLOAT_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_INT1

Datum taco::FLOAT_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_INT2

Datum taco::FLOAT_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_INT4

Datum taco::FLOAT_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_INT8

Datum taco::FLOAT_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_UINT1

Datum taco::FLOAT_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_UINT2

Datum taco::FLOAT_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_UINT4

Datum taco::FLOAT_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_UINT8

Datum taco::FLOAT_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FLOAT_to_VARCHAR

Datum taco::FLOAT_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ floating_SUM_finalize

Datum taco::floating_SUM_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ FM_META_PID

constexpr PageNumber taco::FM_META_PID = INVALID_PID
constexpr

The FM meta page is always the first page in the file.

It is not visible outside the FileManager anyway, so it is safe to reuse INVALID_PID as its page ID here.

◆ g_db

Database *const taco::g_db = &s_db_instance

The global instance of Database.

◆ g_log_out

std::ostream* taco::g_log_out = &std::cerr
static

The output stream the log prints to.

◆ g_min_log_severity

int taco::g_min_log_severity = (int) kInfo
static

The minimum log severity that we'll print it to stderr.

This is set to kINFO by default. In the tests, this will be set to kFatal + 1, and thus disable the printing.

◆ g_secondary_log_out

std::ostream* taco::g_secondary_log_out = nullptr
static

The secondary output stream the log additionally prints to.

◆ g_secondary_min_log_severity

int taco::g_secondary_min_log_severity = ((int) kFatal) + 1
static

The minimum log severity that we'll additionally print to the secondary outptu stream.

◆ g_test_catcache_use_volatiletree

bool taco::g_test_catcache_use_volatiletree = false

Set this to true if you want the catalog cache to build volatile tree index over the catalog tables.

This only has effect if g_test_no_index is false and during initialization of the database catalog. If the database catalog has already been initialized, the choice of index during the initialization takes precedence.

◆ g_test_no_bufman

bool taco::g_test_no_bufman = false

Set this to true if you don't want Database to create and initialize the buffer manager.

Default: false. Only to use in tests. Must be set before Database::open() call.

◆ g_test_no_catcache

bool taco::g_test_no_catcache = false

Set this to true if you don't want Database to create and initialize the catalog and its cache.

Default: false. Only to use to tests. Must be set before Database::open() call.

◆ g_test_no_index

bool taco::g_test_no_index = false

Set this to true if you don't want the Database to disallow building any index (including the catalog tables).

This will force the catalog cache to fall back to table scans to find records.

◆ g_zerobuf

char taco::g_zerobuf

◆ g_zerobuf_size

constexpr size_t taco::g_zerobuf_size = 8 * PAGE_SIZE
constexpr

◆ INFINITY_RECORDID

const RecordId taco::INFINITY_RECORDID = { RESERVED_PID, MaxSlotId }
static

This is the record number that is guaranteed to be larger than any valid record ID.

◆ INT1_add

◆ INT1_and

◆ INT1_AVG_acc

Datum taco::INT1_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_div

◆ INT1_eq

◆ INT1_ge

◆ INT1_gt

◆ INT1_in

◆ INT1_le

◆ INT1_lsh

◆ INT1_lt

◆ INT1_MAX_acc

Datum taco::INT1_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_MIN_acc

Datum taco::INT1_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_MINMAX_finalize

Datum taco::INT1_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_mod

◆ INT1_mul

◆ INT1_ne

◆ INT1_neg

◆ INT1_not

◆ INT1_or

◆ INT1_out

◆ INT1_rsh

◆ INT1_sub

◆ INT1_SUM_acc

Datum taco::INT1_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_DOUBLE

Datum taco::INT1_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_FLOAT

Datum taco::INT1_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_INT2

Datum taco::INT1_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_INT4

Datum taco::INT1_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_INT8

Datum taco::INT1_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_UINT1

Datum taco::INT1_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_UINT2

Datum taco::INT1_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_UINT4

Datum taco::INT1_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_UINT8

Datum taco::INT1_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_to_VARCHAR

Datum taco::INT1_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT1_xor

◆ INT2_add

◆ INT2_and

◆ INT2_AVG_acc

Datum taco::INT2_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_div

◆ INT2_eq

◆ INT2_ge

◆ INT2_gt

◆ INT2_in

◆ INT2_le

◆ INT2_lsh

◆ INT2_lt

◆ INT2_MAX_acc

Datum taco::INT2_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_MIN_acc

Datum taco::INT2_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_MINMAX_finalize

Datum taco::INT2_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_mod

◆ INT2_mul

◆ INT2_ne

◆ INT2_neg

◆ INT2_not

◆ INT2_or

◆ INT2_out

◆ INT2_rsh

◆ INT2_sub

◆ INT2_SUM_acc

Datum taco::INT2_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_DOUBLE

Datum taco::INT2_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_FLOAT

Datum taco::INT2_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_INT1

Datum taco::INT2_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_INT4

Datum taco::INT2_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_INT8

Datum taco::INT2_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_UINT1

Datum taco::INT2_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_UINT2

Datum taco::INT2_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_UINT4

Datum taco::INT2_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_UINT8

Datum taco::INT2_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_to_VARCHAR

Datum taco::INT2_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT2_xor

◆ INT4_add

◆ INT4_and

◆ INT4_AVG_acc

Datum taco::INT4_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_div

◆ INT4_eq

◆ INT4_ge

◆ INT4_gt

◆ INT4_in

◆ INT4_le

◆ INT4_lsh

◆ INT4_lt

◆ INT4_MAX_acc

Datum taco::INT4_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_MIN_acc

Datum taco::INT4_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_MINMAX_finalize

Datum taco::INT4_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_mod

◆ INT4_mul

◆ INT4_ne

◆ INT4_neg

◆ INT4_not

◆ INT4_or

◆ INT4_out

◆ INT4_rsh

◆ INT4_sub

◆ INT4_SUM_acc

Datum taco::INT4_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_DOUBLE

Datum taco::INT4_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_FLOAT

Datum taco::INT4_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_INT1

Datum taco::INT4_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_INT2

Datum taco::INT4_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_INT8

Datum taco::INT4_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_UINT1

Datum taco::INT4_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_UINT2

Datum taco::INT4_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_UINT4

Datum taco::INT4_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_UINT8

Datum taco::INT4_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_to_VARCHAR

Datum taco::INT4_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT4_xor

◆ INT8_add

◆ INT8_and

◆ INT8_AVG_acc

Datum taco::INT8_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_div

◆ INT8_eq

◆ INT8_ge

◆ INT8_gt

◆ INT8_in

◆ INT8_le

◆ INT8_lsh

◆ INT8_lt

◆ INT8_MAX_acc

Datum taco::INT8_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_MIN_acc

Datum taco::INT8_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_MINMAX_finalize

Datum taco::INT8_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_mod

◆ INT8_mul

◆ INT8_ne

◆ INT8_neg

◆ INT8_not

◆ INT8_or

◆ INT8_out

◆ INT8_rsh

◆ INT8_sub

◆ INT8_SUM_acc

Datum taco::INT8_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_DOUBLE

Datum taco::INT8_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_FLOAT

Datum taco::INT8_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_INT1

Datum taco::INT8_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_INT2

Datum taco::INT8_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_INT4

Datum taco::INT8_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_UINT1

Datum taco::INT8_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_UINT2

Datum taco::INT8_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_UINT4

Datum taco::INT8_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_UINT8

Datum taco::INT8_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_to_VARCHAR

Datum taco::INT8_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INT8_xor

◆ int_SUM_finalize

Datum taco::int_SUM_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ INVALID_BUFID

constexpr BufferId taco::INVALID_BUFID = ~(BufferId) 0
constexpr

◆ INVALID_FID

constexpr FileId taco::INVALID_FID = 0
constexpr

◆ INVALID_PID

constexpr PageNumber taco::INVALID_PID = 0
constexpr

The invalid page number.

◆ INVALID_SID

constexpr SlotId taco::INVALID_SID = 0
constexpr

The invalid slot ID.

◆ InvalidFieldId

constexpr FieldId taco::InvalidFieldId = 0x7fff
constexpr

◆ InvalidOid

constexpr Oid taco::InvalidOid = 0
constexpr

◆ kError

constexpr LogSeverity taco::kError = LogSeverity::kError
constexpr

◆ kFatal

constexpr LogSeverity taco::kFatal = LogSeverity::kFatal
constexpr

◆ kInfo

constexpr LogSeverity taco::kInfo = LogSeverity::kInfo
constexpr

◆ kWarning

constexpr LogSeverity taco::kWarning = LogSeverity::kWarning
constexpr

◆ log_msg_buf_size

constexpr const size_t taco::log_msg_buf_size = 8192
constexpr

◆ log_msg_max_len

constexpr const size_t taco::log_msg_max_len = log_msg_buf_size - 12
constexpr

◆ LogTable256

constexpr char taco::LogTable256[256]
staticconstexpr
Initial value:
= {
#define LogTableLT(n)
0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 ,
6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 ,
7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 ,
7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7
}

◆ max_sys_oid

constexpr Oid taco::max_sys_oid = 19999
constexpr

This is an arbitrarily chosen large number that all systable entries in the init file should have an OID <= max_sys_oid.

◆ MaxFieldOffset

constexpr FieldOffset taco::MaxFieldOffset = (1 << FieldOffsetBits) - 1
constexpr

◆ MaxFileSize

constexpr size_t taco::MaxFileSize = (size_t) 64 * 1024 * 1024 * 1024
constexpr

Maximum size of a single data file.

◆ MaxNumDataFiles

constexpr uint64_t taco::MaxNumDataFiles
constexpr
Initial value:
=
((((uint64_t) MaxPageNumber) + 1) + MaxNumPagesPerFile - 1) /
constexpr PageNumber MaxPageNumber
The maximum valid page number.
Definition: tdb_base.h:247
constexpr PageNumber MaxNumPagesPerFile
Maximum number of pages in a single data file.
Definition: FileManager_private.h:28

Maximum number of data files.

◆ MaxNumPagesPerFile

constexpr PageNumber taco::MaxNumPagesPerFile = MaxFileSize / PAGE_SIZE
constexpr

Maximum number of pages in a single data file.

◆ MaxNumRegularFieldId

constexpr FieldId taco::MaxNumRegularFieldId = 0x7fff
constexpr

◆ MaxOid

constexpr Oid taco::MaxOid = std::numeric_limits<Oid>::max() - 1
constexpr

The largest valid Oid.

We make sure at least one Oid larger than this is still a number that may be represented by the underlying type (so that MaxOid+ 1 > MaxOid is always true).

◆ MaxPageNumber

constexpr PageNumber taco::MaxPageNumber
constexpr
Initial value:
=
(RESERVED_PID == ((((uint64_t) 1) << PageNumberBits) - 1))
? (RESERVED_PID - 2) : ((((uint64_t) 1) << PageNumberBits) - 1)
constexpr int PageNumberBits
Definition: tdb_base.h:227
constexpr PageNumber RESERVED_PID
An invalid page number reserved for file manager internal use.
Definition: tdb_base.h:242

The maximum valid page number.

◆ MaxRegularFileId

constexpr FileId taco::MaxRegularFileId = (((FileId) 1) << (FileIdBits + 1)) - 1
constexpr

◆ MaxSlotId

constexpr SlotId taco::MaxSlotId = (~(SlotId) 0) - 1
constexpr

The maximum valid slot ID.

Makes sure adding one won't overflow.

◆ MINMAX_init

Datum taco::MINMAX_init(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ MinRegularFileId

constexpr FileId taco::MinRegularFileId = 1
constexpr

◆ MinSlotId

constexpr SlotId taco::MinSlotId = 1
constexpr

The minimum valid slot ID.

◆ NEW_REGULAR_FID

constexpr FileId taco::NEW_REGULAR_FID = INVALID_FID
constexpr

◆ NEW_TMP_FID

constexpr FileId taco::NEW_TMP_FID = TMP_FILEID_MASK
constexpr

◆ node_tag_base_

constexpr NodeTag taco::node_tag_base_[num_node_tags]
staticconstexpr
Initial value:
= {
NodeTag::T_InvalidTag,
}

◆ node_tag_group_base_offset

constexpr const uint16_t taco::node_tag_group_base_offset[16]
staticconstexpr
Initial value:
= {
0,
}
static constexpr const uint16_t node_tag_group_count[16]
Definition: NodeTag.cpp:23
static constexpr const uint16_t node_tag_group_base_offset[16]
Definition: NodeTag.cpp:31

◆ node_tag_group_count

constexpr const uint16_t taco::node_tag_group_count[16]
staticconstexpr
Initial value:
= {
1
}

◆ node_tag_name_

const char* const taco::node_tag_name_[num_node_tags]
static
Initial value:
= {
"TreeNode",
}

◆ num_bootstrap_columns

constexpr const int taco::num_bootstrap_columns = 26
constexpr

◆ num_bootstrap_functions

constexpr const int taco::num_bootstrap_functions = 14
constexpr

◆ num_bootstrap_tables

constexpr const int taco::num_bootstrap_tables = 4
constexpr

◆ num_bootstrap_types

constexpr const int taco::num_bootstrap_types = 7
constexpr

◆ num_builtin_funcs

constexpr uint32_t taco::num_builtin_funcs = 420
constexpr

◆ num_node_tags

constexpr const uint16_t taco::num_node_tags
staticconstexpr

◆ OID_eq

◆ OID_ge

◆ OID_gt

◆ OID_in

◆ OID_le

◆ OID_lt

◆ OID_ne

◆ OID_out

◆ PageGroupSize

constexpr PageNumber taco::PageGroupSize = 64
constexpr

Size of allocation in pages.

◆ PageNumberBits

constexpr int taco::PageNumberBits = 32
constexpr

◆ PENDING_CREATION_PID

constexpr PageNumber taco::PENDING_CREATION_PID = RESERVED_PID
constexpr

◆ primitive_SUM_init

Datum taco::primitive_SUM_init(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ RESERVED_PID

constexpr PageNumber taco::RESERVED_PID = ~(PageNumber) 0
constexpr

An invalid page number reserved for file manager internal use.

It is never visible outside the file manager. INVALID_PID and all valid page numbers are smaller than RESERVED_PID.

◆ s_db_instance

Database taco::s_db_instance
static

◆ s_init_global_called

bool taco::s_init_global_called = false
static

◆ s_num_operands

FieldId taco::s_num_operands[]
static
Initial value:
= {
0,
1,
1,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
2,
2,
1,
2,
2,
2,
1,
}

◆ s_optype_lookup_table

absl::flat_hash_map<std::string, OpType> taco::s_optype_lookup_table
static

◆ s_optype_symbols

const char* taco::s_optype_symbols[]
static
Initial value:
= {
"#invalid",
"#implicit cast",
"#cast",
"+",
"-",
"*",
"/",
"%",
"<<",
">>",
"=",
"<>",
"<",
"<=",
">",
">=",
"NOT",
"AND",
"OR",
"~",
"|",
"&",
"^",
"-",
}

◆ s_volatile_tree_base

absl::flat_hash_map<Oid, std::shared_ptr<VolatileTreeBase> > taco::s_volatile_tree_base
static

◆ TMP_FILEID_MASK

constexpr FileId taco::TMP_FILEID_MASK = ((FileId) 1) << 30
constexpr

◆ UINT1_add

◆ UINT1_and

◆ UINT1_AVG_acc

Datum taco::UINT1_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_div

◆ UINT1_eq

◆ UINT1_ge

◆ UINT1_gt

◆ UINT1_in

◆ UINT1_le

◆ UINT1_lsh

◆ UINT1_lt

◆ UINT1_MAX_acc

Datum taco::UINT1_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_MIN_acc

Datum taco::UINT1_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_MINMAX_finalize

Datum taco::UINT1_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_mod

◆ UINT1_mul

◆ UINT1_ne

◆ UINT1_neg

◆ UINT1_not

◆ UINT1_or

◆ UINT1_out

◆ UINT1_rsh

◆ UINT1_sub

◆ UINT1_SUM_acc

Datum taco::UINT1_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_DOUBLE

Datum taco::UINT1_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_FLOAT

Datum taco::UINT1_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_INT1

Datum taco::UINT1_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_INT2

Datum taco::UINT1_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_INT4

Datum taco::UINT1_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_INT8

Datum taco::UINT1_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_UINT2

Datum taco::UINT1_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_UINT4

Datum taco::UINT1_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_UINT8

Datum taco::UINT1_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_to_VARCHAR

Datum taco::UINT1_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT1_xor

◆ UINT2_add

◆ UINT2_and

◆ UINT2_AVG_acc

Datum taco::UINT2_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_div

◆ UINT2_eq

◆ UINT2_ge

◆ UINT2_gt

◆ UINT2_in

◆ UINT2_le

◆ UINT2_lsh

◆ UINT2_lt

◆ UINT2_MAX_acc

Datum taco::UINT2_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_MIN_acc

Datum taco::UINT2_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_MINMAX_finalize

Datum taco::UINT2_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_mod

◆ UINT2_mul

◆ UINT2_ne

◆ UINT2_neg

◆ UINT2_not

◆ UINT2_or

◆ UINT2_out

◆ UINT2_rsh

◆ UINT2_sub

◆ UINT2_SUM_acc

Datum taco::UINT2_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_DOUBLE

Datum taco::UINT2_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_FLOAT

Datum taco::UINT2_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_INT1

Datum taco::UINT2_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_INT2

Datum taco::UINT2_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_INT4

Datum taco::UINT2_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_INT8

Datum taco::UINT2_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_UINT1

Datum taco::UINT2_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_UINT4

Datum taco::UINT2_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_UINT8

Datum taco::UINT2_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_to_VARCHAR

Datum taco::UINT2_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT2_xor

◆ UINT4_add

◆ UINT4_and

◆ UINT4_AVG_acc

Datum taco::UINT4_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_div

◆ UINT4_eq

◆ UINT4_ge

◆ UINT4_gt

◆ UINT4_in

◆ UINT4_le

◆ UINT4_lsh

◆ UINT4_lt

◆ UINT4_MAX_acc

Datum taco::UINT4_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_MIN_acc

Datum taco::UINT4_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_MINMAX_finalize

Datum taco::UINT4_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_mod

◆ UINT4_mul

◆ UINT4_ne

◆ UINT4_neg

◆ UINT4_not

◆ UINT4_or

◆ UINT4_out

◆ UINT4_rsh

◆ UINT4_sub

◆ UINT4_SUM_acc

Datum taco::UINT4_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_DOUBLE

Datum taco::UINT4_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_FLOAT

Datum taco::UINT4_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_INT1

Datum taco::UINT4_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_INT2

Datum taco::UINT4_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_INT4

Datum taco::UINT4_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_INT8

Datum taco::UINT4_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_UINT1

Datum taco::UINT4_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_UINT2

Datum taco::UINT4_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_UINT8

Datum taco::UINT4_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_to_VARCHAR

Datum taco::UINT4_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT4_xor

◆ UINT8_add

◆ UINT8_and

◆ UINT8_AVG_acc

Datum taco::UINT8_AVG_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_div

◆ UINT8_eq

◆ UINT8_ge

◆ UINT8_gt

◆ UINT8_in

◆ UINT8_le

◆ UINT8_lsh

◆ UINT8_lt

◆ UINT8_MAX_acc

Datum taco::UINT8_MAX_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_MIN_acc

Datum taco::UINT8_MIN_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_MINMAX_finalize

Datum taco::UINT8_MINMAX_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_mod

◆ UINT8_mul

◆ UINT8_ne

◆ UINT8_neg

◆ UINT8_not

◆ UINT8_or

◆ UINT8_out

◆ UINT8_rsh

◆ UINT8_sub

◆ UINT8_SUM_acc

Datum taco::UINT8_SUM_acc(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_DOUBLE

Datum taco::UINT8_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_FLOAT

Datum taco::UINT8_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_INT1

Datum taco::UINT8_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_INT2

Datum taco::UINT8_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_INT4

Datum taco::UINT8_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_INT8

Datum taco::UINT8_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_UINT1

Datum taco::UINT8_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_UINT2

Datum taco::UINT8_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_UINT4

Datum taco::UINT8_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_to_VARCHAR

Datum taco::UINT8_to_VARCHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ UINT8_xor

◆ uint_SUM_finalize

Datum taco::uint_SUM_finalize(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR___STRING_eq

Datum taco::VARCHAR___STRING_eq(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR___STRING_eq_ci

Datum taco::VARCHAR___STRING_eq_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_concat

Datum taco::VARCHAR_concat(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_eq

Datum taco::VARCHAR_eq(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_eq_ci

Datum taco::VARCHAR_eq_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_ge

Datum taco::VARCHAR_ge(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_ge_ci

Datum taco::VARCHAR_ge_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_gt

Datum taco::VARCHAR_gt(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_gt_ci

Datum taco::VARCHAR_gt_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_in

Datum taco::VARCHAR_in(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_le

Datum taco::VARCHAR_le(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_le_ci

Datum taco::VARCHAR_le_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_length

Datum taco::VARCHAR_length(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_lt

Datum taco::VARCHAR_lt(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_lt_ci

Datum taco::VARCHAR_lt_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_ne

Datum taco::VARCHAR_ne(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_ne_ci

Datum taco::VARCHAR_ne_ci(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_out

Datum taco::VARCHAR_out(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_CHAR

Datum taco::VARCHAR_to_CHAR(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_DOUBLE

Datum taco::VARCHAR_to_DOUBLE(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_FLOAT

Datum taco::VARCHAR_to_FLOAT(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_INT1

Datum taco::VARCHAR_to_INT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_INT2

Datum taco::VARCHAR_to_INT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_INT4

Datum taco::VARCHAR_to_INT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_INT8

Datum taco::VARCHAR_to_INT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_UINT1

Datum taco::VARCHAR_to_UINT1(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_UINT2

Datum taco::VARCHAR_to_UINT2(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_UINT4

Datum taco::VARCHAR_to_UINT4(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VARCHAR_to_UINT8

Datum taco::VARCHAR_to_UINT8(FMGR_FUNCTION_ARGS) ( FMGR_FUNCTION_ARGS  )

◆ VarlenDataPageHeaderSize

constexpr size_t taco::VarlenDataPageHeaderSize
staticconstexpr
Initial value:
=
MAXALIGN(sizeof(VarlenDataPageHeader))

◆ VTHDR_BUFIDX_MASK

constexpr const uint64_t taco::VTHDR_BUFIDX_MASK = (((uint64_t) 1) << 32) - 1
staticconstexpr

◆ VTHDR_ISREC_MASK

constexpr const uint64_t taco::VTHDR_ISREC_MASK = ((uint64_t) 1) << 32
staticconstexpr

◆ WAL_FILEID_MASK

constexpr FileId taco::WAL_FILEID_MASK = ((FileId) 1) << 31
constexpr