Changeset: 17cc416f7c3f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=17cc416f7c3f
Modified Files:
        sql/include/sql_catalog.h
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/storage/sql_catalog.c
        sql/storage/store.c
Branch: nospare
Log Message:

types aren't unique (we use the systemname which could be used many times for 
different sql types)

(cleanup of some more unused functions)


diffs (139 lines):

diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -772,11 +772,7 @@ extern sql_schema *find_sql_schema_id(sq
 extern sql_type *find_sql_type(sql_trans *tr, sql_schema * s, const char 
*tname);
 extern sql_type *sql_trans_bind_type(sql_trans *tr, sql_schema *s, const char 
*name);
 extern sql_type *sql_trans_find_type(sql_trans *tr, sql_schema *s /*optional 
*/, sqlid id);
-
-extern sql_func *find_sql_func(sql_trans *tr, sql_schema * s, const char 
*tname);
-extern sql_func *sql_trans_bind_func(sql_trans *tr, const char *name);
 extern sql_func *sql_trans_find_func(sql_trans *tr, sqlid id);
-
 extern sql_trigger *sql_trans_find_trigger(sql_trans *tr, sqlid id);
 
 extern void *sql_values_list_element_validate_and_insert(void *v1, void *v2, 
void *tpe, int* res);
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -902,14 +902,6 @@ schema_bind_type(mvc *sql, sql_schema *s
        return t;
 }
 
-sql_func *
-mvc_bind_func(mvc *sql, const char *name)
-{
-       sql_func *t = sql_trans_bind_func(sql->session->tr, name);
-       TRC_DEBUG(SQL_TRANS, "Bind function: %s\n", name);
-       return t;
-}
-
 sql_schema *
 mvc_bind_schema(mvc *m, const char *sname)
 {
diff --git a/sql/server/sql_mvc.h b/sql/server/sql_mvc.h
--- a/sql/server/sql_mvc.h
+++ b/sql/server/sql_mvc.h
@@ -185,7 +185,6 @@ extern str mvc_release(mvc *c, const cha
 
 extern sql_type *mvc_bind_type(mvc *sql, const char *name);
 extern sql_type *schema_bind_type(mvc *sql, sql_schema * s, const char *name);
-extern sql_func *mvc_bind_func(mvc *sql, const char *name);
 
 sql_export sql_schema *mvc_bind_schema(mvc *c, const char *sname);
 sql_export sql_table *mvc_bind_table(mvc *c, sql_schema *s, const char *tname);
diff --git a/sql/storage/sql_catalog.c b/sql/storage/sql_catalog.c
--- a/sql/storage/sql_catalog.c
+++ b/sql/storage/sql_catalog.c
@@ -277,7 +277,16 @@ find_sql_schema_id(sql_trans *tr, sqlid 
 sql_type *
 find_sql_type(sql_trans *tr, sql_schema *s, const char *tname)
 {
-       return (sql_type*)os_find_name(s->types, tr, tname);
+       struct os_iter oi;
+
+       os_iterator(&oi, s->types, tr, NULL);
+       for (sql_base *b = oi_next(&oi); b; b = oi_next(&oi)) {
+               sql_type *t = (sql_type*)b;
+
+               if (strcmp(t->sqlname, tname) == 0)
+                       return t;
+       }
+       return NULL;
 }
 
 sql_type *
@@ -317,26 +326,6 @@ sql_trans_find_type(sql_trans *tr, sql_s
 }
 
 sql_func *
-find_sql_func(sql_trans *tr, sql_schema *s, const char *tname)
-{
-       return (sql_func*)os_find_name(s->funcs, tr, tname);
-}
-
-sql_func *
-sql_trans_bind_func(sql_trans *tr, const char *name)
-{
-       struct os_iter oi;
-       os_iterator(&oi, tr->cat->schemas, tr, NULL);
-       for (sql_base *b = oi_next(&oi); b; b = oi_next(&oi)) {
-               sql_schema *s = (sql_schema*)b;
-               sql_func *f = find_sql_func(tr, s, name);
-               if (f)
-                       return f;
-       }
-       return NULL;
-}
-
-sql_func *
 sql_trans_find_func(sql_trans *tr, sqlid id)
 {
        struct os_iter oi;
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1053,7 +1053,7 @@ load_schema(sql_trans *tr, sqlid id, oid
                s->owner = *(sqlid *)v;         _DELETE(v);
 
                s->tables = os_new(tr->sa, (destroy_fptr) &table_destroy, 
false, true);
-               s->types = os_new(tr->sa, (destroy_fptr) &type_destroy, false, 
true);
+               s->types = os_new(tr->sa, (destroy_fptr) &type_destroy, false, 
false);
                s->funcs = os_new(tr->sa, (destroy_fptr) &func_destroy, false, 
false);
                s->seqs = os_new(tr->sa, (destroy_fptr) &seq_destroy, false, 
true);
                s->keys = os_new(tr->sa, (destroy_fptr) &key_destroy, false, 
true);
@@ -1460,13 +1460,13 @@ dup_sql_type(sql_trans *tr, sql_schema *
 
                if (s->base.id == nc->type->s->base.id) {
                        /* Current user type belongs to current schema. So 
search there for current user type. */
-                       lt = find_sql_type(tr, s, nc->type->base.name);
+                       lt = find_sql_type(tr, s, nc->type->sqlname);
                } else {
                        /* Current user type belongs to another schema in the 
current transaction. Search there for current user type. */
-                       lt = sql_trans_bind_type(tr, NULL, nc->type->base.name);
+                       lt = sql_trans_bind_type(tr, NULL, nc->type->sqlname);
                }
                if (lt == NULL)
-                       GDKfatal("SQL type %s missing", nc->type->base.name);
+                       GDKfatal("SQL type %s missing", nc->type->sqlname);
                sql_init_subtype(nc, lt, nc->digits, nc->scale);
        }
 }
@@ -1621,7 +1621,7 @@ bootstrap_create_schema(sql_trans *tr, c
        s->owner = owner;
        s->system = TRUE;
        s->tables = os_new(tr->sa, (destroy_fptr) &table_destroy, false, true);
-       s->types = os_new(tr->sa, (destroy_fptr) &type_destroy, false, true);
+       s->types = os_new(tr->sa, (destroy_fptr) &type_destroy, false, false);
        s->funcs = os_new(tr->sa, (destroy_fptr) &func_destroy, false, false);
        s->seqs = os_new(tr->sa, (destroy_fptr) &seq_destroy, false, true);
        s->keys = os_new(tr->sa, (destroy_fptr) &key_destroy, false, true);
@@ -4251,7 +4251,7 @@ sql_trans_create_schema(sql_trans *tr, c
        s->owner = owner;
        s->system = FALSE;
        s->tables = os_new(tr->sa, (destroy_fptr) &table_destroy, 
isTempSchema(s), true);
-       s->types = os_new(tr->sa, (destroy_fptr) &type_destroy, 
isTempSchema(s), true);
+       s->types = os_new(tr->sa, (destroy_fptr) &type_destroy, 
isTempSchema(s), false);
        s->funcs = os_new(tr->sa, (destroy_fptr) &func_destroy, 
isTempSchema(s), false);
        s->seqs = os_new(tr->sa, (destroy_fptr) &seq_destroy, isTempSchema(s), 
true);
        s->keys = os_new(tr->sa, (destroy_fptr) &key_destroy, isTempSchema(s), 
true);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to