Friday, July 31, 2015

phpMyAdmin work during forty third week

During the week I mostly focused on fixing bugs. I attended to a mix of bugs that were prevalent in current stable version as well as those arose due to ongoing development targeting the next major release. 

Among the older bugs, I went on to investigate a couple of bugs related to replication features. Since I did not have a replication setup I first created such as investigated the bugs that had been reported. Bug #10307 which reported how cross database replication was broken due to the use of fully qualified table names was fixed. Other replication related bugs, which were also quite old, were mostly out of date.

Bugs that were fixed and investigated during the week are

Bugs fixed
#10307 Replication broken when using cross-database master/slave config and phpMyAdmin
#11322 Missing null checkbox when grid editing a null cell
#11324 JS error while opening a new page in Desginer
#11326 Exported schema includes all the tables of the database
#11328 Exporting table generates AUTO_INCREMENT=; for new tables
#11334 Table creation time, last update and last check column are empty
#11336 Exporting a table exports database level events
Fix various broken features due to refactoring in database structure page
Fix retrieve default storage engine correctly

Bugs investigated
#10435 Revoking non-existent Grant Option breaks MySQL 5.6 Replication
#10622 "Loading" doesn't disappear when stopping replication slave
#11325 Exporting database schema to PDF is broken
#11327 Default value for BIT column exported as b

When analyzing the JS errors reported in error reporting server, it was evident that quite a lot of them were due to caching issues on upgrading to a new phpMyAdmin version. This was addressed during the week and hopefully these issues will no longer occur.

Enhancements
Avoid caching JS and CSS files across phpMyAdmin versions
Upgrade TCPDF to version 6.2.9
UI improvements to replication and binary log pages
Improvements to the feature allowing to export databases and tables into separate files

Monday, July 27, 2015

phpMyAdmin work during forty second week

During this week I attended to a mix of bug fixes and feature enhancements.

I installed upcoming MySQL 5.7 and paid attention to areas in phpMyAdmin that needs to be updated to work with 5.7. First of all I noticed that I am unable to create phpMyAdmin configuration storage table since TIMESTAMP columns in them lacked a default value and this is not allowed in MySQL 5.7. Moreover I attended to a couple of UI bugs I happen to notice while I was working. Following are the bugs that were fixed.

Bugs fixed
#1808 "Improve table structure" generates invalid SQL
#1817 Creating configuration storage tables fail in MySQL 5.7
UI fixes in error reporting feature
Fix legend for table SQL page
Fix gutter style for normal and dark console themes

On the feature enhancement front, the major work was to improve the rtl language support. There were quite a number of instances that were broken even in the current stable version. Since Arabic is not shipped currently due to lack of translation, these were fixed in master branch. While some of these were style changes, others involved changing the DOM structure. Additionally, I attended to some UI improvements as well as improvements targeting MySQL 5.7

Feature enhancements
UI improvements in the 'Variables' and 'SQL' pages
Allow linking MySQL 5.7 document links
Terminology improvements in the 'User accounts' and 'Privileges' pages
Document SQL parameter binding feature
Improve support for rtl languages
Update ChangeLog links
Mark MySQL 5.7 'sys' schema as a system schema

Since GSoC work is ongoing, we could observer an increase in coding style violations reported by PHPCS. During the week, I attended to these violations as well.

Code quality improvements
Fix PHP coding style violations reported by PHPCS

P.S. This was a four day week with me taking leave on Thursday.


Wednesday, July 22, 2015

phpMyAdmin work during the forty first week

During this week I attended to bug fixes, new features as well as general coding improvements. 

The highlight of the week in terms bug fixes was the ability to use error reporting server. It was not usable for a long time and now that the situation has improved to Smitha, I attended to a number of bugs reported there. I noticed that a large number of bugs were due to caching issue while upgrading. This affected relational features on PHP front while a number of JS issues reported were also due to this. I also engaged in reporting issues and sending pull requests to improve the error reporting server. Bugs fixed and attended during the week are

Bugs fixed
#4979 Problem when import *.ods file
#4980 Cannot read property 'status' of null
#4981 Uncaught TypeError: Cannot read property 'attr' of null
#4984 Undefined <feature>work upon upgrade to new version
#4985 Column headers move when scrolling

Bugs investigated
#4983 Theme configurations not defined
#4986 First stack trace item missing in PHP error reports

The highlight in terms of new feature is the support for virtual columns. Support for virtual columns was initially requested for MariaDB. However my earlier attempt to implement the feature was abandoned due to lack of parser support. Virtual columns are featured in upcoming MySQL 5.7 as well and since the column expression can be extracted from information_schema in MySQL I could add support for MySQL virtual columns without parser update. After discussing this on developer mailing list GSoC student who is working on the parser rewrite added support for virtual columns to the new parser and with this I went on to extend the feature for MariaDB as well.

Feature requests implemented
#1517 Support for MariaDB virtual/persistent columns
Support MySQL 5.7.5 virtual columns

Feature requests investigated
#1658 Better Performance

To the latter part of the week I worked on improving coding style which had deteriorated a bit during the last couple of months.

Coding improvements
Centralize querying for SHOW CREATE TABLE statements
Documentation improvements on upgrading
Fix PHP coding style violations reported by PHPCS

Forty first week of my work was a four day week with me taking 16th of July as day off.

Thursday, July 16, 2015

phpMyAdmn work during the fortieth week

The fortieth week of work was mostly spent on fixing the bugs in the upcoming 4.5 version. 

While implementing the export templates I noticed that lock_table directive is not repopulated similar to other directive when back button is click and this was fixed. Further, quite a lot of the links to new system variables in phpMyAdmin's Variables page  was missing, and these were also added. Bug #4854 was fixed allowing users to use multiple servers in parallel. Earlier this was not possible and a series of fixes such as introducing IV per server finally led to this fix.

Here is the list of bugs fixed and investigated.

Bugs fixed
#4854 "Error: Token mismatch" when using multiple servers in parallel
#4973 Show a warning when a user account allowing any user from localhost to connect (partial fix)
#4976 Timepicker CSS issues in Original theme
#4978 Cancelled page settings changes do not revert the UI
Correctly set lock_table directive when repopulating on back button click
All columns listed for xaxis are selected in query charts
Saved chart image does not have a proper name or an extension
Add missing links Variables page to MySQL documentation for system variables
Fix height of the selection box of monitor charts
Remove menu options that do not make sense for visual query builder
Remove unused parameter causing notices

Bugs investigated
#4864 Tried to set secure cookie on non-secure connection

Among feature improvements, the most notable one is the use of native tabs in server plugin page in place of the jQuery tabs. Additionally, the process list was updated to show additional columns for MariaDB and as discussed during the last team meeting names of some of the pmadb directives were changed. 

Feature requests implemented
#1685 mariadb processlist
Underscores are preferred to separate words in configuration storage table names/directives
Use phpmyadmin's secondary tabs instead of jQuery tabs in server plugins page
Set indeterminate for export checkboxes when either data or structure is not selected

Feature requests investigated
#1684 Use GET only for read only operations

Tuesday, July 7, 2015

phpMyAdmin work during thirty eighth and thirty ninth weeks

I had to take two days off on the thirty ninth week of work. So, here I am combining it with the previous week to report what I have been up to. Continuing from the last couple of weeks we saw a decline in the number of bugs reported, indicating that the releases are much stable.

Due to the above reason I spent more time on feature requests and general coding improvements. I went on to clean the feature request tracker by investigating the feature requests and implementing them when they made sense. Here are the features implemented during the week.

Feature requests implemented
#689  Column privileges and update
#812  Store export definitions for reuse
#1531 Cant use external config file
#1552 CSV import: Allow "Columns escaped with" to be optional
#1561 Being able to use multiple servers at the same time when using cookie auth
Get default_fk_check_value on demand rather than checking the value in every script
Remove configuration storage data related to a user upon deleting the user
Upgrade CodeMirror to version 5.4.0

Additionally, following feature requests were investigated

Feature requests investigated
#757  Dropdown for special SQL like SUM, AVG and GROUP BY
#1270 Allow specifying mime types and transformations in queries
#1390 Export tables list must be ordered by constraints
#1682 Add quick action features

From the general coding improvements front, following were done.

General code improvements
OOP improvements in navigation panel
Match export parameters with the names of corresponding config values
Fix JavaScript variable scope error reported by Codacy

Even though reported in low numbers, following bugs were fixed and investigated.

Bugs fixed
#4916 Autocomplete either doesn't function at all or auto completes the original table name when joining multiple aliased tables
#4963 Improve/restore non-unique index row editing
#4966 MySQL errors are not shown when DebugSQL is enabled
#4967 Field named '0' is not recognized
#4969 Autoload from prefs_storage not behaving properly
Show build query dialog in full screen view also
Missing selected/entered values when editing active options in visual query builder
Remove character set from create_tables_drizzle.sql

Bugs investigated
#4964 New version using older files
#4968 Combine create / alter table statements
#4972 Bug when processing binary data