Changeset: fad4a317b5ee for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fad4a317b5ee
Modified Files:
        sql/server/rel_exp.h
        sql/server/rel_psm.c
        sql/server/rel_select.c
Branch: Jul2015
Log Message:

fix for bug 3968


diffs (52 lines):

diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h
--- a/sql/server/rel_exp.h
+++ b/sql/server/rel_exp.h
@@ -11,6 +11,8 @@
 
 #include "sql_mvc.h"
 
+#define ERR_AMBIGUOUS          050000
+
 #define new_exp_list(sa) sa_list(sa)
 #define exp2list(sa,e)   append(sa_list(sa),e)
 
diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -601,6 +601,14 @@ sequential_block (mvc *sql, sql_subtype 
        return l;
 }
 
+static int
+arg_cmp(void *A, void *N) 
+{
+       sql_arg *a = A;
+       char *name = N;
+       return strcmp(a->name, name);
+}
+
 static list *
 result_type(mvc *sql, symbol *res) 
 {
@@ -617,6 +625,9 @@ result_type(mvc *sql, symbol *res)
                for(;n; n = n->next->next) {
                        sql_subtype *ct = &n->next->data.typeval;
 
+                       if (list_find(types, n->data.sval, &arg_cmp) != NULL)
+                               return sql_error(sql, ERR_AMBIGUOUS, "CREATE 
FUNC: identifier '%s' ambiguous", n->data.sval);
+
                        a = sql_create_arg(sql->sa, n->data.sval, ct, ARG_OUT);
                        list_append(types, a);
                }
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -23,8 +23,6 @@
 #include "mal.h"               /* for have_hge */
 #endif
 
-#define ERR_AMBIGUOUS          050000
-
 sql_rel *
 rel_dup(sql_rel *r)
 {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to