From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 13BDE7034B; Fri, 6 Aug 2021 01:18:25 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 13BDE7034B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1628201905; bh=LegAvg9aT9KwDh/zmsp2Dj3m2Vt8l9kBiL2V/Aow7rA=; h=To:Cc:References:Date:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=qnkZT2rW+t5DKtMRYqC6pQpbm2S5G1tSKkhtjIGFGNmcqpnB0S4e5IeBZiDcnAuqy HNNZbIjBTgwDId2gXdGoZUQIXROe1TwXc2ORYZu7stOe0M+EVFuOx5thPzx4HIwx2K Dfb+LxYQIcHoYCsTGu756TCOjwZTSvAF7cAh9TZM= Received: from smtp32.i.mail.ru (smtp32.i.mail.ru [94.100.177.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 0E8327034B for ; Fri, 6 Aug 2021 01:18:24 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 0E8327034B Received: by smtp32.i.mail.ru with esmtpa (envelope-from ) id 1mBlh1-0004Hk-Aq; Fri, 06 Aug 2021 01:18:23 +0300 To: imeevma@tarantool.org Cc: tarantool-patches@dev.tarantool.org References: <9addd684c79a460bbf20970f88e056cb18492465.1628081224.git.imeevma@gmail.com> Message-ID: Date: Fri, 6 Aug 2021 00:18:22 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <9addd684c79a460bbf20970f88e056cb18492465.1628081224.git.imeevma@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-7564579A: 78E4E2B564C1792B X-77F55803: 4F1203BC0FB41BD92087353F0EC44DD9ECFD080E047A606F56291F8739A291D6182A05F5380850400EFE9371B51758ECD34C0777DBF5FD172B8CFEA282F3519ED48B13260C61623A X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7B9115C1E69829868EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063770519A3AF4A224F58638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8B32CCFCCF632169207F829CD6886409D117882F4460429724CE54428C33FAD305F5C1EE8F4F765FCAA867293B0326636D2E47CDBA5A96583BD4B6F7A4D31EC0BC014FD901B82EE079FA2833FD35BB23D27C277FBC8AE2E8BAA867293B0326636D2E47CDBA5A96583BA9C0B312567BB2376E601842F6C81A19E625A9149C048EEB28585415E75ADA97C6FCE95544A9834D8FC6C240DEA7642DBF02ECDB25306B2B78CF848AE20165D0A6AB1C7CE11FEE3C2B5EEE3591E0D359735652A29929C6CC4224003CC836476D4B77803BCCA332EE2021AF6380DFAD1A18204E546F3947CB11811A4A51E3B096D1867E19FE1407959CC434672EE6371089D37D7C0E48F6C8AA50765F7900637C970FD8DF19C51D2EFF80C71ABB335746BA297DBC24807EABDAD6C7F3747799A X-B7AD71C0: AC4F5C86D027EB782CDD5689AFBDA7A213B5FB47DCBC3458F0AFF96BAACF4158235E5A14AD4A4A4625E192CAD1D9E79D94463893BF8742D0F47124ABC0359EA3 X-C1DE0DAB: 0D63561A33F958A5052BB003E169FC34AA9AD31301CAA9FF0B3F8F942121AD4CD59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA7501A9DF589746230F410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34D8C933888226C841ADE123F2779D85AD718E0F3DDB58B1A8B2BDB27E60FF3EBD6B78789448B9175A1D7E09C32AA3244C285DCD3FDBA4C174D499BCFBFD92F0A3435BF7150578642F729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojFhlvmGwdUwRcP8lOQmj+ag== X-Mailru-Sender: 1F3202E75A95DDEFC23907419AE0C7D72052D98CF1615A8F91F60EE60A75B54EC298FC30913A72CA07784C02288277CA03E0582D3806FB6A5317862B1921BA260ED6CFD6382C13A6112434F685709FCF0DA7A0AF5A3A8387 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v2 5/6] alter: disallow creation of SQL built-in function X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Vladislav Shpilevoy via Tarantool-patches Reply-To: Vladislav Shpilevoy Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Thanks for the patch! > diff --git a/src/box/alter.cc b/src/box/alter.cc > index 217b882ba..fd9921ae0 100644 > --- a/src/box/alter.cc > +++ b/src/box/alter.cc > @@ -3213,6 +3213,36 @@ on_replace_dd_user(struct trigger * /* trigger */, void *event) > return 0; > } > > +/** > + * Check if the version of the data dictionary is lower than 2.9.0 and return > + * new func def if it is the case. If it is the case, then it is possible to > + * insert values with the "SQL_BUILTIN" language into _func, otherwise it is > + * prohibited. This is for upgradeability from 2.1.3 to 2.3.0. Since all we need > + * is to allow such inserts, we set func def to its default values. > + */ > +static int > +func_def_new_sql_built_in(struct func_def *def) 1. 'new' stands for new memory allocation. Here you need to use 'create'. > +{ > + if (dd_version_id >= version_id(2, 9, 0)) { > + diag_set(ClientError, ER_FUNCTION_LANGUAGE, "SQL_BUILTIN", > + def->name); > + return -1; > + } > + def->body = NULL; > + def->comment = NULL; > + def->setuid = 1; > + def->is_deterministic = false; > + def->is_sandboxed = false; > + def->param_count = 0; > + def->returns = FIELD_TYPE_ANY; > + def->aggregate = FUNC_AGGREGATE_NONE; > + def->language = FUNC_LANGUAGE_LUA; > + def->exports.lua = true; > + def->exports.sql = true; > + func_opts_create(&def->opts); > + return 0; > +} > + > /** > * Get function identifiers from a tuple. > * > @@ -3344,6 +3374,14 @@ func_def_new_from_tuple(struct tuple *tuple) > language, def->name); > return NULL; > } > + if (def->language == FUNC_LANGUAGE_SQL_BUILTIN) { 2. Is it possible to just skip such functions when the schema is old? Simply not create anything for them assuming that they will be deleted right afterwards. Not even store them in the func hash. Like they do not exist. Then you can also drop sql_builtin support from func_def_check().