Tarantool development patches archive
 help / color / mirror / Atom feed
From: Nikita Pettik <korablev@tarantool.org>
To: Konstantin Osipov <kostja.osipov@gmail.com>,
	tarantool-patches@freelists.org,
	tarantool-patches@dev.tarantool.org,
	Kirill Shcherbatov <kshcherbatov@tarantool.org>
Subject: Re: [Tarantool-patches] [tarantool-patches] [PATCH v1 0/9] schema: rework _trigger space
Date: Wed, 16 Oct 2019 15:18:11 +0300	[thread overview]
Message-ID: <20191016121811.GA12432@tarantool.org> (raw)
In-Reply-To: <20191016111142.GA16144@atlas>

On 16 Oct 14:11, Konstantin Osipov wrote:
> * Nikita Pettik <korablev@tarantool.org> [19/10/16 14:08]:
> > > The reason to store all persistent objects of the same type in the
> > > same space is that Tarantool is designed as a multiple frontend
> > > system. I.e. tomorrow there may be another front end, not just Lua
> > > or SQL, and one doesn't want to have a separate table for each
> > > front end.
> > 
> > Let's be objective: how close we are to introduce new language in
> > Tarantool? Is there any demand for new language at all?
> 
> it is one of the tenets of the design. Should it be broken now
> just because it feels like it won't happen? I think it's a way
> broader question than the scope of this patch.

As you once said: "We're a small shop and will bother with it when there
is a real customer affected by the problem."
 
> > > If the trigger timing, action type, definer, setuid and other
> > > semantics is the same, and only the language is different, then 
> > > why duplicate the space?
> > 
> > The thing is they are not the same. In fact, set of Lua and SQL trigger's
> > features are quite different. In Lua trigger timing can be one of
> > on_replace or before_replace, meanwhile in SQL trigger timing is one of
> > BEFORE/AFTER/INSTEAD replace; In Lua action event is replace, whereas in SQL
> > it can be INSERT/DELETE/UPDATE; FOR EACH ROW/STATEMENT action in SQL, and
> > only FOR EACH ROW is available in Lua.
> 
> Right, so it's different values (today) of properties, but the properties
> are largely the same. 

Okay, let's enumerate all possible properties of _trigger space (I've taken
version from the last RFC):

- name (both have)
- func_id (only Lua)
- space_id (both have)
- type (means one of replace/connection/auth etc; only Lua)
- event (only SQL)
- action_time (SQL and Lua have sets of timings which don't intersect)
- action (only SQL)

So there are only two features in common now: name and space id.

> May I want to define a statement-level trigger in Lua in future?
> Why not?  
> 
> What are the benefits of having a separate table?

We don't have to manage and validate options that in fact are reasonable
only for SQL or Lua triggers.
 

  reply	other threads:[~2019-10-16 12:18 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 [this message]
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

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=20191016121811.GA12432@tarantool.org \
    --to=korablev@tarantool.org \
    --cc=kostja.osipov@gmail.com \
    --cc=kshcherbatov@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='Re: [Tarantool-patches] [tarantool-patches] [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