[Maria-discuss] will maria db overcome mysqls feature limitations? (foreign keys+triggers, recursive triggers)
Hi, I was wondering if mariadb plans to overcome mysqls limitations such as - foreign key operations do not start triggers - triggers can’t be recursive (error 1442) I know that mariadb wants to be compatible with mysql but maybe these features could be optional? The mysql/mariadb comparison shows additional features which wont break compatibility I guess because they don’t exist in mysql (yet?). But besides additional features, is there a chance that mariadb could ever overcome limitations? Is this even a goal of this project? So far I only found postgres to support these features. Background of this question: I am developing an object relational mapper and my goal is to have the database enforce the consistency. So triggers and foreign key constraints working together are vital for this. regards Ludwig
Hi, Ludwig! On Jun 21, Ludwig Gramberg wrote:
Hi,
I was wondering if mariadb plans to overcome mysqls limitations such as - foreign key operations do not start triggers - triggers can’t be recursive (error 1442)
I haven't heard about any plans about these specific limitations. That's because nobody requested that yet. But by all means, do request these feature requests at mariadb.org/jira and then we will certainly consider them for the next major version (and then for the following major version if they won't made it into the next, and so on).
But besides additional features, is there a chance that mariadb could ever overcome limitations? Is this even a goal of this project?
Yes, sure. But we cannot do everything at once, so we prioritize tasks that our users wants us to do. Regards, Sergei
Hi, Foreign keys need support in SE to fix the first item. Cascading operations don't work for triggers, but even worse, they don't work for RBR replication if a) storage engines differ on master and slave or b) the slave lacks the constraints. This is because InnoDB does cascade operations internally, because the SE interface doesn't support foreign keys, thus the cascade operations only work on the slave if the SE matches and the constraints match. This basically is a RBR/pseudo-SBR mix that simply doesn't work. --Justin On Sun, Jul 19, 2015 at 2:19 AM, Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Ludwig!
On Jun 21, Ludwig Gramberg wrote:
Hi,
I was wondering if mariadb plans to overcome mysqls limitations such as - foreign key operations do not start triggers - triggers can’t be recursive (error 1442)
I haven't heard about any plans about these specific limitations. That's because nobody requested that yet.
But by all means, do request these feature requests at mariadb.org/jira and then we will certainly consider them for the next major version (and then for the following major version if they won't made it into the next, and so on).
But besides additional features, is there a chance that mariadb could ever overcome limitations? Is this even a goal of this project?
Yes, sure. But we cannot do everything at once, so we prioritize tasks that our users wants us to do.
Regards, Sergei
_______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Hi, Justin! On Jul 19, Justin Swanhart wrote:
Hi,
Foreign keys need support in SE to fix the first item. Cascading operations don't work for triggers, but even worse, they don't work for RBR replication if a) storage engines differ on master and slave or b) the slave lacks the constraints. This is because InnoDB does cascade operations internally, because the SE interface doesn't support foreign keys, thus the cascade operations only work on the slave if the SE matches and the constraints match. This basically is a RBR/pseudo-SBR mix that simply doesn't work.
Right. My first idea was to add some kind of a callback for a storage engine to inform the server about cascading operation. Then it could fire a trigger. We already can fire triggers for low-level row operations, this is used in our "RBR triggers" feature: https://mariadb.com/kb/en/mariadb/running-triggers-on-the-slave-for-row-base... Regards, Sergei
great! Sent from my iPhone
On Jul 19, 2015, at 10:51 AM, Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Justin!
On Jul 19, Justin Swanhart wrote: Hi,
Foreign keys need support in SE to fix the first item. Cascading operations don't work for triggers, but even worse, they don't work for RBR replication if a) storage engines differ on master and slave or b) the slave lacks the constraints. This is because InnoDB does cascade operations internally, because the SE interface doesn't support foreign keys, thus the cascade operations only work on the slave if the SE matches and the constraints match. This basically is a RBR/pseudo-SBR mix that simply doesn't work.
Right. My first idea was to add some kind of a callback for a storage engine to inform the server about cascading operation. Then it could fire a trigger.
We already can fire triggers for low-level row operations, this is used in our "RBR triggers" feature: https://mariadb.com/kb/en/mariadb/running-triggers-on-the-slave-for-row-base...
Regards, Sergei
Engine-independent foreign keys would be really useful. MariaDB has a lot of nice storage engines, and improving the interaction between them is simply great. I am currently work on a project where it is necessary to enforce consistency between Maria and SQL Server in every point in time. If we had the ability to build a FK from InnoDB to CONNECT, I would have an easy solution for this problem. Regards Federico -------------------------------------------- Dom 19/7/15, Sergei Golubchik <serg@mariadb.org> ha scritto: Oggetto: Re: [Maria-discuss] will maria db overcome mysqls feature limitations? (foreign keys+triggers, recursive triggers) A: "Justin Swanhart" <greenlion@gmail.com> Cc: "Maria Discuss" <maria-discuss@lists.launchpad.net>, "Ludwig Gramberg" <info@ludwig-gramberg.de> Data: Domenica 19 luglio 2015, 19:51 Hi, Justin! On Jul 19, Justin Swanhart wrote:
Hi,
Foreign keys need support in SE to fix the first item. Cascading operations don't work for triggers, but even worse, they don't work for RBR replication if a) storage engines differ on master and slave or b) the slave lacks the constraints. This is because InnoDB does cascade operations internally, because the SE interface doesn't
support foreign keys, thus the cascade operations only work on the
slave if the SE matches and the constraints match. This basically is
a RBR/pseudo-SBR mix that simply doesn't work. Right. My first idea was to add some kind of a callback for a storage engine to inform the server about cascading operation. Then it could fire a trigger. We already can fire triggers for low-level row operations, this is used in our "RBR triggers" feature: https://mariadb.com/kb/en/mariadb/running-triggers-on-the-slave-for-row-base... Regards, Sergei _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
participants (4)
-
Federico Razzoli
-
Justin Swanhart
-
Ludwig Gramberg
-
Sergei Golubchik