A trivial class for a table with no columns. More...
#include <tab.h>
Classes | |
class | cursor |
Public Member Functions | |
virtual int | backup (const char *, const char *=0, const char *=0) const |
The backup function. It does nothing. | |
virtual int | buildIndex (const char *, const char *) |
The following functions deal with auxillary data for accelerating query processing, primarily for building indexes. More... | |
virtual int | buildIndexes (const char *) |
Create indexes for every column of the table. More... | |
virtual int | buildIndexes (const ibis::table::stringArray &) |
The following functions deal with auxillary data for accelerating query processing, primarily for building indexes. More... | |
virtual stringArray | columnNames () const |
virtual typeArray | columnTypes () const |
!< Return column names. | |
virtual ibis::table::cursor * | createCursor () const |
Create a cursor object to perform row-wise data access. | |
virtual void | describe (std::ostream &) const |
!< Return data types. More... | |
virtual int | dump (std::ostream &, const char *) const |
Print the values in ASCII form to the specified output stream. More... | |
virtual int | dump (std::ostream &, uint64_t, const char *) const |
Print the first nr rows. | |
virtual int | dump (std::ostream &, uint64_t, uint64_t, const char *) const |
Print nr rows starting with row offset. More... | |
virtual void | dumpNames (std::ostream &, const char *) const |
Print all column names on one line. | |
virtual void | estimate (const char *cond, uint64_t &nmin, uint64_t &nmax) const |
Estimate the number of rows satisfying the selection conditions. More... | |
virtual void | estimate (const ibis::qExpr *cond, uint64_t &nmin, uint64_t &nmax) const |
Estimate the number of rows satisfying the selection conditions. More... | |
virtual int64_t | getColumnAsBytes (const char *, char *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsDoubles (const char *, double *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsDoubles (const char *, std::vector< double > &, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsFloats (const char *, float *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsInts (const char *, int32_t *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsLongs (const char *, int64_t *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsOpaques (const char *, std::vector< ibis::opaque > &, uint64_t=0, uint64_t=0) const |
Retrieve the blobs as ibis::opaque objects. More... | |
virtual int64_t | getColumnAsShorts (const char *, int16_t *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsStrings (const char *, std::vector< std::string > &, uint64_t=0, uint64_t=0) const |
Retrieve the null-terminated strings as a vector of std::string objects. More... | |
virtual int64_t | getColumnAsUBytes (const char *, unsigned char *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsUInts (const char *, uint32_t *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsULongs (const char *, uint64_t *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual int64_t | getColumnAsUShorts (const char *, uint16_t *, uint64_t=0, uint64_t=0) const |
Retrieve all values of the named column. More... | |
virtual double | getColumnMax (const char *) const |
Compute the maximum of all valid values in the name column. More... | |
virtual double | getColumnMin (const char *) const |
Compute the minimum of all valid values in the name column. More... | |
virtual long | getHistogram (const char *, const char *, double, double, double, std::vector< uint32_t > &) const |
virtual long | getHistogram2D (const char *, const char *, double, double, double, const char *, double, double, double, std::vector< uint32_t > &) const |
Compute a two-dimension histogram on columns cname1 and cname2 . More... | |
virtual long | getHistogram3D (const char *, const char *, double, double, double, const char *, double, double, double, const char *, double, double, double, std::vector< uint32_t > &) const |
Compute a three-dimensional histogram on the named columns. More... | |
virtual table * | groupby (const stringArray &) const |
Perform aggregate functions on the current table. More... | |
virtual table * | groupby (const char *) const |
Perform a group-by operation. More... | |
virtual const char * | indexSpec (const char *) const |
Retrieve the current indexing option. More... | |
virtual void | indexSpec (const char *, const char *) |
Replace the current indexing option. More... | |
virtual uint32_t | nColumns () const |
The number of columns in this table. | |
virtual uint64_t | nRows () const |
The number of rows in this table. | |
virtual void | orderby (const stringArray &, const std::vector< bool > &) |
virtual void | orderby (const stringArray &) |
Reorder the rows. More... | |
virtual void | orderby (const char *) |
Reorder the rows. The column names are separated by commas. | |
virtual void | reverseRows () |
Reverse the order of the rows. | |
virtual table * | select (const char *, const char *) const |
Given a set of column names and a set of selection conditions, compute another table that represents the selected values. More... | |
tabula (const char *na, const char *de, uint64_t nr) | |
tabula (uint64_t nr=0) | |
Public Member Functions inherited from ibis::table | |
virtual int | addPartition (const char *) |
Add a data partition defined in the named directory. More... | |
virtual const char * | description () const |
Free text description. May return a null pointer. | |
virtual int | dropPartition (const char *) |
Remove the named data partition from this data table. More... | |
virtual int | getPartitions (ibis::constPartList &) const |
Retrieve the list of partitions. | |
virtual const char * | name () const |
Name of the table. More... | |
virtual table * | select (const char *sel, const ibis::qExpr *cond) const |
Process the selection conditions and generate another table to hold the answer. More... | |
virtual | ~table () |
Destructor. | |
virtual int | mergeCategories (const stringArray &) |
Merge the dictionaries of categorical value from different data partitions. More... | |
Additional Inherited Members | |
Public Types inherited from ibis::table | |
typedef ibis::array_t< void * > | bufferArray |
A list to hold the in-memory buffers. More... | |
typedef std::map< const char *, ibis::TYPE_T, ibis::lessi > | namesTypes |
An associative array of names and types. | |
typedef ibis::array_t< const char * > | stringArray |
A list of strings. More... | |
typedef std::vector< const char * > | stringVector |
typedef ibis::array_t< ibis::TYPE_T > | typeArray |
A list of data types. | |
Static Public Member Functions inherited from ibis::table | |
static void * | allocateBuffer (ibis::TYPE_T, size_t) |
Allocate a buffer of the specified type and size. | |
static int64_t | computeHits (const ibis::constPartList &parts, const char *cond) |
Compute the number of rows satisfying the specified conditions. More... | |
static int64_t | computeHits (const ibis::constPartList &parts, const ibis::qExpr *cond) |
Compute the number of rows satisfying the specified query expression. More... | |
static void | consecrateName (char *) |
Remove unallowed characters from the given string to produce a valid column name. More... | |
static ibis::table * | create (ibis::part &) |
Create a simple of container of a partition. More... | |
static ibis::table * | create (const ibis::partList &) |
Create a container of externally managed data partitions. More... | |
static ibis::table * | create (const char *dir) |
Create a table object from the specified data directory. More... | |
static ibis::table * | create (const char *dir1, const char *dir2) |
Create a table object from a pair of data directories. More... | |
static void | freeBuffer (void *buffer, ibis::TYPE_T type) |
Freeing a buffer for storing in-memory values. More... | |
static void | freeBuffers (bufferArray &, typeArray &) |
Freeing a list of buffers. More... | |
static bool | isValidName (const char *) |
Is the given string a valid FastBit name for a data column? | |
static void | parseNames (char *in, stringVector &out) |
Parse the incoming string into a set of names. More... | |
static void | parseNames (char *in, stringArray &out) |
Parse the incoming string into a set of names. More... | |
static void | parseOrderby (char *in, stringArray &out, std::vector< bool > &direc) |
Parse the incoming string as an order-by clause. More... | |
static table * | select (const ibis::constPartList &parts, const char *sel, const char *cond) |
Perform the select operation on a list of data partitions. More... | |
static table * | select (const ibis::constPartList &parts, const char *sel, const ibis::qExpr *cond) |
Perform select operation using a user-supplied query expression. More... | |
Protected Member Functions inherited from ibis::table | |
table () | |
!< Description of the table. More... | |
table (const char *na, const char *de) | |
Constructor. Use the user-supplied name and description. | |
Protected Attributes inherited from ibis::table | |
std::string | desc_ |
!< Name of the table. | |
std::string | name_ |
A trivial class for a table with no columns.
This type of table is generated when the select clause is blank or not specified. It is also used to represent an empty table with zero rows.
|
inlinevirtual |
The following functions deal with auxillary data for accelerating query processing, primarily for building indexes.
Create the index for the named column. The existing index will be replaced. If an indexing option is not specified, it will use the internally recorded option for the named column or the table containing the column.
Implements ibis::table.
|
inlinevirtual |
Create indexes for every column of the table.
Existing indexes will be replaced. If an indexing option is not specified, the internally recorded options will be used.
Implements ibis::table.
|
inlinevirtual |
The following functions deal with auxillary data for accelerating query processing, primarily for building indexes.
Create the index for the named column. The existing index will be replaced. If an indexing option is not specified, it will use the internally recorded option for the named column or the table containing the column.
Implements ibis::table.
|
inlinevirtual |
!< Return data types.
Print a description of the table to the specified output stream.
Implements ibis::table.
|
inlinevirtual |
Print the values in ASCII form to the specified output stream.
The default delimiter is coma (","), which produces Comma-Separated-Values (CSV).
Implements ibis::table.
|
inlinevirtual |
Print nr rows starting with row offset.
Note that the row number starts with 0, i.e., the first row is row 0.
Implements ibis::table.
|
inlinevirtual |
Estimate the number of rows satisfying the selection conditions.
The number of rows is between [nmin
, nmax
] (inclusive).
Implements ibis::table.
|
inlinevirtual |
Estimate the number of rows satisfying the selection conditions.
The number of rows is between [nmin
, nmax
] (inclusive).
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve the blobs as ibis::opaque objects.
Only work on the column type BLOB.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve the null-terminated strings as a vector of std::string objects.
Both ibis::CATEGORY and ibis::TEXT types can be retrieved using this function.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Retrieve all values of the named column.
The member functions of this class only support access to one column at a time. Use table::cursor
class for row-wise accesses.
The arguments begin and end are given in row numbers starting from 0. If begin < end, then rows begin till end-1 are packed into the output array. If 0 == end (i.e., leaving end as the default value), then the values from begin till end of the table is packed into the output array. The default values where both begin and end are 0 define a range covering all rows of the table.
These functions return the number of elements copied upon successful completion, otherwise they return a negative number to indicate failure.
Implements ibis::table.
|
inlinevirtual |
Compute the maximum of all valid values in the name column.
In case of error, such as an invalid column name or an empty table, this function will return FASTBIT_DOUBLE_NULL or -DBL_MAX to ensure that the following test fails getColumnMin <= getColumnMax.
Implements ibis::table.
|
inlinevirtual |
Compute the minimum of all valid values in the name column.
In case of error, such as an invalid column name or an empty table, this function will return FASTBIT_DOUBLE_NULL or DBL_MAX to ensure that the following test fails getColumnMin <= getColumnMax.
Implements ibis::table.
|
inlinevirtual |
Compute the histogram of the named column. This version uses the user specified bins:
A record is placed in bin
where the first bin is bin 0. The total number of bins is
stride
is considered as an error. end
is less than begin
, an empty array counts
is returned along with return value 0. Implements ibis::table.
|
inlinevirtual |
Compute a two-dimension histogram on columns cname1
and cname2
.
The bins along each dimension are defined the same way as in function getHistogram
. The array counts
stores the two-dimensional bins with the first dimension as the slow varying dimension following C convention for ordering multi-dimensional arrays.
Implements ibis::table.
|
inlinevirtual |
Compute a three-dimensional histogram on the named columns.
The triplets <begin, end, stride> are used the same ways in getHistogram
and getHistogram2D
. The three dimensional bins are linearized in counts
with the first being the slowest varying dimension and the third being the fastest varying dimension following the C convention for ordering multi-dimensional arrays.
Implements ibis::table.
|
inlinevirtual |
Perform aggregate functions on the current table.
It produces a new table. The list of strings passed to this function are interpreted as a set of names followed by a set of functions. Currently, only functions COUNT, AVG, MIN, MAX, SUM, VARPOP, VARSAMP, STDPOP, STDSAMP and DISTINCT are supported, and the functions can only accept a column name as arguments.
Implements ibis::table.
|
inlinevirtual |
Perform a group-by operation.
The column names and operations are separated by commas.
Reimplemented from ibis::table.
|
inlinevirtual |
Retrieve the current indexing option.
If no column name is specified, it retrieve the indexing option for the table.
Implements ibis::table.
|
inlinevirtual |
Replace the current indexing option.
If no column name is specified, it resets the indexing option for the table.
Implements ibis::table.
|
inlinevirtual |
Reorder the rows.
Sort the rows in ascending order of the columns specified in the list of column names. This function is not designated const
even though it does not change the content in SQL logic, but it may change internal representations.
Implements ibis::table.
|
inlinevirtual |
Given a set of column names and a set of selection conditions, compute another table that represents the selected values.
Implements ibis::table.