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