From 2203d420c6b7ea0f9279f8db5d6e6e7cb79d5413 Mon Sep 17 00:00:00 2001 From: Aleksandr Lyapunov <alyapunov@tarantool.org> Date: Tue, 22 Aug 2023 18:57:22 +0300 Subject: [PATCH] sql: don't catch OOM in sql_select_expand_from_tables Since we panic on OOM now, no OOM error handling is needed now. Fix both internals of the function and how it is used in alter. NO_DOC=refactoring NO_CHANGELOG=reafactoring NO_TEST=refactoring --- src/box/alter.cc | 2 -- src/box/sql.h | 1 - src/box/sql/select.c | 13 ++++--------- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/box/alter.cc b/src/box/alter.cc index 1ffe1c2ffb..ab529862e2 100644 --- a/src/box/alter.cc +++ b/src/box/alter.cc @@ -1910,8 +1910,6 @@ update_view_references(struct Select *select, int update_value, { assert(update_value == 1 || update_value == -1); struct SrcList *list = sql_select_expand_from_tables(select); - if (list == NULL) - return -1; int from_tables_count = sql_src_list_entry_count(list); for (int i = 0; i < from_tables_count; ++i) { const char *space_name = sql_src_list_entry_name(list, i); diff --git a/src/box/sql.h b/src/box/sql.h index aa06a51a0a..965abdd3ab 100644 --- a/src/box/sql.h +++ b/src/box/sql.h @@ -285,7 +285,6 @@ sql_select_delete(struct Select *select); * * @param select Select to be investigated. * @retval List containing all involved table names. - * NULL in case of OOM. */ struct SrcList * sql_select_expand_from_tables(struct Select *select); diff --git a/src/box/sql/select.c b/src/box/sql/select.c index 1d12b3b562..4ccba54929 100644 --- a/src/box/sql/select.c +++ b/src/box/sql/select.c @@ -489,9 +489,7 @@ src_list_append_unique(struct SrcList *list, const char *new_name) if (name != NULL && strcmp(new_name, name) == 0) return list; } - struct SrcList *new_list = - sql_src_list_enlarge(list, 1, list->nSrc); - list = new_list; + list = sql_src_list_enlarge(list, 1, list->nSrc); struct SrcList_item *pItem = &list->a[list->nSrc - 1]; pItem->zName = sql_xstrdup(new_name); return list; @@ -508,8 +506,7 @@ select_collect_table_names(struct Walker *walker, struct Select *select) walker->u.pSrcList = src_list_append_unique(walker->u.pSrcList, select->pSrc->a[i].zName); - if (walker->u.pSrcList == NULL) - return WRC_Abort; + assert(walker->u.pSrcList != NULL); } return WRC_Continue; } @@ -524,10 +521,8 @@ sql_select_expand_from_tables(struct Select *select) walker.xExprCallback = sqlExprWalkNoop; walker.xSelectCallback = select_collect_table_names; walker.u.pSrcList = table_names; - if (sqlWalkSelect(&walker, select) != 0) { - sqlSrcListDelete(walker.u.pSrcList); - return NULL; - } + int rc = sqlWalkSelect(&walker, select); + assert(rc == WRC_Continue); (void)rc; return walker.u.pSrcList; } -- GitLab