Changeset: 6ae60fc187d5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ae60fc187d5
Modified Files:
monetdb5/mal/mal_module.c
sql/backends/monet5/sql_gencode.c
Branch: Apr2019
Log Message:
Reverted changes in mal_module and use pointer comparison to find a mal module
diffs (44 lines):
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
@@ -117,7 +117,7 @@ Module getModule(str name) {
int index = getModuleIndex(name);
Module m = moduleIndex[index];
while(m) {
- if (strcmp(name, m->name) == 0)
+ if (name == m->name)
return m;
m = m->link;
}
diff --git a/sql/backends/monet5/sql_gencode.c
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -860,19 +860,19 @@ backend_call(backend *be, Client c, cq *
int
monet5_resolve_function(ptr M, sql_func *f)
{
+ str mname = getName(f->mod), fname = getName(f->imp);
(void) M;
- for (Module m = getModule(f->mod); m; m = m->link) {
- if (strcmp(m->name, f->mod) == 0) {
- Symbol s = m->space[(int) (getSymbolIndex(f->imp))];
- for (; s; s = s->peer) {
- InstrPtr sig = getSignature(s);
- int argc = sig->argc - sig->retc;
+ if (!mname || !fname)
+ return 0;
- if (strcmp(s->name, f->imp) == 0 && ((!f->ops
&& argc == 0) || list_length(f->ops) == argc || (sig->varargs & VARARGS) ==
VARARGS))
- return 1;
+ for (Module m = getModule(mname); m; m = m->link) {
+ for (Symbol s = findSymbolInModule(m, fname); s; s = s->peer) {
+ InstrPtr sig = getSignature(s);
+ int argc = sig->argc - sig->retc;
- }
+ if ((!f->ops && argc == 0) || list_length(f->ops) ==
argc || (sig->varargs & VARARGS) == VARARGS)
+ return 1;
}
}
return 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list