Changeset: 895515c4cf65 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=895515c4cf65
Modified Files:
        sql/backends/monet5/sql_gencode.mx
        sql/server/sql_psm.c
Branch: Mar2011
Log Message:

fixed bug 2786
we need to instantiate functions in the proper schema context.


diffs (33 lines):

diff --git a/sql/backends/monet5/sql_gencode.mx 
b/sql/backends/monet5/sql_gencode.mx
--- a/sql/backends/monet5/sql_gencode.mx
+++ b/sql/backends/monet5/sql_gencode.mx
@@ -2350,6 +2350,7 @@
 backend_create_func(backend *be, sql_func *f)
 {
        mvc *m = be->mvc;
+       sql_schema *schema = m->session->schema;
        MalBlkPtr curBlk = 0;
        InstrPtr curInstr = 0;
        Client c = be->client;
@@ -2363,7 +2364,9 @@
                return;
        f->sql++;
        sa = sa_create();
+       m->session->schema = f->s;
        s = sql_parse(m, sa, f->query, m_instantiate);
+       m->session->schema = schema;
        if (s && !f->sql) /* native function */
                return;
 
diff --git a/sql/server/sql_psm.c b/sql/server/sql_psm.c
--- a/sql/server/sql_psm.c
+++ b/sql/server/sql_psm.c
@@ -616,6 +616,8 @@
                                        sql_func *f = mvc_create_func(sql, 
sql->session->schema, fname, l, restype, is_aggr, fmod, fnme, q, is_func);
                                        if (!backend_resolve_function(sql, f)) 
                                                return sql_error(sql, 01, 
"CREATE %s: external name %s.%s not bound", F, fmod, fnme);
+                               } else if (!sf) {
+                                       return sql_error(sql, 01, "CREATE %s: 
external name %s.%s not bound (%s,%s)", F, fmod, fnme, s->base.name, fname );
                                } else {
                                        sql_func *f = sf->func;
                                        f->mod = _strdup(fmod);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to