blob: e11f2439bed93867bc614f67c4a032a062d069c8 [file] [log] [blame]
#if !adc_h
#define adc_h 1
/* For checking of L2-cache performance influence */
/*#define IN_CORE_*/
/*#define VIEW_FILE_OUTPUT*/ /* it can be used with IN_CORE only */
/* Optimizations: prefixed views and share-sorted views */
/*#define OPTIMIZATION*/
#ifdef WINNT
#ifndef HAS_INT64
typedef __int64 int64;
typedef int int32;
#endif
typedef unsigned __int64 uint64;
typedef unsigned int uint32;
#else
#ifndef HAS_INT64
typedef long long int64;
typedef int int32;
#endif
typedef unsigned long long uint64;
typedef unsigned int uint32;
#endif
#include "adcc.h"
#include "rbt.h"
static int measbound=31415; /* upper limit on a view measre bound */
enum { smallestParent, prefixedParent, sharedSortParent, noneParent };
static const char* adcKeyword[]={
"attrNum",
"measuresNum",
"tuplesNum",
"INVERSE_ENDIAN",
"fileName",
"class",
NULL
};
typedef struct ADCpar{
int ndid;
int dim;
int mnum;
long long int tuplenum;
int inverse_endian;
const char *filename;
char clss;
} ADC_PAR;
typedef struct {
int32 ndid;
char clss;
char adcName[MAX_FILE_FULL_PATH_SIZE];
char adcInpFileName[MAX_FILE_FULL_PATH_SIZE];
uint32 nd;
uint32 nm;
uint32 nInputRecs;
uint32 memoryLimit;
uint32 nTasks;
/* FILE *statf; */
} ADC_VIEW_PARS;
typedef struct job_pool{
uint32 grpb;
uint32 nv;
uint32 nRows;
int64 viewOffset;
} JOB_POOL;
typedef struct layer{
uint32 layerIndex;
uint32 layerQuantityLimit;
uint32 layerCurrentPopulation;
} LAYER;
typedef struct chunks{
uint32 curChunkNum;
int64 chunkOffset;
uint32 posSubChunk;
uint32 curSubChunk;
} CHUNKS;
typedef struct tuplevsize {
uint64 viewsize;
uint64 tuple;
} TUPLE_VIEWSIZE;
typedef struct tupleones {
uint32 nOnes;
uint64 tuple;
} TUPLE_ONES;
typedef struct {
char adcName[MAX_FILE_FULL_PATH_SIZE];
uint32 retCode;
uint32 verificationFailed;
uint32 swapIt;
uint32 nTasks;
uint32 taskNumber;
int32 ndid;
uint32 nTopDims; /* given number of dimension attributes */
uint32 nm; /* number of measures */
uint32 nd; /* number of parent's dimensions */
uint32 nv; /* number of child's dimensions */
uint32 nInputRecs;
uint32 nViewRows;
uint32 totalOfViewRows;
uint32 nParentViewRows;
int64 viewOffset;
int64 accViewFileOffset;
uint32 inpRecSize;
uint32 outRecSize;
uint32 memoryLimit;
unsigned char * memPool;
uint32 * inpDataBuffer;
RBTree *tree;
uint32 numberOfChunks;
CHUNKS *chunksParams;
char adcLogFileName[MAX_FILE_FULL_PATH_SIZE];
char inpFileName[MAX_FILE_FULL_PATH_SIZE];
char viewFileName[MAX_FILE_FULL_PATH_SIZE];
char chunksFileName[MAX_FILE_FULL_PATH_SIZE];
char groupbyFileName[MAX_FILE_FULL_PATH_SIZE];
char adcViewSizesFileName[MAX_FILE_FULL_PATH_SIZE];
char viewSizesFileName[MAX_FILE_FULL_PATH_SIZE];
FILE *logf;
FILE *inpf;
FILE *viewFile;
FILE *fileOfChunks;
FILE *groupbyFile;
FILE *adcViewSizesFile;
FILE *viewSizesFile;
int64 mSums[MAX_NUM_OF_MEAS];
uint32 selection[MAX_NUM_OF_DIMS];
int64 checksums[MAX_NUM_OF_MEAS]; /* view checksums */
int64 totchs[MAX_NUM_OF_MEAS]; /* checksums of a group of views */
JOB_POOL *jpp;
LAYER *lpp;
uint32 nViewLimit;
uint32 groupby;
uint32 smallestParentLevel;
uint32 parBinRepTuple;
uint32 nRowsToRead;
uint32 fromParent;
uint64 totalViewFileSize; /* in bytes */
uint32 numberOfMadeViews;
uint32 numberOfViewsMadeFromInput;
uint32 numberOfPrefixedGroupbys;
uint32 numberOfSharedSortGroupbys;
} ADC_VIEW_CNTL;
#endif /* adc_h */