Saturday, August 29, 2015

phpMyAdmin work during forty sixth and forty seventh weeks

During this period I moved from Colombo to Melbourne, Australia. So, I had to take couple of days off on both weeks for preparation work as well as settling down in Australia. Hence, I am combining the work done during these two weeks to a single blog post.

The bugs fixed during the time includes bugs from both stable version and the upcoming 4.5 version. 

Bugs fixed
#11404 "Switch to copied table" doesn't work
#11408 Export breaks when field name is 0
#11410 SPATIAL index option is not clickable
#11414 Unclear export options / organization / hierarchy
#11421 Stored-proc / routine - broken parameter parsing
#11436 CREATE DATABASE should be enabled by default on server exports
Remove unnecessary title after slider initialization
Fix missing template in table search page
Fix function based search for geometry columns in table search page
Fix GIS editor in table insert/edit page
Fix x coordinates of points which was the repetition of y coordinates
Respect the Auto increment checkbox in SQL export
Fix missing name for configuration read_as_multibytes
Fix - Do not export `sys` database when exporting server
Add missing 'sql_create_database' configuration to setup and user preferences

Additionally, following bugs were investigated.

Bugs investigated
#11433 '%' does not work as it is with sprintf
#11434 Class 'SqlParser\Lexer' not found

With regards to the feature enhancements, there were no major features implemented during the period. However, a number of smaller enhancements were carried out. I also went on to do some language improvements where a number of sentences that used title case were converted to sentence case to be compliant with phpMyAdmin language guide. Moreover, I started working on supporting JSON data type introduced in MySQL 5.7.8. However, this had to be postponed due to bugs in PHP with respect to JSON data type.

Feature enhancements
Improvements to partition details on table structure page
Spatial indexes with multiple columns are not allowed
Organize SQL export options
Make the SQL exports compatible for side by side comparison with old exports
Allow editing unless it's a static variable. Allow editing new dynamic variables added in MariaDB and newer versions of MySQL
Minor UI improvements in zoom search page
Language improvements - Use sentence case as per phpMyAdmin language guide

Feature requests investigated
#11438 Support JSON data type

Wednesday, August 19, 2015

phpMyAdmin work during forty fourth and forty fifth weeks

I took leave on first three days off on forty fourth week to visit Anuradhpura and here I am combining the work done on the rest of the two days with the work done on the forty fifth week in to a single blog post.

During the two weeks I continued to QA the development version to identify any bugs arising from the ongoing developments. So, most of the bugs were fixed in the master branch. Additionally I fixed two incompatibilities with PHP7 in the stable version of phpMyAdmin. Both these incompatibilities were in third party libraries we use and these libraries were upgraded and tested.

Bugs fixed
#11345 Token mismatch error
#11349 Table list doesn't expand when current table on different page
#11364 JS error when trying to navigate to db structure page after db creation failed
#11382 Selecting values for set field throws JS error
#11389 ReCaptcha produce deprecated messages under PHP 7
#11387 phpseclib < 2.0 produces deprecated messages on PHP 7
Fix - Counting real number of rows always return zero
Fix - Index list not updated upon dropping a column

Bugs investigated
#11384 Query formatting adds space between ! and =

The highlight in terms of feature enhancements is the improved partition support. Now you can view all the details related to table partitions and sub partitions in the table structure page. Moreover, all the partition operations can be performed from there. 

Additionally, I improved the cache invalidation on version upgrade. With the new page loading introduced in version 4.0, phpMyAdmin cached the JS files and fired the relevant event on loading a page. Now these cached files are invalidate upon version upgrade.

Feature enhancements
Improved partition support
Clear internal cache at script handler upon version upgrade
Minor UI improvements to the db operations page
Do not attach index table unnecessarily
Refactor db_designer.php

Code quality improvements
Create separate controllers from table and database structure pages
Organize templates into a meaningful structure
Fix coding style issues reported by PHPCS