Changeset: 33dd244bd066 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/33dd244bd066 Modified Files: sql/storage/bat/bat_table.c Branch: Jul2021 Log Message:
Look for errors diffs (88 lines): diff --git a/sql/storage/bat/bat_table.c b/sql/storage/bat/bat_table.c --- a/sql/storage/bat/bat_table.c +++ b/sql/storage/bat/bat_table.c @@ -279,13 +279,16 @@ table_orderby(sql_trans *tr, sql_table * gdk_return ret; cr = delta_cands(tr, jr->t); - if (cr == NULL) { + lcb = full_column(tr, jl); + rcb = full_column(tr, jr); + if (!cr || !lcb || !rcb) { bat_destroy(cl); + bat_destroy(cr); + bat_destroy(lcb); + bat_destroy(rcb); return NULL; } - lcb = full_column(tr, jl); - rcb = full_column(tr, jr); ret = BATjoin(&l, &r, lcb, rcb, cl, cr, false, BATcount(lcb)); bat_destroy(cl); bat_destroy(cr); @@ -296,21 +299,24 @@ table_orderby(sql_trans *tr, sql_table * cl = l; cr = r; } - /* we assume 1->n joins, therefor first join between jl2/jr2 */ + /* we assume 1->n joins, therefore first join between jl2/jr2 */ if (jl2 && jr2) { assert(jr->t == jl2->t); BAT *lcb, *rcb, *r = NULL, *l = NULL; gdk_return ret; cr2 = delta_cands(tr, jr2->t); - if (cr2 == NULL) { + lcb = full_column(tr, jl2); + rcb = full_column(tr, jr2); + if (!cr2 || !lcb || !rcb) { bat_destroy(cl); bat_destroy(cr); + bat_destroy(cr2); + bat_destroy(lcb); + bat_destroy(rcb); return NULL; } - lcb = full_column(tr, jl2); - rcb = full_column(tr, jr2); l = BATproject(cr, lcb); /* project because cr is join result */ bat_destroy(lcb); lcb = l; @@ -481,6 +487,12 @@ rids_select( sql_trans *tr, sql_column * kvh = va_arg(va, void *); b = full_column(tr, key); + if (b == NULL) { + bat_destroy(s); + GDKfree(rs); + va_end(va); + return NULL; + } if (!kvl) kvl = ATOMnilptr(b->ttype); if (!kvh && kvl != ATOMnilptr(b->ttype)) @@ -511,6 +523,8 @@ rids_orderby(sql_trans *tr, rids *r, sql BAT *b, *s, *o; b = full_column(tr, orderby_col); + if (!b) + return NULL; s = BATproject(r->data, b); bat_destroy(b); if (BATsort(NULL, &o, NULL, s, NULL, NULL, false, false, false) != GDK_SUCCEED) { @@ -571,6 +585,13 @@ rids_join(sql_trans *tr, rids *l, sql_co lcb = full_column(tr, lc); rcb = full_column(tr, rc); + if (!lcb || !rcb) { + bat_destroy(l->data); + l->data = NULL; + bat_destroy(lcb); + bat_destroy(rcb); + return NULL; + } ret = BATjoin(&s, NULL, lcb, rcb, l->data, r->data, false, BATcount(lcb)); bat_destroy(l->data); if (ret != GDK_SUCCEED) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list