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