From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 525BA2596C for ; Thu, 7 Jun 2018 16:07:02 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pPNh-lmI6LGp for ; Thu, 7 Jun 2018 16:07:02 -0400 (EDT) Received: from smtp47.i.mail.ru (smtp47.i.mail.ru [94.100.177.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 6701A25849 for ; Thu, 7 Jun 2018 16:07:01 -0400 (EDT) Subject: [tarantool-patches] Re: [PATCH] sql: rework VIEW internals References: <1528129571.147907906@f369.i.mail.ru> From: Vladislav Shpilevoy Message-ID: Date: Thu, 7 Jun 2018 23:06:58 +0300 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: "n.pettik" , tarantool-patches@freelists.org Thanks for the fixes! See 1 comment below and a commit with my fixes on the branch right after your. Most likely, my fixes are not passing tests, so please, finish them. I fixed Select * leak on exception during trigger_new_xc, and error message. + some style fixes. > diff --git a/src/box/sql/build.c b/src/box/sql/build.c > index 28e4d7a4d..53bb53ab8 100644 > --- a/src/box/sql/build.c > +++ b/src/box/sql/build.c > @@ -2009,230 +2007,99 @@ sqlite3EndTable(Parse * pParse, /* Parse context */ > int > -sql_view_column_names(struct Parse *parse, struct Table *table) > +sql_view_assign_cursors(struct Parse *parse, const char *view_stmt) > { > + assert(view_stmt != NULL); > + struct sqlite3 *db = parse->db; > + struct Select *select = sql_view_compile(db, view_stmt); > if (select == NULL) > return -1; > - int n = parse->nTab; > sqlite3SrcListAssignCursors(parse, select->pSrc); Where do you free the struct Select? > + return 0; > }