Changeset: d94907c5a13d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d94907c5a13d
Modified Files:
monetdb5/extras/rdf/rdfschema.c
Branch: rdf
Log Message:
Allocate the BAT with exact number of to-be-inserted values
diffs (67 lines):
diff --git a/monetdb5/extras/rdf/rdfschema.c b/monetdb5/extras/rdf/rdfschema.c
--- a/monetdb5/extras/rdf/rdfschema.c
+++ b/monetdb5/extras/rdf/rdfschema.c
@@ -6068,12 +6068,14 @@ void initCStables(CStableStat* cstablest
cstablestat->lstcstable[i].lstProp[colIdx] =
freqCSset->items[csPropTypes[i].freqCSId].lstProp[j];
if (csPropTypes[i].lstPropTypes[j].isMVProp == 0){
- cstablestat->lstcstable[i].colBats[colIdx] =
BATnew(TYPE_void,
mapObjBATtypes[(int)csPropTypes[i].lstPropTypes[j].defaultType], smallbatsz);
+ //cstablestat->lstcstable[i].colBats[colIdx] =
BATnew(TYPE_void,
mapObjBATtypes[(int)csPropTypes[i].lstPropTypes[j].defaultType], smallbatsz);
+ cstablestat->lstcstable[i].colBats[colIdx] =
BATnew(TYPE_void,
mapObjBATtypes[(int)csPropTypes[i].lstPropTypes[j].defaultType],
freqCSset->items[csPropTypes[i].freqCSId].support + 1);
cstablestat->lstcstable[i].lstMVTables[colIdx].numCol = 0; //There is no
MV Tbl for this prop
//TODO: use exact size for each BAT
}
else{
- cstablestat->lstcstable[i].colBats[colIdx] =
BATnew(TYPE_void, TYPE_oid, smallbatsz);
+ //cstablestat->lstcstable[i].colBats[colIdx] =
BATnew(TYPE_void, TYPE_oid, smallbatsz);
+ cstablestat->lstcstable[i].colBats[colIdx] =
BATnew(TYPE_void, TYPE_oid, freqCSset->items[csPropTypes[i].freqCSId].support +
1);
BATseqbase(cstablestat->lstcstable[i].colBats[colIdx], 0);
cstablestat->lstcstable[i].lstMVTables[colIdx].numCol =
csPropTypes[i].lstPropTypes[j].numMvTypes;
if
(cstablestat->lstcstable[i].lstMVTables[colIdx].numCol != 0){
@@ -6083,17 +6085,20 @@ void initCStables(CStableStat* cstablest
mvColIdx = 0; //Go through all types
cstablestat->lstcstable[i].lstMVTables[colIdx].colTypes[0] =
csPropTypes[i].lstPropTypes[j].defaultType; //Default type for this MV col
//Init the first col (default type) in
MV Table
-
cstablestat->lstcstable[i].lstMVTables[colIdx].mvBats[0] = BATnew(TYPE_void,
mapObjBATtypes[(int)csPropTypes[i].lstPropTypes[j].defaultType], smallbatsz);
+
//cstablestat->lstcstable[i].lstMVTables[colIdx].mvBats[0] = BATnew(TYPE_void,
mapObjBATtypes[(int)csPropTypes[i].lstPropTypes[j].defaultType], smallbatsz);
+
cstablestat->lstcstable[i].lstMVTables[colIdx].mvBats[0] = BATnew(TYPE_void,
mapObjBATtypes[(int)csPropTypes[i].lstPropTypes[j].defaultType],
csPropTypes[i].lstPropTypes[j].propCover + 1);
for (k = 0; k < MULTIVALUES; k++){
if (k !=
csPropTypes[i].lstPropTypes[j].defaultType &&
csPropTypes[i].lstPropTypes[j].TableTypes[k] == MVTBL){
mvColIdx++;
cstablestat->lstcstable[i].lstMVTables[colIdx].colTypes[mvColIdx] = k;
-
cstablestat->lstcstable[i].lstMVTables[colIdx].mvBats[mvColIdx] =
BATnew(TYPE_void, mapObjBATtypes[k], smallbatsz);
+
//cstablestat->lstcstable[i].lstMVTables[colIdx].mvBats[mvColIdx] =
BATnew(TYPE_void, mapObjBATtypes[k], smallbatsz);
+
cstablestat->lstcstable[i].lstMVTables[colIdx].mvBats[mvColIdx] =
BATnew(TYPE_void, mapObjBATtypes[k],csPropTypes[i].lstPropTypes[j].propCover +
1);
}
}
//Add a bat for storing FK to the main
table
-
cstablestat->lstcstable[i].lstMVTables[colIdx].keyBat = BATnew(TYPE_void,
TYPE_oid, smallbatsz);
+
//cstablestat->lstcstable[i].lstMVTables[colIdx].keyBat = BATnew(TYPE_void,
TYPE_oid, smallbatsz);
+
cstablestat->lstcstable[i].lstMVTables[colIdx].keyBat = BATnew(TYPE_void,
TYPE_oid, csPropTypes[i].lstPropTypes[j].propCover + 1);
}
//BATseqbase(cstablestat->lstcstable[i].mvExBats[colIdx], 0);
@@ -6104,7 +6109,8 @@ void initCStables(CStableStat* cstablest
#if CSTYPE_TABLE == 1
for (t = 0; t < csPropTypes[i].lstPropTypes[j].numType;
t++){
if (
csPropTypes[i].lstPropTypes[j].TableTypes[t] == TYPETBL){
-
cstablestat->lstcstableEx[i].colBats[colExIdx] = BATnew(TYPE_void,
mapObjBATtypes[t], smallbatsz);
+
//cstablestat->lstcstableEx[i].colBats[colExIdx] = BATnew(TYPE_void,
mapObjBATtypes[t], smallbatsz);
+
cstablestat->lstcstableEx[i].colBats[colExIdx] = BATnew(TYPE_void,
mapObjBATtypes[t], freqCSset->items[csPropTypes[i].freqCSId].support + 1);
//Set mainTblColIdx for ex-table
cstablestat->lstcstableEx[i].colTypes[colExIdx] = t;
cstablestat->lstcstableEx[i].mainTblColIdx[colExIdx] = colIdx;
@@ -6532,10 +6538,11 @@ str RDFdistTriplesToCSs(int *ret, bat *s
isSetLasttblIdx = 0;
BATloop(pbat, p, q){
+ if (p % 1048576 == 0) printf(".");
pbt = (oid *) BUNtloc(pi, p);
sbt = (oid *) BUNtloc(si, p);
obt = (oid *) BUNtloc(oi, p);
-
+
//BATprint(pbat);
//BATprint(sbat);
//BATprint(obat);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list