[Phpmyadmin-devel] Parser support for virtual columns

Madhura Jayaratne madhura.cj at gmail.com
Tue Jul 14 07:26:51 CEST 2015


On Tue, Jul 14, 2015 at 4:27 AM, Dan Ungureanu <udan1107 at gmail.com> wrote:

>  On 13.07.2015 18:09, Madhura Jayaratne wrote:
>
> Hi Dan,
>
>  MariaDB (5.2.0+) supports virtual columns and the syntax is
> <type>  [GENERATED ALWAYS]  AS   ( <expression> ) [VIRTUAL | PERSISTENT]
>  [UNIQUE] [UNIQUE KEY] [COMMENT <text>]
>
>  While implementing [1], to add parser support for virtual columns, I
> tried to model this syntax using $FIELD_OPTIONS [2]. Even though I am able
> to retrieve the expression this way, all the brackets and spaces of the
> expression are gone. As I understand, this due to the tokenization.
>
>  Do you have any suggestion for an alternative approach?
>
>  [1] https://sourceforge.net/p/phpmyadmin/feature-requests/1517/
> [2]
> https://github.com/madhuracj/phpmyadmin/commit/b287aae9d56c4ae15d850b47a5f76d49f4f155ba
>
>  --
> Thanks and Regards,
>
>  Madhura Jayaratne
>
>
>
> ------------------------------------------------------------------------------
> Don't Limit Your Business. Reach for the Cloud.
> GigeNET's Cloud Solutions provide you with the tools and support that
> you need to offload your IT needs and focus on growing your business.
> Configured For All Businesses. Start Your Cloud Today.https://www.gigenetcloud.com/
>
>
>
> _______________________________________________
> Phpmyadmin-devel mailing listPhpmyadmin-devel at lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/phpmyadmin-devel
>
>  Hello Madhura,
>
> The way you approached this was the correct solution, however, there was a
> bug in my code which skipped white-spaces. I am not sure what exactly you
> want to extract from that expression and I implemented here [2] a new type
> of option "expr" that should make your job easier and parse an expression
> directly.
>
> You can find here [1] a snippet of code I used to parse a CREATE statement
> that contains virtual fields and the result of the parsing. As you can see,
> the fact that I used the `Expression` component to parse the expression
> extracted the function name as well. Anyway, you can continue using the
> "var" option which will only format the expression, without extracting any
> information.
>
> [1] https://gist.github.com/udan11/4b6eaee2a1fb7fa315c2
> [2]
> https://github.com/udan11/sql-parser/commit/68ad40b4f30c0ff55d662413729fec4a535a3fec
>
> Best regards,
> Dan Ungureanu
>
>
Thanks Dan.
I've taken the latest version of sql-parser into phpMyAdmin in [1]. I've
used the parsed output to detect the expression in MariaDB generated
columns and it works fine.
Btw, great job with parser rewrite!

[1]
https://github.com/phpmyadmin/phpmyadmin/commit/d90ebfe96b820271649011b10b020c67d7f096af

-- 
Thanks and Regards,

Madhura Jayaratne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phpmyadmin.net/pipermail/developers/attachments/20150714/a8d08026/attachment.html>


More information about the Developers mailing list