Changeset: 865d66ffe117 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=865d66ffe117
Modified Files:
        sql/storage/store.c
Branch: default
Log Message:

protect agaist missing types


diffs (33 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -522,8 +522,12 @@ load_column(sql_trans *tr, sql_table *t,
        sz = *(int *)v;                         _DELETE(v);
        v = table_funcs.column_find_value(tr, find_sql_column(columns, 
"type_scale"), rid);
        d = *(int *)v;                          _DELETE(v);
-       if (!sql_find_subtype(&c->type, tpe, sz, d))
-               sql_init_subtype(&c->type, sql_trans_bind_type(tr, t->s, tpe), 
sz, d);
+       if (!sql_find_subtype(&c->type, tpe, sz, d)) {
+               sql_type *lt = sql_trans_bind_type(tr, t->s, tpe);
+               if (lt == NULL) 
+                       GDKfatal("SQL type %s missing", tpe);
+               sql_init_subtype(&c->type, lt, sz, d);
+       }
        _DELETE(tpe);
        c->def = NULL;
        def = table_funcs.column_find_value(tr, find_sql_column(columns, 
"default"), rid);
@@ -741,8 +745,12 @@ load_arg(sql_trans *tr, sql_func * f, oi
        scale = *(int *)v;      _DELETE(v);
 
        tpe = table_funcs.column_find_value(tr, find_sql_column(args, "type"), 
rid);
-       if (!sql_find_subtype(&a->type, tpe, digits, scale))
-               sql_init_subtype(&a->type, sql_trans_bind_type(tr, f->s, tpe), 
digits, scale);
+       if (!sql_find_subtype(&a->type, tpe, digits, scale)) {
+               sql_type *lt = sql_trans_bind_type(tr, f->s, tpe);
+               if (lt == NULL) 
+                       GDKfatal("SQL type %s missing", tpe);
+               sql_init_subtype(&a->type, lt, digits, scale);
+       }
        _DELETE(tpe);
        return a;
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to