From: Vladislav Shpilevoy via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: imeevma@tarantool.org Cc: tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH v2 5/6] alter: disallow creation of SQL built-in function Date: Fri, 6 Aug 2021 00:18:22 +0200 [thread overview] Message-ID: <a81051de-a2c0-e7d2-8612-036b27e8099c@tarantool.org> (raw) In-Reply-To: <9addd684c79a460bbf20970f88e056cb18492465.1628081224.git.imeevma@gmail.com> 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().
next prev parent reply other threads:[~2021-08-05 22:18 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-04 12:58 [Tarantool-patches] [PATCH v2 0/6] Remove SQL built-in functions from _func Mergen Imeev via Tarantool-patches 2021-08-04 12:58 ` [Tarantool-patches] [PATCH v2 1/6] sql: introduce sql_func_flags() Mergen Imeev via Tarantool-patches 2021-08-05 22:14 ` Vladislav Shpilevoy via Tarantool-patches 2021-08-06 19:41 ` Mergen Imeev via Tarantool-patches 2021-08-04 12:58 ` [Tarantool-patches] [PATCH v2 2/6] sql: introduce sql_func_find() Mergen Imeev via Tarantool-patches 2021-08-05 22:15 ` Vladislav Shpilevoy via Tarantool-patches 2021-08-06 19:42 ` Mergen Imeev via Tarantool-patches 2021-08-04 12:58 ` [Tarantool-patches] [PATCH v2 3/6] sql: remove SQL built-in functions from _func Mergen Imeev via Tarantool-patches 2021-08-05 22:17 ` Vladislav Shpilevoy via Tarantool-patches 2021-08-06 19:45 ` Mergen Imeev via Tarantool-patches 2021-08-04 12:58 ` [Tarantool-patches] [PATCH v2 4/6] alter: parse data dictionary version Mergen Imeev via Tarantool-patches 2021-08-05 22:17 ` Vladislav Shpilevoy via Tarantool-patches 2021-08-06 19:47 ` Mergen Imeev via Tarantool-patches 2021-08-04 12:58 ` [Tarantool-patches] [PATCH v2 5/6] alter: disallow creation of SQL built-in function Mergen Imeev via Tarantool-patches 2021-08-05 22:18 ` Vladislav Shpilevoy via Tarantool-patches [this message] 2021-08-06 19:54 ` Mergen Imeev via Tarantool-patches 2021-08-04 12:58 ` [Tarantool-patches] [PATCH v2 6/6] sql: remove unnecessary function initialization Mergen Imeev via Tarantool-patches 2021-08-06 19:59 ` Mergen Imeev via Tarantool-patches 2021-08-08 12:08 ` [Tarantool-patches] [PATCH v2 0/6] Remove SQL built-in functions from _func Vladislav Shpilevoy via Tarantool-patches 2021-08-09 7:18 Mergen Imeev via Tarantool-patches 2021-08-09 7:19 ` [Tarantool-patches] [PATCH v2 5/6] alter: disallow creation of SQL built-in function Mergen Imeev via Tarantool-patches
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=a81051de-a2c0-e7d2-8612-036b27e8099c@tarantool.org \ --to=tarantool-patches@dev.tarantool.org \ --cc=imeevma@tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v2 5/6] alter: disallow creation of SQL built-in function' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox