ibis::part Class Reference
[FastBit IBIS main interface objects.]

The class ibis::part represents a partition of a relational table. More...

#include <part.h>

Inherited by ibis::bord::part [virtual].

List of all members.

Public Types

typedef std::map< const char
*, column *, lessi
columnList
enum  TABLE_STATE {
  UNKNOWN_STATE = 0, STABLE_STATE, RECEIVING_STATE, PRETRANSITION_STATE,
  TRANSITION_STATE, POSTTRANSITION_STATE
}

Public Member Functions

ibis::fileManager::ACCESS_PREFERENCE accessHint (const ibis::bitvector &mask, unsigned elemsize=4) const
 Evaluate the strategy to access a data file.
long append (const char *dir)
 Append data from dir.
void buildIndex (int nthr=1, const char *opt=0)
 Load and immediately unload indexes.
void combineNames (ibis::table::namesTypes &metalist) const
 Update the list of columns with information in this data partition.
long commit (const char *dir)
 Commit the append operation involving data from dir.
void computeMinMax ()
 Go through all the values to compute the min and max for each column.
long countHits (const ibis::qRange &cmp) const
 Count the number of hits for a single range condition.
const char * currentDataDir () const
 Return the name of the active data directory.
long deactivate (const char *conds)
 Mark all rows satisfying the specified conditions as inactive.
long deactivate (const std::vector< uint32_t > &rows)
 Mark the specified rows as inactive.
const char * description () const
 Return a text description of the partition.
void doBackup ()
 A function to start backing up the active dir.
template<typename E>
long doScan (const array_t< E > &varr, const ibis::qContinuousRange &cmp, const ibis::bitvector &mask, ibis::bitvector &hits) const
template<typename E>
long doScan (const array_t< E > &varr, const ibis::qRange &cmp, const ibis::bitvector &mask, ibis::bitvector &hits) const
 Locate the records that satisfy the range condition.
virtual long doScan (const ibis::compRange &cmp, const ibis::bitvector &mask, ibis::bitvector &hits, ibis::compRange::barrel *bar=0) const
 Locate the records that have mark value 1 and satisfy the complex range conditions.
virtual long doScan (const ibis::compRange &cmp, ibis::bitvector &hits) const
 Locate the records that satisfy the complex range condition.
virtual long doScan (const ibis::qRange &cmp, const ibis::bitvector &mask, ibis::bitvector &hits) const
 Evalute the range condition on the records that are marked 1 in the mask.
virtual long doScan (const ibis::qRange &cmp, ibis::bitvector &hits) const
 Evaluate the range condition.
template<>
void equalWeightBins (const array_t< double > &vals, uint32_t nbins, array_t< double > &bounds)
 Explicit specialization for double arrays.
template<>
void equalWeightBins (const array_t< float > &vals, uint32_t nbins, array_t< float > &bounds)
 Explicit specialization for float arrays.
virtual double estimateCost (const ibis::qMultiString &cmp) const
virtual double estimateCost (const ibis::qString &cmp) const
virtual double estimateCost (const ibis::qDiscreteRange &cmp) const
virtual double estimateCost (const ibis::qContinuousRange &cmp) const
 Estimate the cost of evaluate the query expression.
virtual long estimateMatchAny (const ibis::qAnyAny &cmp, ibis::bitvector &low, ibis::bitvector &high) const
 Estimate a lower bound and an upper bound on the records that are hits.
virtual long estimateRange (const ibis::qDiscreteRange &cmp, ibis::bitvector &low, ibis::bitvector &high) const
 Estimate the discrete range condition.
virtual long estimateRange (const ibis::qContinuousRange &cmp, ibis::bitvector &low, ibis::bitvector &high) const
virtual long estimateRange (const ibis::qDiscreteRange &cmp) const
 Return an upper bound on the number of hits.
virtual long estimateRange (const ibis::qContinuousRange &cmp) const
 Return an upper bound on the number of hits.
int64_t evaluateJoin (const std::vector< const ibis::rangeJoin * > &cmp, const ibis::bitvector64 &trial, ibis::bitvector64 &result) const
 Check a set of pairs defined in trial.
int64_t evaluateJoin (const ibis::rangeJoin &cmp, const ibis::bitvector64 &trial, ibis::bitvector64 &result) const
 Evaluate all pairs in trial to determine whether they really satisfy the range join defined in cmp.
int64_t evaluateJoin (const std::vector< const ibis::rangeJoin * > &cmp, const ibis::bitvector &mask) const
int64_t evaluateJoin (const std::vector< const ibis::rangeJoin * > &cmp, const ibis::bitvector &mask, ibis::bitvector64 &pairs) const
 Evaluate a join defined with multiple (conjunctive) range join conditions.
int64_t evaluateJoin (const ibis::rangeJoin &cmp, const ibis::bitvector &mask) const
 Return only the number of pairs satisfying the join condition.
int64_t evaluateJoin (const ibis::rangeJoin &cmp, const ibis::bitvector &mask, const char *pairfile) const
 Return the number of pairs satisfying the join condition.
int64_t evaluateJoin (const ibis::rangeJoin &cmp, const ibis::bitvector &mask, ibis::bitvector64 &pairs) const
 Evaluate a self-join.
virtual long evaluateRange (const ibis::qDiscreteRange &cmp, const ibis::bitvector &mask, ibis::bitvector &res) const
virtual long evaluateRange (const ibis::qContinuousRange &cmp, const ibis::bitvector &mask, ibis::bitvector &res) const
long evaluateRIDSet (const ibis::RIDSet &, ibis::bitvector &) const
double getActualMax (const char *name) const
 The actual maximum value in the named column.
double getActualMin (const char *name) const
 The actual minimum value in the named column.
columngetColumn (uint32_t ind) const
 Returns the pointer to the ith column.
columngetColumn (const char *name) const
 Given a name, return the associated column.
double getColumnSum (const char *name) const
 Sum of all value in the named column.
infogetInfo () const
 Return descriptive information about the data partition.
const ibis::bitvectorgetMask () const
 Return a reference to the mask of active rows.
const std::vector< std::string > & getMeshDimensions () const
 Return the name of the dimensions corresponding to the vector returned from getMeshShape.
const std::vector< uint32_t > & getMeshShape () const
 In many scientific applications, data are defined on meshes.
const char * getMetaTag (const char *) const
 Return the value of the meta tag with the specified name.
array_t< rid_t > * getRIDs (const ibis::bitvector &mask) const
array_t< rid_t > * getRIDs () const
uint32_t getRowNumber (const rid_t &rid) const
 Return the row number of the row with specified RID.
TABLE_STATE getState () const
 Return the current state of data partition.
TABLE_STATE getStateNoLocking () const
virtual float getUndecidable (const ibis::qDiscreteRange &cmp, ibis::bitvector &iffy) const
 Discover the records that can not be decided using the index.
virtual float getUndecidable (const ibis::qContinuousRange &cmp, ibis::bitvector &iffy) const
 Discover the records that can not be decided using the index.
bool hasRIDs () const
void indexSpec (const char *)
 Replace existing index specification with a new one.
const char * indexSpec () const
 Return the current index specification.
void loadIndex (const char *opt=0) const
 Load indexes of all columns.
void logMessage (const char *event, const char *fmt,...) const
void logWarning (const char *event, const char *fmt,...) const
long lookforString (const ibis::qMultiString &cmp) const
long lookforString (const ibis::qString &cmp) const
 Return an upper bound of the number of records that have the exact string value.
long lookforString (const ibis::qMultiString &cmp, ibis::bitvector &low) const
 Determine the records that have the exact string values.
long lookforString (const ibis::qString &cmp, ibis::bitvector &low) const
 Find all records that has the exact string value.
virtual long matchAny (const ibis::qAnyAny &cmp, const ibis::bitvector &mask, ibis::bitvector &hits) const
 Perform exact match operation for an AnyAny query.
virtual long matchAny (const ibis::qAnyAny &cmp, ibis::bitvector &hits) const
bool matchMetaTags (const ibis::resource::vList &mtags) const
 Match multiple name-value pairs.
bool matchMetaTags (const std::vector< const char * > &mtags) const
 Match multiple name-value pairs against the internally stored meta tags.
bool matchNameValuePair (const char *name, const char *value) const
 Match a name-value pair in the meta tags.
std::string metaTags () const
 Return the list of meta tags as a single string.
const char * name () const
 Return the name of the partition.
size_t nColumns () const
 Return the number of attributes in the partition.
virtual long negativeScan (const ibis::qRange &cmp, const ibis::bitvector &mask, ibis::bitvector &hits) const
 Compute the records (marked 1 in the mask) that does not satisfy the range condition.
size_t nRows () const
 Return the number of rows.
 part (const ibis::resource::vList &mtags)
 Initialize a partition with given meta tags.
 part (const std::vector< const char * > &mtags)
 Initialize a partition with given meta tags.
 part (const char *adir, const char *bdir)
 Initialize a table from the named directories.
 part (const char *prefix=0)
 Initialize a data partition object.
void print (std::ostream &out) const
 Output a description of every column of the data partition.
long purgeInactive ()
 Purge all inactive rows from the partition.
void purgeIndexFiles () const
 Remove existing index files!
void queryTest (const char *pref, long *nerrors) const
void quickTest (const char *pref, long *nerrors) const
long reactivate (const char *conds)
 Make sure the rows satisfying the specified conditionis are active.
long reactivate (const std::vector< uint32_t > &rows)
 Make sure the specified rows are active.
long reorder (const ibis::table::stringList &names)
 Sort rows according the values of the columns specified in names.
long reorder ()
 Sort rows with the lowest cardinality attribute first.
long rollback ()
 Rollback the append operation.
array_t< double > * selectDoubles (const char *name, const ibis::bitvector &mask) const
array_t< float > * selectFloats (const char *name, const ibis::bitvector &mask) const
array_t< int32_t > * selectInts (const char *name, const ibis::bitvector &mask) const
array_t< int64_t > * selectLongs (const char *name, const ibis::bitvector &mask) const
array_t< uint32_t > * selectUInts (const char *name, const ibis::bitvector &mask) const
virtual long selfTest (int nth=1, const char *pref=0) const
 Perform predefined set of tests and return the number of failures.
void setMeshShape (const char *shape)
 Digest the mesh shape stored in the string.
time_t timestamp () const
 Return the time stamp on the partition.
void unloadIndex () const
 Unload indexes of all columns.
void updateTDC () const
 Write the TDC file to record the changes to the partition.
virtual ~part ()
 Destuctor.
long get1DDistribution (const char *constraints, const char *cname, uint32_t nbin, std::vector< double > &bounds, std::vector< uint32_t > &counts) const
 Compute conditional 1D histogram with adaptive bins.
long get1DDistribution (const char *cname, uint32_t nbin, std::vector< double > &bounds, std::vector< uint32_t > &counts) const
 Compute 1D histogram with adaptive bins.
long get1DDistribution (const char *constraints, const char *cname, double begin, double end, double stride, std::vector< uint32_t > &counts) const
 Count the number of records falling in the regular bins defined by the begin:end:stride triplet.
long get2DDistribution (const char *constraints, const char *name1, const char *name2, uint32_t nb1, uint32_t nb2, std::vector< double > &bounds1, std::vector< double > &bounds2, std::vector< uint32_t > &counts) const
 Compute conditional 2D histogram with adaptive bins.
long get2DDistribution (const char *cname1, const char *cname2, uint32_t nb1, uint32_t nb2, std::vector< double > &bounds1, std::vector< double > &bounds2, std::vector< uint32_t > &counts, const char *const option=0) const
 Compute 2D histogram with adaptive bins.
long get2DDistribution (const char *constraints, const char *cname1, double begin1, double end1, double stride1, const char *cname2, double begin2, double end2, double stride2, std::vector< uint32_t > &counts) const
 Compute conditional 2D histogram with regularly spaced bins.
long get3DDistribution (const char *constraints, const char *cname1, double begin1, double end1, double stride1, const char *cname2, double begin2, double end2, double stride2, const char *cname3, double begin3, double end3, double stride3, std::vector< uint32_t > &counts) const
 Compute conditional 3D histogram with regularly spaced bins.
long getCumulativeDistribution (const char *constraints, const char *name, uint32_t nbc, double *bounds, uint32_t *counts) const
 Compute the conditional distribution and return the distribution in the arrays provided.
long getCumulativeDistribution (const char *name, uint32_t nbc, double *bounds, uint32_t *counts) const
 This version of getCumulativeDistribution uses two user supplied arrays bounds and counts.
long getCumulativeDistribution (const char *constraints, const char *name, std::vector< double > &bounds, std::vector< uint32_t > &counts) const
 Compute the cumulative distribution of the variable named name under the specified constraints.
long getCumulativeDistribution (const char *name, std::vector< double > &bounds, std::vector< uint32_t > &counts) const
 Compute a cumulative distribution (a cumulative histogram).
long getDistribution (const char *name, const char *constraints, uint32_t nbc, double *bounds, uint32_t *counts) const
 Compute the conditional binned data distribution with the specified maximum number of bins.
long getDistribution (const char *name, uint32_t nbc, double *bounds, uint32_t *counts) const
 Compute the binned distribution with the specified maximum number of bins.
long getDistribution (const char *constraints, const char *name, std::vector< double > &bounds, std::vector< uint32_t > &counts) const
 Compute the conditional binned data distribution.
long getDistribution (const char *name, std::vector< double > &bounds, std::vector< uint32_t > &counts) const
 The array bounds defines the following bins:.
long getJointDistribution (const char *constraints, const char *name1, const char *name2, std::vector< double > &bounds1, std::vector< double > &bounds2, std::vector< uint32_t > &counts) const
 Compute the joint distribution of two variables.

Static Public Member Functions

static uint32_t countPages (const ibis::bitvector &mask, unsigned elemsize=4)
 Given a bitvector, compute the number of pages would be accessed.
static void genName (const ibis::resource::vList &mtags, std::string &name)
 Generate name for a partition based on the meta tags.
static void genName (const std::vector< const char * > &mtags, std::string &name)
 Generate name for a partition based on the meta tags.
static char * readMetaTags (const char *const dir)
 A class function to read the meta tags in the tdc file.

Protected Member Functions

long append1 (const char *dir)
 Perform append operation using only only one data directory.
long append2 (const char *dir)
 Perform append operation with two data directories.
long appendToBackup (const char *dir)
 Append data in dir to the partition in the backup directory.
int coarsenBins (const ibis::column &col, uint32_t nbin, std::vector< double > &bnds, std::vector< ibis::bitvector * > &btmp) const
 Produce a set of bitmaps corresponding to a set of coarse bins.
template<typename T1, typename T2>
long count2DBins (array_t< T1 > &vals1, const double &begin1, const double &end1, const double &stride1, array_t< T2 > &vals2, const double &begin2, const double &end2, const double &stride2, std::vector< uint32_t > &counts) const
 Count the number of values in 2D bins.
template<typename T1, typename T2, typename T3>
long count3DBins (const array_t< T1 > &vals1, const double &begin1, const double &end1, const double &stride1, const array_t< T2 > &vals2, const double &begin2, const double &end2, const double &stride2, const array_t< T3 > &vals3, const double &begin3, const double &end3, const double &stride3, std::vector< uint32_t > &counts) const
 Count the number of values in 3D bins.
long deactivate (const ibis::bitvector &rows)
 Mark the rows identified in rows as inactive.
void deriveBackupDirName ()
void digestMeshShape (const char *shape)
 Convert the string describing the shape into internal storage format.
template<typename T, typename F1, typename F2>
long doCompare (const array_t< T > &vals, F1 cmp1, F2 cmp2, const ibis::bitvector &mask, ibis::bitvector &hits) const
 The actual scan function.
template<typename T, typename F>
long doCompare (const array_t< T > &vals, F cmp, const ibis::bitvector &mask, ibis::bitvector &hits) const
 Accepts an externally passed comparison operator.
template<typename T>
long doCompare (const char *file, const ibis::bitvector &mask, ibis::bitvector &hits, const ibis::qRange &cmp) const
template<typename T>
long doCompare (const array_t< T > &array, const ibis::bitvector &mask, ibis::bitvector &hits, const ibis::qRange &cmp) const
template<typename T, typename F1, typename F2>
long doCompare0 (const array_t< T > &vals, F1 cmp1, F2 cmp2, const ibis::bitvector &mask, ibis::bitvector &hits) const
 This version uses uncompressed bitvector to store the scan results internally.
template<typename T, typename F>
long doCompare0 (const array_t< T > &vals, F cmp, const ibis::bitvector &mask, ibis::bitvector &hits) const
 This version uses an uncompressed bitvector to store the scan results internally.
template<typename T, typename F1, typename F2>
long doCount (const array_t< T > &vals, const ibis::bitvector &mask, F1 cmp1, F2 cmp2) const
template<typename T, typename F>
long doCount (const array_t< T > &vals, const ibis::bitvector &mask, F cmp) const
template<typename T>
long doCount (const array_t< T > &vals, const ibis::qRange &cmp, const ibis::bitvector &mask) const
template<typename T>
long doCount (const ibis::qRange &cmp) const
void extendMetaTags ()
void freeRIDs () const
 Remove the rids list from memory.
long get1DDistribution (const ibis::column &col, uint32_t nbin, std::vector< double > &bounds, std::vector< uint32_t > &counts) const
 Comptue 1D histogram from index.
long get2DDistributionA (const ibis::column &col1, const ibis::column &col2, uint32_t nb1, uint32_t nb2, std::vector< double > &bounds1, std::vector< double > &bounds2, std::vector< uint32_t > &counts) const
 Compute 2D histogram with adaptive bins from base data.
long get2DDistributionI (const ibis::column &col1, const ibis::column &col2, uint32_t nb1, uint32_t nb2, std::vector< double > &bounds1, std::vector< double > &bounds2, std::vector< uint32_t > &counts) const
 Compute 2D histogram from indexes.
long get2DDistributionU (const ibis::column &col1, const ibis::column &col2, uint32_t nb1, uint32_t nb2, std::vector< double > &bounds1, std::vector< double > &bounds2, std::vector< uint32_t > &counts) const
 Compute 2D histogram with uniform bins from base data.
void logError (const char *event, const char *fmt,...) const
 Write out a message with indication of severe error.
void makeBackupCopy ()
 Spawn another thread to copy the content of activeDir to backupDir.
template<typename T>
long negativeCompare (const char *file, const ibis::bitvector &mask, ibis::bitvector &hits, const ibis::qRange &cmp) const
template<typename T>
long negativeCompare (const array_t< T > &array, const ibis::bitvector &mask, ibis::bitvector &hits, const ibis::qRange &cmp) const
void numbersToBitvector (const std::vector< uint32_t > &, ibis::bitvector &) const
 Convert a set of numbers to an ibis::bitvector.
long old2DDistribution (const char *constraints, const char *name1, const char *name2, uint32_t nb1, uint32_t nb2, std::vector< double > &bounds1, std::vector< double > &bounds2, std::vector< uint32_t > &counts) const
 The old implementation that uses binary lookup.
long packCumulativeDistribution (const std::vector< double > &bounds, const std::vector< uint32_t > &counts, uint32_t nbc, double *bptr, uint32_t *cptr) const
 Pack a cumulative distribution stored in two std::vectors into two arrays provided by the caller.
long packDistribution (const std::vector< double > &bounds, const std::vector< uint32_t > &counts, uint32_t nbc, double *bptr, uint32_t *cptr) const
 Pack a binned distribution.
long reactivate (const ibis::bitvector &rows)
 Mark the rows identified in rows as active.
void readMeshShape (const char *const dir)
 Read shape of the mesh from tdc file.
void readRIDs () const
 Read RIDs from file 'rids'.
int readTDC (size_t &nrows, columnList &plist, const char *dir)
 Read TDC file.
template<typename T>
long reorderValues (const char *fname, const array_t< uint32_t > &indin, array_t< uint32_t > &indout, array_t< uint32_t > &starts)
 Write the named data file in a segmented sorted order.
void setMetaTags (const std::vector< const char * > &mts)
 Make a deep copy of the incoming name-value pairs.
void setMetaTags (const ibis::resource::vList &mts)
 Make a deep copy of the incoming name-value pairs.
void stringToBitvector (const char *, ibis::bitvector &) const
 Convert a set of range conditions to an ibis::bitvector.
long verifyBackupDir ()
void writeTDC (const uint32_t nrows, const columnList &plist, const char *dir) const
 Write TDC file.
template<typename T>
long writeValues (const char *fname, const array_t< uint32_t > &ind)
 Write the named data file with values in the given order.

Static Protected Member Functions

template<typename T1, typename T2>
static void adaptive2DBins (const array_t< T1 > vals1, const array_t< T2 > vals2, uint32_t nb1, uint32_t nb2, std::vector< double > &bounds1, std::vector< double > &bounds2, std::vector< uint32_t > &counts)
 Adaptive binning through initial uniform bins.
template<typename T>
static void adaptiveFloats (const array_t< T > &vals, const T vmin, const T vmax, uint32_t nbins, std::vector< double > &bounds, std::vector< uint32_t > &counts)
 The adaptive binning function for floats.
template<typename T>
static void adaptiveInts (const array_t< T > &vals, const T vmin, const T vmax, uint32_t nbins, std::vector< double > &bounds, std::vector< uint32_t > &counts)
 The adaptive binning function for integer values.
template<typename T>
static void equalWeightBins (const array_t< T > &vals, uint32_t nbins, array_t< T > &bounds)
template<typename T>
static void mapValues (const array_t< T > &vals, std::map< T, uint32_t > &hist)
template<typename E1, typename E2>
static void mapValues (array_t< E1 > &val1, array_t< E2 > &val2, uint32_t nb1, uint32_t nb2, array_t< E1 > &bnd1, array_t< E2 > &bnd2, std::vector< uint32_t > &cnts)
 The templated function to decide the bin boundaries and count the number of values fall in each bin.

Protected Attributes

char * activeDir
 The active data directory.
ibis::bitvector amask
 Active rows are maked 1.
char * backupDir
 The backup data directory.
std::vector< const column * > colorder
 An ordering of columns.
columnList columns
 List of the columns.
char * idxstr
 Index specification.
char * m_desc
 Free form description of the partition.
char * m_name
 Name of the data partition.
ibis::resource::vList metaList
 Meta tags as name-value pairs.
ibis::part::cleanermyCleaner
 The cleaner for the file manager.
size_t nEvents
 Number of events (rows) in the partition.
array_t< rid_t > * rids
 The object IDs (row id).
std::vector< std::string > shapeName
 Names of the dimensions.
std::vector< uint32_t > shapeSize
 Sizes of the dimensions.
TABLE_STATE state
time_t switchTime
 Time of last switch operation.

Friends

class advisoryLock
class cleaner
struct info
class mutexLock
class readLock
class writeLock

Classes

class  advisoryLock
 An non-blocking version of writeLock. More...
class  barrel
 To read a list of variables at the same time. More...
class  cleaner
 A cleaner to be used by the fileManager::unload function. More...
struct  indexBuilderPool
struct  info
 A simple class to describe an ibis::part object. More...
class  mutexLock
 Provide a mutual exclusion lock on an ibis::part object. More...
class  readLock
 Provide a read lock on an ibis::part. More...
struct  thrArg
class  vault
 To read variables in certain order. More...
class  writeLock
 Provide a write lock on an ibis::part. More...


Detailed Description

The class ibis::part represents a partition of a relational table.

The current implementation is designed to work with vertically partitioned data files. This class contains common information and operations on a partition.


Constructor & Destructor Documentation

ibis::part::part ( const char *  prefix = 0  )  [explicit]

Initialize a data partition object.

The default prefix (NULL) tells it to use names in global namespace of the resource list (ibis::gParameters).

Use ibis::gParameters to get the file names.

When a valid string is specified, it looks for data directory names under 'prefix.dataDir1=aaaa' and 'prefix.dataDir2=bbbb'.

ibis::part::part ( const char *  adir,
const char *  bdir 
)

Initialize a table from the named directories.

Construct a partition from the named directories.

Prefer to have full and complete path.

Originally, FastBit was designed to work with a pair of directories, adir and bdir. Normally, data is stored only in one directory, specify the directory as adir and leave bdir as null.

References activeDir, ibis::fileManager::addCleaner(), ibis::bitvector::adjustSize(), amask, backupDir, ibis::util::logger::buffer(), ibis::bitvector::cnt(), columns, ibis::fileManager::flushFile(), ibis::gParameters(), ibis::gVerbose, ibis::fileManager::instance(), ibis::resource::isStringTrue(), m_desc, m_name, myCleaner, nEvents, print(), ibis::bitvector::read(), readRIDs(), readTDC(), rids, ibis::bitvector::set(), ibis::bitvector::size(), switchTime, and ibis::bitvector::write().

ibis::part::part ( const std::vector< const char * > &  mtags  ) 

Initialize a partition with given meta tags.

The meta tags are specified as a list of name-value strings, where each string in one name-value pair.

References genName(), and setMetaTags().

ibis::part::part ( const ibis::resource::vList &  mtags  ) 

Initialize a partition with given meta tags.

The name-value pairs are specified in a structured form.

References genName(), and setMetaTags().


Member Function Documentation

template<typename T1, typename T2>
void ibis::part::adaptive2DBins ( const array_t< T1 >  vals1,
cons