Changeset: 66fec925f4c7 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=66fec925f4c7 Modified Files: monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_linker.c monetdb5/mal/mal_module.c monetdb5/mal/mal_parser.c monetdb5/modules/mal/Tests/inspect05.stable.out monetdb5/modules/mal/Tests/inspect05.stable.out.Debian monetdb5/modules/mal/Tests/inspect05.stable.out.Windows Branch: headless Log Message:
Merge with default branch.
diffs (truncated from 384 to 300 lines):
diff --git a/monetdb5/mal/Tests/tst606.stable.out
b/monetdb5/mal/Tests/tst606.stable.out
--- a/monetdb5/mal/Tests/tst606.stable.out
+++ b/monetdb5/mal/Tests/tst606.stable.out
@@ -59,6 +59,13 @@
BoxException := "releasing a constant is forbidden";
raise BoxException;
end release;
+!SyntaxException:parseError:address space_deposit;
+!SyntaxException:parseError: ^<address> not found
+!SyntaxException:parseError:
+!<identifier> expected
+function constants.deposit(v:any_1,name:str):void;
+ ;
+end deposit;
# 08:01:25 >
# 08:01:25 > Done.
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -186,6 +186,7 @@
malCommandCall(MalStkPtr stk, InstrPtr pci)
{
str ret = MAL_SUCCEED;
+ assert(pci->fcn != NULL);
switch(pci->argc){
case 0 : ret = (str) (*pci->fcn)(); break;
case 1 : ret = (str) (*pci->fcn)(
diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c
--- a/monetdb5/mal/mal_module.c
+++ b/monetdb5/mal/mal_module.c
@@ -185,6 +185,7 @@
if (pci && pci->token == COMMANDsymbol && pci->argc == 1) {
int ret = 0;
+ assert(pci->fcn != NULL);
(*pci->fcn)(&ret);
(void)ret;
}
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -1365,14 +1365,18 @@
setModuleScope(curInstr,
findModule(cntxt->nspace,
putName(modnme,strlen(modnme))) );
curInstr->fcn = getAddress(cntxt->srcFile, modnme, nme,TRUE);
- if (curInstr->fcn == NULL)
- return (MalBlkPtr) parseError(cntxt, "<address> not
found\n");
curBlk->binding = nme;
- if( cntxt->nspace->isAtomModule)
+ if( cntxt->nspace->isAtomModule) {
+ if (curInstr->fcn == NULL) {
+ parseError(cntxt, "<address> not found\n");
+ return 0;
+ }
malAtomProperty(curBlk, curInstr);
+ }
skipSpace(cntxt);
} else {
- return (MalBlkPtr) parseError(cntxt,"'address' expected\n");
+ parseError(cntxt,"'address' expected\n");
+ return 0;
}
helpInfo(cntxt, &curBlk->help);
showErrors(cntxt);
@@ -1398,6 +1402,10 @@
nme = idCopy(cntxt,i);
getInstrPtr(curBlk,0)->fcn = getAddress(cntxt->srcFile,
cntxt->nspace->name, nme,TRUE);
GDKfree(nme);
+ if (curInstr->fcn == NULL) {
+ parseError(cntxt, "<address> not found\n");
+ return 0;
+ }
skipSpace(cntxt);
}
/* block is terminated at the END statement */
diff --git a/monetdb5/modules/mal/Tests/inspect05.stable.out
b/monetdb5/modules/mal/Tests/inspect05.stable.out
--- a/monetdb5/modules/mal/Tests/inspect05.stable.out
+++ b/monetdb5/modules/mal/Tests/inspect05.stable.out
@@ -141,31 +141,6 @@
[ "locate", "pattern", "tokenizer",
"(s:str):oid ",
"TKNZRlocate;"
]
[ "open", "command", "tokenizer",
"(name:str):void ",
"TKNZRopen;"
]
[ "take", "pattern", "tokenizer",
"(i:oid):str ",
"TKNZRtakeOid;"
]
-[ "append", "pattern", "master",
"(mvc:ptr,s:str,t:str,c:str,b:bat[:oid,:any_1],tag:oid):ptr ",
"MASTERappend;"
]
-[ "append", "pattern", "master",
"(mvc:ptr,s:str,t:str,c:str,_5:any_1,tag:oid):ptr ",
"MASTERappendValue;"
]
-[ "copy", "pattern", "master",
"(sname:str,tname:str,tsep:str,rsep:str,ssep:str,ns:str,fname:str,nr:lng,offset:lng,tag:oid):void
", "MASTERcopy;" ]
-[ "close", "command", "master",
"(tag:oid):void ",
"MASTERclose;"
]
-[ "delete", "pattern", "master",
"(s:str,t:str,b:bat[:oid,:any_1],tag:oid):void ",
"MASTERdelete;"
]
-[ "freeze", "command", "master", "():void ",
"MASTERfreeze;"
]
-[ "getCutOffTag", "command", "master", "():oid ",
"MASTERgetCutOffTag;"
]
-[ "getURI", "command", "master", "():str ",
"MASTERgetURI;"
]
-[ "open", "command", "master", "():oid ",
"MASTERopen;"
]
-[ "prelude", "command", "master",
"():void ",
"MASTERprelude;" ]
-[ "replay", "pattern", "master",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"MASTERreplay;"
]
-[ "sync", "command", "master",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"MASTERsync;"
]
-[ "stop", "command", "master",
"():void ",
"MASTERstop;"
]
-[ "start", "command", "master",
"():void ",
"MASTERstart;"
]
-[ "close", "command", "slave",
"(tag:oid,stamp:timestamp):void ",
"SLAVEclose;"
]
-[ "drop", "command", "slave",
"(fcnname:str):void ",
"SLAVEdrop;"
]
-[ "isprotected", "command", "slave",
"(schema:str,table:str):bit ",
"SLAVEisprotected;"
]
-[ "open", "pattern", "slave",
"(tag:oid):int ",
"SLAVEopen;"
]
-[ "prelude", "command", "slave",
"():void ",
"SLAVEprelude;"
]
-[ "protect", "command", "slave",
"(schema:str,table:str):void ",
"SLAVEprotect;"
]
-[ "synchronizing", "command", "slave", "():int ",
"SLAVEsynchronizing;"
]
-[ "stop", "command", "slave", "():void ",
"SLAVEstop;"
]
-[ "sync", "command", "slave",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"SLAVEsync;"
]
-[ "sync", "command", "slave",
"(uri:str):void ",
"SLAVEsyncURI;"
]
-[ "sync", "command", "slave",
"():void ",
"SLAVEsyncDefault;" ]
[ "editdistance2", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic2_impl;" ]
[ "editdistance", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic_impl;" ]
[ "levenshtein", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic_impl;" ]
@@ -241,7 +216,6 @@
[ "dec_round", "command", "sql",
"(v:int,r:int):int ",
"int_dec_round_wrap;" ]
[ "dec_round", "command", "sql",
"(v:sht,r:sht):sht ",
"sht_dec_round_wrap;" ]
[ "dec_round", "command", "sql",
"(v:bte,r:bte):bte ",
"bte_dec_round_wrap;" ]
-[ "dump_slave", "pattern", "sql",
"():bat[:str,:BAT] ",
"dump_slave;" ]
[ "dump_trace", "pattern", "sql",
"():bat[:str,:BAT] ",
"dump_trace;" ]
[ "dump_opt_stats", "pattern", "sql",
"():bat[:str,:BAT] ",
"dump_opt_stats;" ]
[ "dump_cache", "pattern", "sql",
"():bat[:str,:BAT] ",
"dump_cache;" ]
@@ -418,8 +392,6 @@
[ "remoteQueries", "pattern", "optimizer", "():str ",
"OPTremoteQueries;"
]
[ "recycle", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTrecycle;"
]
[ "recycle", "pattern", "optimizer", "():str ",
"OPTrecycle;"
]
-[ "replication", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTreplication;"
]
-[ "replication", "pattern", "optimizer", "():str ",
"OPTreplication;"
]
[ "remap", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTremap;"
]
[ "remap", "pattern", "optimizer", "():str ",
"OPTremap;"
]
[ "reduce", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTreduce;"
]
@@ -4703,7 +4675,6 @@
[ "multipoint", "function", "calc",
"(wkt:str):wkb;",
"nil" ]
[ "mbr", "command", "calc", "(v:mbr):mbr
",
"mbrFromMBR;" ]
[ "mbr", "command", "calc", "(v:str):mbr
",
"mbrFromString;" ]
-[ "month_interval", "command", "calc",
"(v:daytime,ek:int,sk:int):int ",
"month_interval_daytime;" ]
[ "month_interval", "command", "calc",
"(v:lng,ek:int,sk:int):int ",
"month_interval_lng;" ]
[ "month_interval", "command", "calc",
"(v:wrd,ek:int,sk:int):int ",
"month_interval_wrd;" ]
[ "month_interval", "command", "calc",
"(v:int,ek:int,sk:int):int ",
"month_interval_int;" ]
diff --git a/monetdb5/modules/mal/Tests/inspect05.stable.out.Debian
b/monetdb5/modules/mal/Tests/inspect05.stable.out.Debian
--- a/monetdb5/modules/mal/Tests/inspect05.stable.out.Debian
+++ b/monetdb5/modules/mal/Tests/inspect05.stable.out.Debian
@@ -890,31 +890,6 @@
[ "encode", "command", "zorder",
"(x:int,y:int):oid ",
"ZORDencode_int_oid;"
]
[ "slice", "command", "zorder",
"(xb:int,yb:int,xt:int,yt:int):bat[:oid,:oid] ",
"ZORDslice_int;"
]
[ "sql_slice", "command", "zorder",
"(xb:int,yb:int,xt:int,yt:int):bat[:str,:BAT] ",
"ZORDsql_slice_int;"
]
-[ "append", "pattern", "master",
"(mvc:ptr,s:str,t:str,c:str,b:bat[:oid,:any_1],tag:oid):ptr ",
"MASTERappend;"
]
-[ "append", "pattern", "master",
"(mvc:ptr,s:str,t:str,c:str,_5:any_1,tag:oid):ptr ",
"MASTERappendValue;"
]
-[ "copy", "pattern", "master",
"(sname:str,tname:str,tsep:str,rsep:str,ssep:str,ns:str,fname:str,nr:lng,offset:lng,tag:oid):void
", "MASTERcopy;" ]
-[ "close", "command", "master",
"(tag:oid):void ",
"MASTERclose;"
]
-[ "delete", "pattern", "master",
"(s:str,t:str,b:bat[:oid,:any_1],tag:oid):void ",
"MASTERdelete;"
]
-[ "freeze", "command", "master", "():void ",
"MASTERfreeze;"
]
-[ "getCutOffTag", "command", "master", "():oid ",
"MASTERgetCutOffTag;"
]
-[ "getURI", "command", "master", "():str ",
"MASTERgetURI;" ]
-[ "open", "command", "master", "():oid ",
"MASTERopen;"
]
-[ "prelude", "command", "master",
"():void ",
"MASTERprelude;" ]
-[ "replay", "pattern", "master",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"MASTERreplay;"
]
-[ "sync", "command", "master",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"MASTERsync;"
]
-[ "stop", "command", "master",
"():void ",
"MASTERstop;"
]
-[ "start", "command", "master",
"():void ",
"MASTERstart;"
]
-[ "close", "command", "slave",
"(tag:oid,stamp:timestamp):void ",
"SLAVEclose;"
]
-[ "drop", "command", "slave",
"(fcnname:str):void ",
"SLAVEdrop;"
]
-[ "isprotected", "command", "slave",
"(schema:str,table:str):bit ",
"SLAVEisprotected;"
]
-[ "open", "pattern", "slave",
"(tag:oid):int ",
"SLAVEopen;"
]
-[ "prelude", "command", "slave",
"():void ",
"SLAVEprelude;"
]
-[ "protect", "command", "slave",
"(schema:str,table:str):void ",
"SLAVEprotect;"
]
-[ "synchronizing", "command", "slave", "():int ",
"SLAVEsynchronizing;"
]
-[ "stop", "command", "slave", "():void ",
"SLAVEstop;"
]
-[ "sync", "command", "slave",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"SLAVEsync;"
]
-[ "sync", "command", "slave",
"(uri:str):void ",
"SLAVEsyncURI;"
]
-[ "sync", "command", "slave",
"():void ",
"SLAVEsyncDefault;" ]
[ "editdistance2", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic2_impl;" ]
[ "editdistance", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic_impl;" ]
[ "levenshtein", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic_impl;" ]
@@ -1052,8 +1027,6 @@
[ "remoteQueries", "pattern", "optimizer", "():str ",
"OPTremoteQueries;"
]
[ "recycle", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTrecycle;"
]
[ "recycle", "pattern", "optimizer", "():str ",
"OPTrecycle;"
]
-[ "replication", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTreplication;"
]
-[ "replication", "pattern", "optimizer", "():str ",
"OPTreplication;"
]
[ "remap", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTremap;"
]
[ "remap", "pattern", "optimizer", "():str ",
"OPTremap;"
]
[ "reduce", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTreduce;"
]
@@ -5269,7 +5242,6 @@
[ "multipoint", "function", "calc",
"(wkt:str):wkb;",
"nil" ]
[ "mbr", "command", "calc", "(v:mbr):mbr
",
"mbrFromMBR;" ]
[ "mbr", "command", "calc", "(v:str):mbr
",
"mbrFromString;" ]
-[ "month_interval", "command", "calc",
"(v:daytime,ek:int,sk:int):int ",
"month_interval_daytime;" ]
[ "month_interval", "command", "calc",
"(v:lng,ek:int,sk:int):int ",
"month_interval_lng;" ]
[ "month_interval", "command", "calc",
"(v:wrd,ek:int,sk:int):int ",
"month_interval_wrd;" ]
[ "month_interval", "command", "calc",
"(v:int,ek:int,sk:int):int ",
"month_interval_int;" ]
diff --git a/monetdb5/modules/mal/Tests/inspect05.stable.out.Windows
b/monetdb5/modules/mal/Tests/inspect05.stable.out.Windows
--- a/monetdb5/modules/mal/Tests/inspect05.stable.out.Windows
+++ b/monetdb5/modules/mal/Tests/inspect05.stable.out.Windows
@@ -890,31 +890,6 @@
[ "encode", "command", "zorder",
"(x:int,y:int):oid ",
"ZORDencode_int_oid;"
]
[ "slice", "command", "zorder",
"(xb:int,yb:int,xt:int,yt:int):bat[:oid,:oid] ",
"ZORDslice_int;"
]
[ "sql_slice", "command", "zorder",
"(xb:int,yb:int,xt:int,yt:int):bat[:str,:BAT] ",
"ZORDsql_slice_int;"
]
-[ "append", "pattern", "master",
"(mvc:ptr,s:str,t:str,c:str,b:bat[:oid,:any_1],tag:oid):ptr ",
"MASTERappend;"
]
-[ "append", "pattern", "master",
"(mvc:ptr,s:str,t:str,c:str,_5:any_1,tag:oid):ptr ",
"MASTERappendValue;"
]
-[ "copy", "pattern", "master",
"(sname:str,tname:str,tsep:str,rsep:str,ssep:str,ns:str,fname:str,nr:lng,offset:lng,tag:oid):void
", "MASTERcopy;" ]
-[ "close", "command", "master",
"(tag:oid):void ",
"MASTERclose;"
]
-[ "delete", "pattern", "master",
"(s:str,t:str,b:bat[:oid,:any_1],tag:oid):void ",
"MASTERdelete;"
]
-[ "freeze", "command", "master", "():void ",
"MASTERfreeze;"
]
-[ "getCutOffTag", "command", "master", "():oid ",
"MASTERgetCutOffTag;"
]
-[ "getURI", "command", "master", "():str ",
"MASTERgetURI;" ]
-[ "open", "command", "master", "():oid ",
"MASTERopen;"
]
-[ "prelude", "command", "master",
"():void ",
"MASTERprelude;" ]
-[ "replay", "pattern", "master",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"MASTERreplay;"
]
-[ "sync", "command", "master",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"MASTERsync;"
]
-[ "stop", "command", "master",
"():void ",
"MASTERstop;"
]
-[ "start", "command", "master",
"():void ",
"MASTERstart;"
]
-[ "close", "command", "slave",
"(tag:oid,stamp:timestamp):void ",
"SLAVEclose;"
]
-[ "drop", "command", "slave",
"(fcnname:str):void ",
"SLAVEdrop;"
]
-[ "isprotected", "command", "slave",
"(schema:str,table:str):bit ",
"SLAVEisprotected;"
]
-[ "open", "pattern", "slave",
"(tag:oid):int ",
"SLAVEopen;"
]
-[ "prelude", "command", "slave",
"():void ",
"SLAVEprelude;"
]
-[ "protect", "command", "slave",
"(schema:str,table:str):void ",
"SLAVEprotect;"
]
-[ "synchronizing", "command", "slave", "():int ",
"SLAVEsynchronizing;"
]
-[ "stop", "command", "slave", "():void ",
"SLAVEstop;"
]
-[ "sync", "command", "slave",
"(uri:str,usr:str,pw:str,tag:oid):void ",
"SLAVEsync;"
]
-[ "sync", "command", "slave",
"(uri:str):void ",
"SLAVEsyncURI;"
]
-[ "sync", "command", "slave",
"():void ",
"SLAVEsyncDefault;" ]
[ "editdistance2", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic2_impl;" ]
[ "editdistance", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic_impl;" ]
[ "levenshtein", "command", "txtsim",
"(s:str,t:str):int ",
"levenshteinbasic_impl;" ]
@@ -1052,8 +1027,6 @@
[ "remoteQueries", "pattern", "optimizer", "():str ",
"OPTremoteQueries;"
]
[ "recycle", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTrecycle;"
]
[ "recycle", "pattern", "optimizer", "():str ",
"OPTrecycle;"
]
-[ "replication", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTreplication;"
]
-[ "replication", "pattern", "optimizer", "():str ",
"OPTreplication;"
]
[ "remap", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTremap;"
]
[ "remap", "pattern", "optimizer", "():str ",
"OPTremap;"
]
[ "reduce", "pattern", "optimizer",
"(mod:str,fcn:str):str ",
"OPTreduce;"
]
@@ -5269,7 +5242,6 @@
[ "multipoint", "function", "calc",
"(wkt:str):wkb;",
"nil" ]
[ "mbr", "command", "calc", "(v:mbr):mbr
",
"mbrFromMBR;" ]
[ "mbr", "command", "calc", "(v:str):mbr
",
"mbrFromString;" ]
-[ "month_interval", "command", "calc",
"(v:daytime,ek:int,sk:int):int ",
"month_interval_daytime;" ]
[ "month_interval", "command", "calc",
"(v:lng,ek:int,sk:int):int ",
"month_interval_lng;" ]
[ "month_interval", "command", "calc",
"(v:wrd,ek:int,sk:int):int ",
"month_interval_wrd;" ]
[ "month_interval", "command", "calc",
"(v:int,ek:int,sk:int):int ",
"month_interval_int;" ]
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -483,7 +483,7 @@
rel_update_hash_idx(mvc *sql, sql_idx *i, sql_rel *updates)
{
node *m;
- sql_subtype *it, *wrd;
+ sql_subtype *it, *wrd = 0; /* is not set in first if below */
int bits = 1 + ((sizeof(wrd)*8)-1)/(list_length(i->columns)+1);
sql_exp *h = NULL;
@@ -570,7 +570,7 @@
sql_subtype *bt = sql_bind_localtype("bit");
sql_subfunc *or = sql_bind_func_result(sql->sa, sql->session->schema,
"or", bt, bt, bt);
- sql_rel *_nlls, *nnlls, *ups = updates->r;
+ sql_rel *_nlls = NULL, *nnlls, *ups = updates->r;
sql_exp *nll_exps = NULL, *e;
list *join_exps = new_exp_list(sql->sa);
diff --git a/tools/merovingian/daemon/controlrunner.c
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -50,7 +50,7 @@
{
char buf[128];
snprintf(buf, sizeof(buf),
- "LEAV %s mapi:monetdb://%s:%hu/",
+ "LEAV %s mapi:monetdb://%s:%hd/",
name, _mero_hostname,
(unsigned int)getConfNum(_mero_props, "port"));
broadcast(buf);
@@ -79,7 +79,7 @@
shared = getConfVal(props, "shared");
if (stats->locked != 1 && (shared == NULL || strcmp(shared, "no") !=
0)) {
snprintf(buf, sizeof(buf),
- "ANNC %s%s%s mapi:monetdb://%s:%hu/ %d",
+ "ANNC %s%s%s mapi:monetdb://%s:%hd/ %d",
stats->dbname,
shared == NULL ? "" : "/",
shared == NULL ? "" : shared,
diff --git a/tools/merovingian/daemon/discoveryrunner.c
b/tools/merovingian/daemon/discoveryrunner.c
--- a/tools/merovingian/daemon/discoveryrunner.c
+++ b/tools/merovingian/daemon/discoveryrunner.c
@@ -345,7 +345,7 @@
/* craft ANNC message for this db */
if (strcmp(val, "yes") == 0)
val = "";
- snprintf(buf, 512, "ANNC %s%s%s
mapi:monetdb://%s:%hu/ %d",
+ snprintf(buf, 512, "ANNC %s%s%s
mapi:monetdb://%s:%hd/ %d",
stats->dbname, val[0]
== '\0' ? "" : "/", val,
_mero_hostname,
getConfNum(_mero_props, "port"),
discttl->ival + 60);
@@ -360,7 +360,7 @@
controlport = (unsigned int)getConfNum(_mero_props,
"controlport");
if (controlport != 0) {
/* announce control port */
- snprintf(buf, 512, "ANNC * %s:%hu %d",
+ snprintf(buf, 512, "ANNC * %s:%hd %d",
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list
