Weekly phpMyAdmin contributions 2016 – Week3
Like the previous two weeks, I focused on fixing issues with the SQL parser in the first part of the week, while the later part of the week was focused on bug-fixing in the phpMyAdmin repository.
Some PRs that I had made two weeks back in the SQL parser got merged last week after a few alterations. Michal realized there was a bug in parsing the syntax of INSERT INTO … SELECT … ON DUPLICATE KEY as the call to parse SELECT statement would not break on finding the ON DUPLICATE KEY keywords. A different condition check had to added for this special case in parsing of Select statement. Spatial extension support (for ex. POINT, GEOMETRY datatypes) was added to the SQL parser.
Some bugs related to bad export and bad SQL generated in copying the databases with Generated/Virtual columns were indirectly related to the SQL parser and were fixed. There are some differences in MySQL and MariaDB regarding the implementation of virtual columns, but we chose an approach which would work fine with both the DBMSs.
Next week might be a little break from direct SQL parser’s issues and might focus on parser issues originating from the main repo along with other bugs that have not been attended in the main repository.
* #12272 Adding a new row with default enum goes to no selection when you want to add more then 2 rows
* #12320 Copy a user does not copy user group
* #12221 Bad table export in case of generated columns
* #12518 Unable to copy database with virtual generated columns… / MySQL Error #3105
* #12558 Cannot redeclare pma_tableheader()
* #12473 Code can throw unhandled exception
* #12549 Action : copy table with new prefix doesn’t keep the auto increment value
* #11628 INSERT … ON DUPLICATE KEY
* #48 REPLACE INTO … SELECT … not implemented
* #78 INSERT … SELECT … ON DUPLICATE KEY UPDATE broken
* #59 Non-reserved keywords should be allowed as a field name
* #72 Query with keyword field name built wrong
* #73 INSERT … SELECT Syntax
* #50 Unrecognized keyword ON, DUPLICATE and KEY
* #74 SET NAMES … Syntax
* #51 SET statement not properly parsed
* #55 Missing spatial extension support