Changeset: ea436074a631 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ea436074a631
Modified Files:
monetdb5/modules/mal/Tests/All
monetdb5/modules/mal/mal_init.mx
Branch: sciql
Log Message:
Merge with default branch.
diffs (truncated from 31579 to 300 lines):
diff --git a/gdk/gdk_bbp.mx b/gdk/gdk_bbp.mx
--- a/gdk/gdk_bbp.mx
+++ b/gdk/gdk_bbp.mx
@@ -902,8 +902,8 @@
if (BBPsize >= BBPlimit)
BBPextend(BATMARGIN, FALSE);
}
- if (src == 0)
- assert(BBP[bid].cache == NULL); /* no duplicates in
BBP.dir */
+ if (src == 0 && BBP[bid].cache != NULL)
+ GDKfatal("BBPinit: duplicate entry in BBP.dir.");
bs = GDKzalloc(sizeof(BATstore));
if (bs == NULL)
GDKfatal("BBPinit: cannot allocate memory for
BATstore.");
@@ -1155,16 +1155,20 @@
@-
In a distributed version of MonetDB, it would be nice to easily share the BATs
with other server instances. Although concurrency control issues should be
handled
-with care, it can avoid excessive communiction costs. The BBPimportEntry
creates
-a BATdescriptor using symbolic links to its source. Presummably this would lead
-to a transparant behavior.
+with care, it can avoid excessive communication costs. The BBPimportEntry
creates
+a BATdescriptor using symbolic links to its source. Presumably this would lead
+to a transparent behavior.
@= linkHeap
- lstat(@3, &st);
+ if (lstat(@3, &st) < 0) {
+ GDKerror("BBPimportEntry: file '%s' does not exist.\n", @3);
+ BBPdestroy(bn);
+ return 0;
+ }
GDKfilepath(path, BATDIR, BBP_physical(bn->batCacheid), "@4");
GDKcreatedir(path);
IODEBUG mnstr_printf(GDKerr, "#symlink %s ->%s\n", @3, path);
if (symlink(@3, path) < 0) {
- GDKerror("attach.bind:cannot link '%s' -> '%s'\n", path, @3);
+ GDKerror("BBPimportEntry: cannot link '%s' -> '%s'\n", path,
@3);
BBPdestroy(bn);
return 0;
}
@@ -1174,15 +1178,23 @@
GDKfree(bn->@1->@2.filename);
bn->@1->@2.filename = 0;
}
- HEAPload(&bn->@1->@2, BBP_physical(bn->batCacheid), "@4", TRUE);
+ if (HEAPload(&bn->@1->@2, BBP_physical(bn->batCacheid), "@4", TRUE) <
0) {
+ GDKerror("BBPimportEntry: cannot read heap file '%s'\n", @3);
+ BBPdestroy(bn);
+ return 0;
+ }
@= linkvHeap
- lstat(@2, &st);
+ if (lstat(@2, &st) < 0) {
+ GDKerror("BBPimportEntry: file '%s' does not exist.\n", @2);
+ BBPdestroy(bn);
+ return 0;
+ }
GDKfilepath(path, BATDIR, BBP_physical(bn->batCacheid), "@3");
GDKcreatedir(path);
IODEBUG mnstr_printf(GDKerr, "#symlink %s ->%s\n", @2, path);
if (symlink(@2, path) < 0) {
- GDKerror("attach.bind:cannot link '%s' -> '%s'\n", path, @2);
+ GDKerror("BBPimportEntry: cannot link '%s' -> '%s'\n", path,
@2);
BBPdestroy(bn);
return 0;
}
@@ -1195,7 +1207,11 @@
GDKfree(bn->@1->vheap->filename);
bn->@1->vheap->filename = 0;
}
- HEAPload(bn->@1->vheap, BBP_physical(bn->batCacheid), "@3", TRUE);
+ if (HEAPload(bn->@1->vheap, BBP_physical(bn->batCacheid), "@3", TRUE) <
0) {
+ GDKerror("BBPimportEntry: cannot read heap file '%s'\n", @2);
+ BBPdestroy(bn);
+ return 0;
+ }
@c
bat
@@ -1221,6 +1237,10 @@
int BBPlimit;
IODEBUG mnstr_printf(GDKerr,"#importEntry %s\n",nme);
+ if (strlen(nme) >= sizeof(bbpdir)) {
+ GDKerror("BBPimportEntry: file name too long\n");
+ return 0;
+ }
strcpy(bbpdir,nme);
s= strstr(bbpdir,BATDIR);
if (s == 0)
diff --git a/monetdb5/mal/mal_debugger.mx b/monetdb5/mal/mal_debugger.mx
--- a/monetdb5/mal/mal_debugger.mx
+++ b/monetdb5/mal/mal_debugger.mx
@@ -1379,8 +1379,13 @@
i = BBPindex(b);
if (i != 0){
printBATelm(out, i, size, first);
- } else
+ } else {
+ i = atoi(b);
+ if ( i || *b == '0')
+ printStackElm(out, mb, stk->stk
+ i, i, size, first);
+ else
mnstr_printf(out, "%s Symbol not
found\n", "#mdb ");
+ }
continue;
}
if (isaBatType(getVarType(mb,i)) && upper =='p'){
@@ -1435,7 +1440,7 @@
InstrPtr q;
lstng= LIST_MAL_DEBUG | LIST_MAL_UDF | LIST_MAL_LNR;
- if ( *b=='L') lstng |= LIST_MAL_PROPS | LIST_MAL_DETAIL;
+ if ( *b=='L') lstng |= LIST_MAL_DETAIL;
skipWord(cntxt, b);
if (*b != 0) {
MalBlkPtr m= mdbLocateMalBlk(cntxt,mb,b,out);
@@ -1858,6 +1863,8 @@
str nme, nmeOnStk;
VarPtr n = getVar(mb, index);
+ if ( !isVarUsed(mb,index) )
+ return;
printStackHdr(f,mb,v,index);
if (v && v->vtype == TYPE_bat){
@@ -1883,7 +1890,7 @@
if (strcmp(nmeOnStk, nme) && strncmp(nmeOnStk,"BAT",3))
mnstr_printf(f,"!%s ",nmeOnStk);
mnstr_printf(f, " %s", (isVarConstant(mb,index)? " constant" : ""));
- mnstr_printf(f, " %s", (isVarUsed(mb,index) ? "": " not used" ));
+ /* mnstr_printf(f, " %s", (isVarUsed(mb,index) ? "": " not used" ));*/
mnstr_printf(f, " %s", (isVarTypedef(mb,index) ? " type variable" :
""));
if ( getEndOfLife(mb,index))
mnstr_printf(f," eolife=%d ", getEndOfLife(mb,index));
diff --git a/monetdb5/mal/mal_instruction.mx b/monetdb5/mal/mal_instruction.mx
--- a/monetdb5/mal/mal_instruction.mx
+++ b/monetdb5/mal/mal_instruction.mx
@@ -2789,8 +2789,10 @@
MalProp *p = mb->prps+v->prps[i];
char *nme = PropertyName(p->idx);
- if (!first)
+ if (!first) {
*s++ = ',';
+ *s++ = ' ';
+ }
if (p->var) {
VarPtr v = getVar(mb, p->var);
char *op = PropertyOperatorString((prop_op_t)p->op);
diff --git a/monetdb5/modules/mal/Tests/All b/monetdb5/modules/mal/Tests/All
--- a/monetdb5/modules/mal/Tests/All
+++ b/monetdb5/modules/mal/Tests/All
@@ -34,6 +34,7 @@
remote06
remote08
remote09
+remote11
# needs Merovingian and aims at SQL
#remote88
#remote89
diff --git a/monetdb5/modules/mal/Tests/remote11.mal
b/monetdb5/modules/mal/Tests/remote11.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/modules/mal/Tests/remote11.mal
@@ -0,0 +1,15019 @@
+# let connect figure out itself how to connect to the running db
+uri := sabaoth.getLocalConnectionURI();
+
+# create a persistent connecton to ourself
+conn1:str := remote.connect(uri, "monetdb", "monetdb");
+
+b := bat.new(:oid, :str);
+b := bat.insert(b, nil:oid, "blithely final dolphins solve-- blithely blithe
packages nag blith");
+b := bat.insert(b, nil:oid, "quickly regular depend");
+b := bat.insert(b, nil:oid, "deposits alongside of the dependencies are slowly
about ");
+b := bat.insert(b, nil:oid, "final requests detect slyly across the blithely
bold pinto beans. eve");
+b := bat.insert(b, nil:oid, "even deposits cajole furiously. quickly spe");
+b := bat.insert(b, nil:oid, "ironically bold asymptotes sleep blithely beyond
the regular, clos");
+b := bat.insert(b, nil:oid, "ironic, regular deposits are. ironic foxes sl");
+b := bat.insert(b, nil:oid, "slyly final foxes are slyly. packag");
+b := bat.insert(b, nil:oid, "packages maintain about the deposits; foxes hang
after ");
+b := bat.insert(b, nil:oid, "quickly express asymptotes use. carefully final
packages sleep f");
+b := bat.insert(b, nil:oid, "fluffily regular pinto beans ");
+b := bat.insert(b, nil:oid, "carefully ironic accounts nag");
+b := bat.insert(b, nil:oid, "express requests ar");
+b := bat.insert(b, nil:oid, "slyly quick pinto beans detect flu");
+b := bat.insert(b, nil:oid, "furiously unusual pinto beans above the furiously
ironic asymptot");
+b := bat.insert(b, nil:oid, "final deposits nag. blithely special deposits a");
+b := bat.insert(b, nil:oid, "furiously even platelets boost ironic
theodolites. even ");
+b := bat.insert(b, nil:oid, "ironic requests are quickly about the carefully
unusual a");
+b := bat.insert(b, nil:oid, "regular, bold foxes across the even requests
detect a");
+b := bat.insert(b, nil:oid, "stealthy decoys nag; furiously");
+b := bat.insert(b, nil:oid, "carefully regular theodolites exce");
+b := bat.insert(b, nil:oid, "blithely unusual pack");
+b := bat.insert(b, nil:oid, "furiously ironic dolphins sleep slyly. carefully
special notornis cajole c");
+b := bat.insert(b, nil:oid, "carefully regular accounts ");
+b := bat.insert(b, nil:oid, "carefully even packages believe sly");
+b := bat.insert(b, nil:oid, "carefully even dinos sleep blithely. regular,
bold deposits");
+b := bat.insert(b, nil:oid, "carefully regular theodolites may believe unu");
+b := bat.insert(b, nil:oid, "regular deposits sleep closely regular, regular
packages. carefully si");
+b := bat.insert(b, nil:oid, "blithely ironic accounts lose slyly about the
pending, regular accounts");
+b := bat.insert(b, nil:oid, "unusual deposits dazzle furiously blithely
regular pinto beans. pending foxes");
+b := bat.insert(b, nil:oid, "carefully ironic deposits are quickly blithely
even");
+b := bat.insert(b, nil:oid, "carefully special e");
+b := bat.insert(b, nil:oid, "slyly bold dolphins cajole c");
+b := bat.insert(b, nil:oid, "slyly final accounts among");
+b := bat.insert(b, nil:oid, "special courts wake blithely accordin");
+b := bat.insert(b, nil:oid, "ironic platelets according to the evenly regula");
+b := bat.insert(b, nil:oid, "slyly silent deposits haggle carefully fluffi");
+b := bat.insert(b, nil:oid, "silently even deposits wake about the fluff");
+b := bat.insert(b, nil:oid, "accounts cajole. final, pending dependencies a");
+b := bat.insert(b, nil:oid, "unusual dependencie");
+b := bat.insert(b, nil:oid, "ironic, even attainments cajole closely");
+b := bat.insert(b, nil:oid, "instructions nag slyly. fluffily ironic sau");
+b := bat.insert(b, nil:oid, "carefully express pinto beans serve carefully
final as");
+b := bat.insert(b, nil:oid, "fluffily unusual requests al");
+b := bat.insert(b, nil:oid, "furiously enticing accounts cajole sometimes.
slyly express plat");
+b := bat.insert(b, nil:oid, "bold dependencies wake furiously regula");
+b := bat.insert(b, nil:oid, "express warhorses wake carefully furiously ironic
deposits. c");
+b := bat.insert(b, nil:oid, "silent requests above the furiously even pinto
beans sleep bl");
+b := bat.insert(b, nil:oid, "slyly blithe instructions cajole carefully
ironic, fina");
+b := bat.insert(b, nil:oid, "carefully dogged excuses use abou");
+b := bat.insert(b, nil:oid, "ironic, final notornis are fluffily across the
carefull");
+b := bat.insert(b, nil:oid, "even deposits wake ");
+b := bat.insert(b, nil:oid, "theodolites above the furiously regular deposits
sleep blithely abo");
+b := bat.insert(b, nil:oid, "deposits haggle carefully after the furiously
fi");
+b := bat.insert(b, nil:oid, "unusual, regular requests c");
+b := bat.insert(b, nil:oid, "quickly final accounts use even requests. ironic
ac");
+b := bat.insert(b, nil:oid, "blithely express cou");
+b := bat.insert(b, nil:oid, "even, ironic theodolites detect fluffily final
instructions-- fi");
+b := bat.insert(b, nil:oid, "asymptotes are special, special requests. spec");
+b := bat.insert(b, nil:oid, "blithely ironic requests boost pending
theodolites. even deposits affix fluf");
+b := bat.insert(b, nil:oid, "blithely thin requests along the fluffily regular
packages e");
+b := bat.insert(b, nil:oid, "ironic, silent tithes wake carefully until the
even theodolites. special");
+b := bat.insert(b, nil:oid, "express requests use always at the unusual
deposits. silently final acc");
+b := bat.insert(b, nil:oid, "special dependencies boost furiously. pendin");
+b := bat.insert(b, nil:oid, "final, regular packages nag furiously fluffily
f");
+b := bat.insert(b, nil:oid, "regularly ironic grouches against the quickly
express p");
+b := bat.insert(b, nil:oid, "ironic packages haggle among the furiously brave
deposits. final, final d");
+b := bat.insert(b, nil:oid, "quickly special ideas against the furiously final
accounts affix deposits. sl");
+b := bat.insert(b, nil:oid, "final accounts nag fluffily about");
+b := bat.insert(b, nil:oid, "express, regular theodolites wake special
instructions. slyly express ");
+b := bat.insert(b, nil:oid, "fluffily final ideas use quickly slyly final
foxes? fluffily express dolphi");
+b := bat.insert(b, nil:oid, "quickly ruthless instructions cajole ");
+b := bat.insert(b, nil:oid, "slyly express excuses d");
+b := bat.insert(b, nil:oid, "pending instructions against the furiously
express d");
+b := bat.insert(b, nil:oid, "express requests according to the carefully
regular deposits run");
+b := bat.insert(b, nil:oid, "furiously special theodolites wake blith");
+b := bat.insert(b, nil:oid, "regular instructions grow bold, u");
+b := bat.insert(b, nil:oid, "idly ironic deposits must have to haggle
deposits. blithel");
+b := bat.insert(b, nil:oid, "doggedly final requests nag carefull");
+b := bat.insert(b, nil:oid, "carefully silent ideas do solve final, express
instructions. quickly final p");
+b := bat.insert(b, nil:oid, "quickly silent requests affix sl");
+b := bat.insert(b, nil:oid, "carefully unusual pinto beans lose carefully.
even instructions ac");
+b := bat.insert(b, nil:oid, "even, regular instructions");
+b := bat.insert(b, nil:oid, "regular theodolites boost quickly along the
ironic, quick realms.");
+b := bat.insert(b, nil:oid, "carefully fluffy forges about the express, ir");
+b := bat.insert(b, nil:oid, "regular theodolites was car");
+b := bat.insert(b, nil:oid, "fluffily ironic deposits across the ironically
regular ideas are ");
+b := bat.insert(b, nil:oid, "regular, regular pinto beans haggle sly");
+b := bat.insert(b, nil:oid, "even ideas haggle excuses? slyly ironic packages
wake alongside of the qu");
+b := bat.insert(b, nil:oid, "quickly special packages inside the slyly unusual
pain");
+b := bat.insert(b, nil:oid, "carefully even instructio");
+b := bat.insert(b, nil:oid, "fluffily pending theo");
+b := bat.insert(b, nil:oid, "carefully bold theodolites cajole f");
+b := bat.insert(b, nil:oid, "deposits sublate carefully at t");
+b := bat.insert(b, nil:oid, "furiously final foxes are. regular,");
+b := bat.insert(b, nil:oid, "regular packages haggle furiously; idle requests
wake carefu");
+b := bat.insert(b, nil:oid, "asymptotes wake silent, silent");
+b := bat.insert(b, nil:oid, "quickly pending instructions unwind furiously
theodolites. final package");
+b := bat.insert(b, nil:oid, "blithely even accounts according to the even
packag");
+b := bat.insert(b, nil:oid, "accounts wake against the braids. silent accounts
snooze slyly blithely ironi");
+b := bat.insert(b, nil:oid, "pending, bold packages boost blithely final
package");
+b := bat.insert(b, nil:oid, "blithely even pinto beans against the ironic
packages boost qu");
+b := bat.insert(b, nil:oid, "furiously special deposits wake blithely. qu");
+b := bat.insert(b, nil:oid, "excuses boost permanently around the carefully
pe");
+b := bat.insert(b, nil:oid, "pending, regular pinto beans after the final,
express accounts boost");
+b := bat.insert(b, nil:oid, "quiet, bold ideas a");
+b := bat.insert(b, nil:oid, "accounts sleep quickly slyly bo");
+b := bat.insert(b, nil:oid, "slyly final deposits sublate after the quickly
pending deposits");
+b := bat.insert(b, nil:oid, "ironic, even account");
+b := bat.insert(b, nil:oid, "carefully even packages use");
+b := bat.insert(b, nil:oid, "blithely unusual dugouts play quickly along the
blithely regular theo");
+b := bat.insert(b, nil:oid, "furiously even requests nag carefully. ");
+b := bat.insert(b, nil:oid, "final, express requests sleep permanent requests.
spe");
+b := bat.insert(b, nil:oid, "deposits wake regular, ironic instructions. bli");
+b := bat.insert(b, nil:oid, "final foxes nag. regul");
+b := bat.insert(b, nil:oid, "theodolites should n");
+b := bat.insert(b, nil:oid, "furiously even deposits use inside the excuses.");
+b := bat.insert(b, nil:oid, "fluffily final accounts after the special, ironic
pinto ");
+b := bat.insert(b, nil:oid, "even instructions hagg");
+b := bat.insert(b, nil:oid, "final accounts poach carefully. quickly final
platelets boost quickly even ide");
+b := bat.insert(b, nil:oid, "ruthlessly ironic packages nag furiously across
the slyly regula");
+b := bat.insert(b, nil:oid, "blithely regular as");
+b := bat.insert(b, nil:oid, "bold theodolites sl");
+b := bat.insert(b, nil:oid, "fluffily even deposits run foxes; regular
packages afte");
+b := bat.insert(b, nil:oid, "regular, bold asymptotes sleep boldly. carefu");
+b := bat.insert(b, nil:oid, "quickly final foxes across the expre");
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list