Changeset: 7c23583721e8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7c23583721e8
Modified Files:
        sql/src/backends/monet5/sql_gencode.mx
        sql/src/sql/createdb.mx
        sql/src/sql/url.sql
Branch: default
Log Message:

fixed monet5_resolve_function. Found some incorrect functions definitions with 
it.


diffs (65 lines):

diff -r 4ef6216b1f2f -r 7c23583721e8 sql/src/backends/monet5/sql_gencode.mx
--- a/sql/src/backends/monet5/sql_gencode.mx    Sat Dec 18 13:03:26 2010 +0100
+++ b/sql/src/backends/monet5/sql_gencode.mx    Sat Dec 18 13:59:49 2010 +0100
@@ -2303,12 +2303,29 @@
 int 
 monet5_resolve_function(ptr M, sql_func *f)
 {
-       mvc *m = (mvc*)M;
-       Client c = MCgetClient(m->clientid);
+       mvc *sql = (mvc*)M;
+       Client c = MCgetClient(sql->clientid);
+       Module m;
 
-       if (!findSymbol(c->nspace, f->mod, f->imp)) 
-               return 0;
-       return 1;
+// fails to search outer modules!
+//     if (!findSymbol(c->nspace, f->mod, f->imp)) 
+//             return 0;
+
+        for (m = findModule(c->nspace, f->mod); m; m= m->outer)
+               if (strcmp(m->name, f->mod) == 0) {
+                       Symbol s = m->subscope[(int)(getSubScope(f->imp))];
+                       for(; s; s = s->peer) {
+                               InstrPtr sig = getSignature(s);
+                               int argc = sig->argc - sig->retc;
+
+                               if (strcmp(s->name, f->imp) == 0 &&
+                                   ((!f->ops && argc == 0) ||
+                                    list_length(f->ops) == argc)){
+                                       return 1;
+                       }
+                }
+        }
+       return 0;
 /*
        node *n;
        newFcnCall(f->mod, f->imp);
diff -r 4ef6216b1f2f -r 7c23583721e8 sql/src/sql/createdb.mx
--- a/sql/src/sql/createdb.mx   Sat Dec 18 13:03:26 2010 +0100
+++ b/sql/src/sql/createdb.mx   Sat Dec 18 13:59:49 2010 +0100
@@ -72,8 +72,8 @@
 
 -- The environment table
 create function environment()
-       returns table (nme string, val string)
-       external name sql.environment;
+       returns table ("name" string, value string)
+       external name sql.sql_environment;
 
 -- The BAT buffer pool overview
 create function bbp () 
diff -r 4ef6216b1f2f -r 7c23583721e8 sql/src/sql/url.sql
--- a/sql/src/sql/url.sql       Sat Dec 18 13:03:26 2010 +0100
+++ b/sql/src/sql/url.sql       Sat Dec 18 13:59:49 2010 +0100
@@ -46,7 +46,7 @@
        EXTERNAL NAME url."isaURL";
 CREATE function newurl(protocol STRING, hostname STRING, "port" INT, file 
STRING) 
        RETURNS url       
-       EXTERNAL NAME url."newUrl";
+       EXTERNAL NAME url."new";
 CREATE function newurl(protocol STRING, hostname STRING, file STRING) 
        RETURNS url 
-       EXTERNAL NAME url."newurl";
+       EXTERNAL NAME url."new";
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to