Changeset: 920a93235735 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=920a93235735 Modified Files: monetdb5/modules/mal/arrange.c monetdb5/modules/mal/arrange.h monetdb5/modules/mal/arrange.mal Branch: leftmart Log Message:
Code housekeeping (spaces, names, etc. ) diffs (202 lines): diff --git a/monetdb5/modules/mal/arrange.c b/monetdb5/modules/mal/arrange.c --- a/monetdb5/modules/mal/arrange.c +++ b/monetdb5/modules/mal/arrange.c @@ -27,84 +27,85 @@ ARNGcreate(Client cntxt, MalBlkPtr mb, M char name[IDLENGTH]; str msg= MAL_SUCCEED; - if( pci->argc == 3){ + if (pci->argc == 3) { pieces = stk->stk[pci->argv[2]].val.ival; } else { // educated guess needed on number of partitions } -#ifdef _DEBUG_INDEX_ +#ifdef _DEBUG_ARNG_ mnstr_printf(cntxt->fdout,"#bat.arrange pieces %d\n",pieces); #endif - if( pieces <0) + if (pieces < 0) throw(MAL,"bat.arrange","Positive number expected"); - bid= *getArgReference_bat(stk, pci,1); - b= BATdescriptor(bid); - if( b == NULL) - throw(MAL,"bat.arrange",RUNTIME_OBJECT_MISSING); + bid = *getArgReference_bat(stk, pci, 1); + b = BATdescriptor(bid); + if (b == NULL) + throw(MAL, "bat.arrange", RUNTIME_OBJECT_MISSING); // create a temporary MAL function - snprintf(name,IDLENGTH,"sort%d",rand() % 1000); - snew= newFunction(putName("user",4), putName(name, strlen(name)), FUNCTIONsymbol); - smb= snew->def; - q= getInstrPtr(smb, 0); - arg = newTmpVariable(smb, getArgType(mb,pci,1)) ; + snprintf(name, IDLENGTH, "sort%d", rand()%1000); + snew = newFunction(putName("user", 4), putName(name, strlen(name)), FUNCTIONsymbol); + smb = snew->def; + q = getInstrPtr(smb, 0); + arg = newTmpVariable(smb, getArgType(mb,pci,1)); pushArgument(smb, q, arg); - getArg(q,0)= newTmpVariable(smb, TYPE_void); + getArg(q,0) = newTmpVariable(smb, TYPE_void); - resizeMalBlk(smb, 2* pieces +10, 2 * pieces + 10); // large enough + resizeMalBlk(smb, 2*pieces+10, 2*pieces+10); // large enough // create the pack instruction first, as it will hold intermediate variables - pack = newInstruction(0,ASSIGNsymbol); - setModuleId(pack,putName("bat",3)); - setFunctionId(pack,putName("arrange",7)); - pack->argv[0]= newTmpVariable(smb, TYPE_void); - pack = pushArgument(smb,pack, arg); - setVarFixed(smb,getArg(pack,0)); + pack = newInstruction(0, ASSIGNsymbol); + setModuleId(pack, putName("bat", 3)); + setFunctionId(pack, putName("arrange", 7)); + pack->argv[0] = newTmpVariable(smb, TYPE_void); + pack = pushArgument(smb, pack, arg); + setVarFixed(smb, getArg(pack, 0)); // the costly part executed as a parallel block - loopvar = newTmpVariable(smb,TYPE_bit); - q = newStmt(smb,putName("language",8),putName("dataflow",8)); - q->barrier= BARRIERsymbol; - q->argv[0]= loopvar; + loopvar = newTmpVariable(smb, TYPE_bit); + q = newStmt(smb, putName("language", 8), putName("dataflow", 8)); + q->barrier = BARRIERsymbol; + q->argv[0] = loopvar; cnt = BATcount(b); - step = cnt / pieces; + step = cnt/pieces; o = 0; - for( i=0; i< pieces; i++){ + for (i=0; i< pieces; i++) { // add slice instruction - q = newStmt(smb,putName("algebra",7),putName("slice",5)); - setVarType(smb, getArg(q,0), getArgType(mb,pci,1)); - setVarFixed(smb,getArg(q,0)); - q = pushArgument(smb, q, arg); - pack = pushArgument(smb,pack, getArg(q,0)); - q = pushOid(smb,q, o); - if ( i == pieces -1){ - o= cnt; - } else - o+= step; - q = pushOid(smb,q, o); + q = newStmt(smb, putName("algebra", 7),putName("slice", 5)); + setVarType(smb, getArg(q,0), getArgType(mb, pci, 1)); + setVarFixed(smb, getArg(q,0)); + q = pushArgument(smb, q, arg); + pack = pushArgument(smb, pack, getArg(q,0)); + q = pushOid(smb, q, o); + if (i == pieces-1) { + o = cnt; + } else { + o += step; + } + q = pushOid(smb, q, o); } - for( i=0; i< pieces; i++){ + for (i=0; i< pieces; i++) { // add sort instruction - q = newStmt(smb, putName("algebra",7), putName("sortorder",9)); - setVarType(smb, getArg(q,0), newBatType(TYPE_oid,TYPE_oid)); - setVarFixed(smb,getArg(q,0)); - q= pushArgument(smb, q, pack->argv[2+i]); - q= pushBit(smb,q, 0); - q= pushBit(smb,q, 0); - pack->argv[2+i]= getArg(q,0); + q = newStmt(smb, putName("algebra",7), putName("arrangeorder", 9)); + setVarType(smb, getArg(q, 0), newBatType(TYPE_oid, TYPE_oid)); + setVarFixed(smb, getArg(q, 0)); + q = pushArgument(smb, q, pack->argv[2+i]); + q = pushBit(smb, q, 0); + q = pushBit(smb, q, 0); + pack->argv[2+i] = getArg(q, 0); } // finalize, check, and evaluate pushInstruction(smb,pack); - q= newAssignment(smb); - q->barrier= EXITsymbol; - q->argv[0]=loopvar; + q = newAssignment(smb); + q->barrier = EXITsymbol; + q->argv[0] =loopvar; pushEndInstruction(smb); chkProgram(cntxt->fdout, cntxt->nspace, smb); - if( smb->errors) - msg = createException(MAL,"bat.arrange","Type errors in generated code"); - else { + if (smb->errors) { + msg = createException(MAL, "bat.arrange", "Type errors in generated code"); + } else { // evaluate MAL block newstk = prepareMALstack(smb, smb->vsize); newstk->up = 0; diff --git a/monetdb5/modules/mal/arrange.h b/monetdb5/modules/mal/arrange.h --- a/monetdb5/modules/mal/arrange.h +++ b/monetdb5/modules/mal/arrange.h @@ -6,8 +6,8 @@ * Copyright 2008-2015 MonetDB B.V. */ -#ifndef _INDEX_H -#define _INDEX_H +#ifndef _ARNG_H +#define _ARNG_H #include "mal.h" #include "mal_builder.h" @@ -17,15 +17,15 @@ #ifdef WIN32 #if !defined(LIBMAL) && !defined(LIBATOMS) && !defined(LIBKERNEL) && !defined(LIBMAL) && !defined(LIBOPTIMIZER) && !defined(LIBSCHEDULER) && !defined(LIBMONETDB5) -#define index_export extern __declspec(dllimport) +#define arrange_export extern __declspec(dllimport) #else -#define index_export extern __declspec(dllexport) +#define arrange_export extern __declspec(dllexport) #endif #else -#define index_export extern +#define arrange_export extern #endif -#define _DEBUG_INDEX_ -index_export str ARNGcreate(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -index_export str ARNGmerge(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -#endif /* _INDEX_H */ +#define _DEBUG_ARNG_ +arrange_export str ARNGcreate(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +arrange_export str ARNGmerge(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +#endif /* _ARNG_H */ diff --git a/monetdb5/modules/mal/arrange.mal b/monetdb5/modules/mal/arrange.mal --- a/monetdb5/modules/mal/arrange.mal +++ b/monetdb5/modules/mal/arrange.mal @@ -1,16 +1,16 @@ pattern bat.arrange(bv:bat[:oid,:any_1]):void address ARNGcreate -comment "Introduces the sorted OID index arrangement"; +comment "Introduces the OID index arrangement of ordered values"; -pattern bat.arrange(bv:bat[:oid,:any_1], pieces:int):bat[:oid,:any_1] +pattern bat.arrange(bv:bat[:oid,:any_1], pieces:int):bat[:oid,:oid] address ARNGcreate -comment "Intreoduce the sorted OID index arrangement"; +comment "Introduces the OID index arrangement of ordered values"; pattern bat.arrange(bv:bat[:oid,:any_1], l:bat[:oid,:oid]...):void address ARNGmerge -comment "Consolidates the sorted OID index arrangement"; +comment "Consolidates the OID index arrangement"; -function algebra.sortorder(bv:bat[:oid,:any_1], reverse:bit, stable:bit ):bat[:oid,:oid]; +function algebra.arrangeorder(bv:bat[:oid,:any_1], reverse:bit, stable:bit ):bat[:oid,:oid]; (v,o):= algebra.subsort(bv,reverse,stable); return sortorder:= o; end sortorder; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list