Tuesday, June 23, 2015

phpMyAdmin work during thirty seventh week

This was a four day work week since I was on leave on Friday, 19th June.

The highlight of the week was the improvements to the Visual Query Builder. This included a number of bug fixes and improvements to the look and feel. VQB probably did not reach to the users very well, otherwise we should have got more bug reports relating to the issues fixed.

To the latter part of the week, I also engaged in fixing issues reported by Codacy (https://www.codacy.com/app/michal_2/phpmyadmin/dashboard).

* Code improvements
Various UI improvements to the visual query builder
Fix issues reported by Codacy

As usual I also engaged in regular bug fixes during the week. Highlight among the bugs fixed was  bug #4795. This requested phpMyAdmin to join two or more tables in Query Builder by using other tables that have not been included in the query. This was more of the feature request IMO.

Following are the bugs fixed and investigated during the week.

Bugs fixed
#4795 Query builder: missing joint for the intermediary table
#4955 Clicking on the navi logo does not always work (partial fix)
#4956 Trying to build query in visual builder throws JS error
#4958 Designer Javascript error with specially crafted table name
#4960 Table creation results in GET request with missing server parameter that invalidates the session
#4961 Javascript error when Designer is opened
#4962 insert by foreign key scrolls page to top
Visual builder: Generated query has extraneous comma at the end of group by clause
Visual builder: Add missing backquotes
Visual builder: Reset state variables on page teardown

Bugs investigated
#4959 Navigation pane mouseover oddity with specially crafted database/table names

Monday, June 15, 2015

phpMyAdmin work during thirty sixth week

The highlight of the my work during the week is the general improvements work carried out. 'Query' page of the database level was improved during the week (https://github.com/phpmyadmin/phpmyadmin/pull/1723). This included, introducing aliases and sort ordering. Additionally I worked on porting the Metro theme to the future 4.5.0 release (https://github.com/phpmyadmin/themes/pull/6), so we will have an additional theme by the time new version is released.

* General improvements
Improvements to the QBE page
Porting Metro theme for future version 4.5
UI improvements to the print view and table operations page
Minor performance improvements in the navigation panel
Update sample config file

After 9 bug fix releases from the 4.4 branch, the rate at which the bugs are being reported has slowed down indicating that it's quite stable. However, on the other hand, a number of new issues could be observed mostly introduced by the ongoing GSoC work carried out targeting the 4.5 release. Following are the bugs fixed during the week. As mentioned earlier, most of them were fixed in QA_4_5 branch.

* Bugs fixed
#4510 QBE generates wrong query
#4946 When hide table structure actions is false, action should be in a row
#4947 Editing a view gives errors
#4950 Issues in database selection for replication
#4951 Trying to save chart as image crashes the browser
#4953 can't drag sql.gz file onto import input
#4954 Warnings on query results refresh
#4956 Trying to build query in visual builder throws JS error
Empty column list in display order drop down in table search
Fix notice on undefined variable 'col_extra'

Additionally, following issues were investigated.

* Bugs investigated
#4948 explain is broken in latest version
#4926 Browsing tables chokes on 30k tables in DB
#4959 Navigation pane mouseover oddity with specially crafted database/table names

Sunday, June 7, 2015

phpMyAdmin work during thirty fifth week

The bug fixes carried out during the week was mostly on the master branch and most of them were due to the ongoing developments by GSoC students. Additionally a couple of bugs on the stable branch reported by the users were fixed. Following are the bugs fixed during the week.

Bugs fixed
#4932 Drizzle version numbers
#4936 utf8mb4 fields show only ????s for 4-byte Unicode characters after import
#4937 Custom export with backquotes off is not working
#4939 Connection input field not hidden when adding a new table
#4940 Notices in GIS visualization page
#4941 Table structure multi submit is broken
#4942 Export to gzip saves plain text under Chrome

Moreover, following bugs were investigated

Bugs investigated
#4933 INSERT validation issues with MySQL functions
#4935 Eliminate remaining occurences of eval() in phpMyAdmin to make it work on machines where eval() is disabled

On the new features front, rfe #1634 was discussed during the last IRC meeting and received the green light to be implemented. This rfe requested not to group items in the navigation panel when there is only a single group and no other items or groups in a particular sub tree.

Bug #4934 reported the shift + click to apply selected function to all rows in insert/edit page was not functioning in some browsers. Since shift + click event was non standard on browsers we decided to remove the feature altogether. This was also carried out during the week.

Feature requests implemented
#1634 Don't group tables in tree if the result has only one group
#1677 Support spatial indexes in table create form
Remove support for Shift + Click on function name to apply to all rows in insert/edit page

During the latter part of the week, I engaged in analyzing the performance issues and fixing them. This was based on the profiling carried out earlier using xdebug. I attended to table browse, insert and edit pages since they showed highest performance deterioration competed to 3.x series.

General coding improvements
Fix coding styles violations reported by PHPCS
Performance improvements for table browse, insert and edit pages

Wednesday, June 3, 2015

phpMyAdmin work during thirty fourth week

This week was more a of quieter week where I focused mostly on bug fixes.

Bug #4872 was on navigation and main panel not reloading after a related change. Trying to fix this bug I realized that the related code was quite scattered and some parts outdated when ajax was introduced. The related code segments seemed quite brittle. Even though the bug was fixed these sections would benefit from refactoring.

Following are the bugs fixed during the week.

Bugs fixed
#4872 Drop table doesn't remove the table name from navigation bar
#4905 Sorting by an alias
#4920 Relation view doesn't list fields of table in other database
#4921 Textarea rows settings ignored Features > Text fields
#4923 Limits table comments to 60 characters
#4927 "Disable foreign key" doesn't work with a single query SQL file
#4929 Edit view structure doesn't load the algorithm
#4930 Database copy doesn't work for tables with more than one FULLTEXT index
#4931 False error before entering reCAPTCHA

Among the bugs that were investigated, bug #4926 reported how browsing tables chokes with a database having 30k tables. Configuration 'DisableIS' did not help either. I personally think that such a big number of tables is a corner case.

Bugs investigated
#4925 Multi table 'Empty'/'Drop' doesn't work
#4926 Browsing tables chokes on 30k tables in DB

Feature requests received little attention during the week and following are the ones implemented.

Feature requests implemented
#1672 MIME types should be lower case
Add a configuration to display/hide the comment column in db structure page

#1672 seems to be broken again in master, probably due to ongoing templating and I plan to fix it today.

P.S: This was a four day week; I was on leave on 26th May