Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: Kirill Shcherbatov <kshcherbatov@tarantool.org>,
	tarantool-patches@freelists.org,
	Nikita Pettik <korablev@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [tarantool-patches] Re: [PATCH v1 0/9] schema: rework _trigger space
Date: Wed, 16 Oct 2019 22:27:15 +0200	[thread overview]
Message-ID: <e434ae2c-7455-e494-6b91-f481aa3839a5@tarantool.org> (raw)
In-Reply-To: <2d8aa615-79d7-8c04-13f3-93120f2015be@tarantool.org>

Hi!

JFY, I agree with Kirill and Kostja. Triggers are
triggers, regardless of their language. If something is
not yet supported in box triggers, it will be supported
later. We will have much more trouble with managing two
tables, than in having to validate its tuples more
rigorously. After all, tuple validation will happen just
in alter.cc and only one time. I don't see why is it such
a problem, to just validate a tuple. While having two
tables will affect the whole lifetime of a space.

On 16/10/2019 15:47, Kirill Shcherbatov wrote:
>> Strictly speaking, this relates only to NoSQL triggers.
>>
>>> <event_manipulation> STR  {"DELETE", "UPDATE", "INSERT" --
>>>                                                SQL only? - but it is possible to support it in Lua also}
>>> How is this supposed to be supported in Lua? For NoSQL triggers only "replace"
>> event is valid, which obviously is non of delete, update or insert.
> Lua has Lua triggers, right. But they have old and new tuple.
> As you know, 
> INSERT = REPLACE(old=NULL, new)
> DELETE = REPLACE(old, new=NULL)
> UPDATE = REPLACE(old, new)
> 
> So formally we may use such terminology and support corresponding
> trigger_def-based if(s) if we like it.
> 
> On the other hand some options could be banned for some engines.
> 
>>
>>> <action_timing> STR {"BEFORE", "AFTER" - both have}
>>
>> AFTER is not the same as on_replace; SQL also has INSTEAD.
> Yes, unfortunately INSTEAD OF is a different thing. And I test it in trigger_def_check
> helper.
>  
>>
>>> <code> STR (both have)
>>
>> You format missing func_id which is required for NoSQL triggers and action
>> (FOR EACH STMT/ROW) which is valid for SQL only.
> We don't have to take a reference to function object by id, it is messy.
> Let's better assemble own object using body field. 
> 

      reply	other threads:[~2019-10-16 20:22 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-14 16:03 [Tarantool-patches] " Kirill Shcherbatov
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 1/9] sql: remove redundant pointer in TriggerStep Kirill Shcherbatov
2019-10-15 15:35   ` [Tarantool-patches] [tarantool-patches] " Nikita Pettik
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 2/9] box: rename struct trigger to lua_trigger Kirill Shcherbatov
2019-10-17  7:33   ` Konstantin Osipov
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 3/9] box: introduce trigger_event_manipulation enum Kirill Shcherbatov
2019-10-17  7:35   ` Konstantin Osipov
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 4/9] box: introduce trigger_action_timing enum Kirill Shcherbatov
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 5/9] sql: use rlist to organize triggers in a list Kirill Shcherbatov
2019-10-17  7:36   ` Konstantin Osipov
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 6/9] sql: rework CREATE TABLE rule in parser Kirill Shcherbatov
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 7/9] sql: wrap all ASTs in sql_trigger_expr structure Kirill Shcherbatov
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 8/9] sql: inherit sql_trigger from a new trigger class Kirill Shcherbatov
2019-10-17  7:38   ` Konstantin Osipov
2019-10-14 16:03 ` [Tarantool-patches] [PATCH v1 9/9] schema: rework _trigger system space Kirill Shcherbatov
2019-10-17  7:44   ` Konstantin Osipov
2019-10-15 21:34 ` [Tarantool-patches] [tarantool-patches] [PATCH v1 0/9] schema: rework _trigger space Nikita Pettik
2019-10-16  5:57   ` Konstantin Osipov
2019-10-16  5:58     ` Konstantin Osipov
2019-10-16 11:07     ` Nikita Pettik
2019-10-16 11:11       ` Konstantin Osipov
2019-10-16 12:18         ` Nikita Pettik
2019-10-16 12:32           ` Konstantin Osipov
2019-10-16 12:47             ` Nikita Pettik
2019-10-16 12:53               ` Konstantin Osipov
2019-10-16 13:13                 ` Nikita Pettik
2019-10-16 14:18                   ` Konstantin Osipov
2019-10-16 12:53           ` [Tarantool-patches] [tarantool-patches] " Kirill Shcherbatov
2019-10-16 13:31             ` Nikita Pettik
2019-10-16 13:47               ` Kirill Shcherbatov
2019-10-16 20:27                 ` Vladislav Shpilevoy [this message]

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=e434ae2c-7455-e494-6b91-f481aa3839a5@tarantool.org \
    --to=v.shpilevoy@tarantool.org \
    --cc=korablev@tarantool.org \
    --cc=kshcherbatov@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='Re: [Tarantool-patches] [tarantool-patches] Re: [PATCH v1 0/9] schema: rework _trigger space' \
    /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