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/b287aae9d56c4ae15d850b47a5f76...
-- 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 list Phpmyadmin-devel@lists.sourceforge.net https://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/68ad40b4f30c0ff55d662413729fec4a...
Best regards, Dan Ungureanu