From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng1.m.smailru.net (smtpng1.m.smailru.net [94.100.181.251]) (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 0D303469719 for ; Sun, 27 Sep 2020 18:18:07 +0300 (MSK) From: Mergen Imeev Message-ID: <66362762-8791-bea3-745f-afc1e3eaa199@tarantool.org> Date: Sun, 27 Sep 2020 18:18:00 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Subject: [Tarantool-discussions] SQL built-in functions position List-Id: Tarantool development process List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Gulutzan , Vladislav Shpilevoy , Nikita Pettik , kyukhin@tarantool.org, tsafin@tarantool.org, sergos@tarantool.org Cc: tarantool-discussions@dev.tarantool.org Hi all. I have a question that I would like to discuss. The question is about SQL built-in functions. At the moment these functions are partially described in _func and partially in src/box/sql/func.c. I received two completely different suggestions from my reviewers on what to do with these functions: 1) Move definitions completely to _func. Remove definitions from func.c. 2) Move definitions completely to func.c. Remove definitions from _func. In the first case, users will be able to see the function definitions. Also, in the future, we may allow these functions to be called from Lua (although not sure if this is necessary). The main idea is 'all functions have the same interface'. In the second case, the implementation is simpler, and we can more easily implement some features, such as "virtual" functions. For users, the definition can only be seen in the documentation. The main idea is 'SQL built-in functions are part of SQL'. Which of these approaches do you think is more beneficial to us?