From: Konstantin Osipov <kostja.osipov@gmail.com> To: Nikita Pettik <korablev@tarantool.org> Cc: tarantool-patches@dev.tarantool.org, Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH] box: remove unicode_ci for functions Date: Mon, 2 Dec 2019 17:49:27 +0300 [thread overview] Message-ID: <20191202144927.GB6859@atlas> (raw) In-Reply-To: <20191202143633.GA51923@tarantool.org> * Nikita Pettik <korablev@tarantool.org> [19/12/02 17:39]: > On 02 Dec 10:07, Konstantin Osipov wrote: > > * Vladislav Shpilevoy <v.shpilevoy@tarantool.org> [19/12/01 19:29]: > > > >> Unicode_ci collation breaks the general > > > >> rule for objects naming, so we remove it > > > >> in version 2.3.1 > > > > > > > > The code works according to RFC. > > > > > > > > There is a justification for this behaviour in RFC. > > > > Please see my reply with an explanation. The RFC was written > > presuming https://github.com/tarantool/tarantool/issues/4467 > > will be fixed. > > According to milestone (which is 'feature'), it is not going to be > implemented soon. What is more, there's even no clearly stated proposal > or RFC without contradictions. Uhm, you could of course shift the burden on me for writing RFC and do nothing on this premise. But come on, ask users how much pain the uppercasing is making. It is not about me having my way, it is about fixing a broken implementation. As to contradictions of RFC, well, there was some ambiguity in what I initially suggested, but it was later resolved in the comments to the ticket. > > ''' > To avoid name clash, we will reserve these names by adding entries for them in _func system space. > ''' > > That's all. > > I can't figure out what did author really mean by 'name clash'. > We are able to create two different objects (of any kind: space, > trigger etc) with the same in terms of case-insensetive collation > (e.g. "t1" and "T1"). Why this rule should be violated for functions? The idea of _ci is that SQL function lookup never returns a non-builtin function for a built-in function. I guess as long as SQL uppercases the name before lookup, this won't happen even if the collation is case-sensitive - all the uppercase names are reserved already. But imagine we stop uppercasing, as 4467 suggests. Then, unless the collation is _ci, another function will be returned, if it exists, say, for a lowercase use of the name. This is why _ci is in there - to prevent two functions with the same name (but different casing) to ever exist. This will also help with SQL/PSM name lookup, not just built-ins, when SQL/PSM is in. Since SQL/PSM functions are also case-insensitive, when I invoke a UDF from SQL/PSM I want to avoid ambiguity as well - and I can't prevent it by "reserving" all UDFs used for SQL/PSM. E.g. imagine I have box.schema.func.create("foo", ...) called from Lua. Later I do CREATE FUNCTION foo ... using SQL. The name will be uppercased and the function will be created. I would like to avoid this. -- Konstantin Osipov, Moscow, Russia
next prev parent reply other threads:[~2019-12-02 14:49 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-29 23:39 Chris Sosnin 2019-11-30 20:34 ` Konstantin Osipov 2019-12-01 14:12 ` k.sosnin 2019-12-01 14:36 ` Vladislav Shpilevoy 2019-12-02 7:07 ` Konstantin Osipov 2019-12-02 14:36 ` Nikita Pettik 2019-12-02 14:49 ` Konstantin Osipov [this message] 2019-12-06 11:42 ` Kirill Yukhin 2019-12-06 20:17 ` Konstantin Osipov 2019-12-09 11:06 ` Kirill Yukhin 2019-12-09 11:24 ` Konstantin Osipov 2019-12-09 13:25 ` Kirill Yukhin 2019-12-09 13:39 ` Konstantin Osipov 2019-12-09 14:07 ` Nikita Pettik 2019-12-09 23:09 ` Vladislav Shpilevoy 2019-12-10 8:19 ` Konstantin Osipov 2019-12-10 12:44 ` Kirill Yukhin
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=20191202144927.GB6859@atlas \ --to=kostja.osipov@gmail.com \ --cc=korablev@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH] box: remove unicode_ci for functions' \ /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