Hi Jerome, On 03/11/2017 10:18 AM, jerome brauge wrote:
Hello Alexander,
Thanks for this good job. The build fail on Windows because there is a duplicate definition of char_to_byte_length_safe in item.h and sql_type.h:
1>c:\source\repos\server\sql\item.h(101): error C2084: function 'uint32 char_to_byte_length_safe(uint32,uint32)' already has a body 1> c:\source\repos\server\sql\sql_type.h(184): note: see previous definition of 'char_to_byte_length_safe' 1>c:\source\repos\server\sql\item.h(1751): error C2568: '=': unable to resolve function overload 1> c:\source\repos\server\sql\item.h(1751): note: could be 'uint32 char_to_byte_length_safe(uint32,uint32)'
I quickly installed a CenOS 7 VM and build works fine but I don't know development tools under linux.
Can you please try to remove the duplicate implementation from item.h ? Does this help? Thanks!
Jérôme.
-----Message d'origine----- De : Alexander Barkov [mailto:bar@mariadb.org] Envoyé : vendredi 10 mars 2017 11:36 À : jerome brauge Cc : maria-developers Objet : Re: MDEV-10598 - bb-10.2-compatibility
Hello Jerome,
On 02/27/2017 11:39 PM, jerome brauge wrote:
Hello Alexander, Thanks for the explanation. It's something we do not use. I did not think about it. I look forward to your patch.
I pushed these tasks:
MDEV-10581 sql_mode=ORACLE: Explicit cursor FOR LOOP MDEV-12098 sql_mode=ORACLE: Implicit cursor FOR loop MDEV-12011 sql_mode=ORACLE: cursor%ROWTYPE in variable declarations MDEV-12133 sql_mode=ORACLE: table%ROWTYPE in variable declarations
Please clone the branch again. Git pull will not work, because I recently rebased bb-10.2-compatibility on top of the latest 10.2.
When implementing cursor%ROWTYPE, I had your patch in mind and made some refactoring to help us apply MDEV-10598 easier. Please see a comment to MDEV-12011 in "git log".
Now the tricky thing (when adding your patch) is to make sure that this work fine:
CREATE PROCEDURE p1 AS a INT:=10; CURSOR cur1 IS SELECT a; rec1 cur1%ROWTYPE; CURSOR cur2 IS SELECT rec1.a; rec2 cur2%ROWTYPE; BEGIN OPEN cur2; FETCH cur2 INTO rec2; CLOSE cur2; SELECT rec2.a; END;
I.e. a set of intermixed CURSOR and cursor%ROWTYPE variable declarations referencing each other recursively.
Thanks.
Regards, Jérôme.
-----Message d'origine----- De : Alexander Barkov [mailto:bar@mariadb.org] Envoyé : lundi 27 février 2017 11:28 À : jerome brauge Cc : maria-developers Objet : Re: MDEV-10598 - bb-10.2-compatibility
Hello Jerome,
On 02/21/2017 07:18 PM, jerome brauge wrote:
Hello Alexander, I've done this patch for MDEV-10598. Can you review it ?
It seems we'll have to postpone this patch.
I'm currently working on:
MDEV-10598 Variable declarations can go after cursor declarations MDEV-12011 sql_mode=ORACLE: cursor%ROWTYPE in variable
declarations
So the trick with postponing variable declarations using a temporary list might not work properly after adding MDEV-10598 abd MDEV-12011, the order of cursors and variables is important.
Example:
DECLARE CURSOR cur1 IS SELECT a,b FROM t1; v cur1%ROWTYPE; CURSOR cur2 IS SELECT v.a, v.b FROM DUAL; BEGIN ... END;
So the order of cur1, v and cur2 is important.
I'll let you known when I'm ready with %ROWTYPE tasks.
Thanks!
Regards, Jérôme.