Monday, April 27, 2015

phpMyAdmin work during twenty eighth and twenty ninth weeks

Here I am combining the work done during two week into a single blog post. Since GSoC rush was somewhat over I started attending to bugs again. However, I was on leave on 16th April to celebrate Sinhala new year.

Following are the bugs attended during the two weeks.

Bugs fixed
#4207 json_encode error , because strftime return string is not utf8 in Windows 8.1 Chinese version
#4794 Server error viewing table content
#4849 Functions accessed from navigation do not load on ajax dialog
#4850 Relation view on 1920
#4851 PHP errors in login dialogue
#4853 Relation view between 1600 and 1780 px
#4859 Don't scroll (to bottom) when editing multiple rows
#4862 Misaligned Inline edit field
#4866 Limit column dragging in index edit dialog
#4869 Drop column action not asking to confirm
#4870 Inconsistency in 'Ignore' checkbox in insert page
$meta->decimals is not available for mysql extension
Fix issues related to number of decimal places in time

Bugs investigated
#3270 Revoking privileges when you lack 'ALL PRIVILEGES' yourself
#3481 Designer relations in IE 8
#3588 X-WebKit-CSP Header breaks Safari 5.1
#4510 QBE generates wrong query
#4795 Query builder: missing joint for the intermediary table
#4854 "Error: Token mismatch" when using multiple servers in parallel
#4856 Error with PMA_DisplayResults->getTable()
#4858 issues with SQL autocomplete
#4871 Error on creating table

Similar to earlier weeks, I also attended to a set of feature requests. Among feature requests implemented, notables ones are the transformation for IPv6 addresses and support for CHECKSUM TABLE operation. Transformation for IPv6 was implemented as both output and input transformation.

I also worked on schema import from mysql workbench output files. Work on this is still underway.

Feature requests implemented
#433  Import/export of meta data (relations, MIME, etc.)
#1639 Add grouping to stored procedures in the navigation tree
#1655 Support IPv6 browser transformation
#1656 Edit vs Change
#1661 Support checksum table
Input transformation - ip to binary
Icon for columns with indexes / identify keys in structure snapshots
Option groups for 'With selected' dropdown in database structure page
Set maximum length for fields based on mysql name sizes

Feature requests investigated
#862  Group dbs/tables by regexp
#913  Import schema from Mysql Workbench
#1657 Single-line vs multi-line edit fields
#1659 Display the CREATE TABLE statement like HeidiSQL

Moreover, I did a couple of code improvements.

Coding improvements
Properly identify types in doc comments

Friday, April 10, 2015

phpMyAdmin work during twenty seventh week

During the week I attended both bug fixes as well as feature requests. To the latter part of the week I also attended some coding style improvements.

Among the bugs that were fixed, fixing output buffering was interesting. Since, I wasn't very familiar with the output buffering used in phpMyAdmin this was a good learning experience for me as well. Here, the issues was to use output buffering for CSS and JS. I modified the PMA_OutputBuffering class to accommodate output buffering for CSS, static and dynamic JS.

Here are the list of bugs fixed and investigated during the week.

Bugs fixed
#4829 Create procedure via SQL Editor not more possible
#4833 CSS and Javascript are not compressed
#4841 Status page: Mislukte pogingen per uur value is incorrect
#4848 Trigger sql with delimiters maxes out cpu resources
MIME Transformation link fixed

Bugs investigated
#4757 Error: Token mismatch
#4787 If mysql server default timezone is not set(by default), Phpmyadmin export wrong timestamp and timezone combination
#4847 Some query take very long time

The ability to export metadata was implemented as requested in  RFE #1632. These metadata are the data in configuration storage related to databases or tables being exported. With this one would be able to do a complete export and see the full state reinstated. Additionally the ability to copy multiple rows were implemented. 

The feature requests for the week were

Feature requests implemented
#1632 Importing and exporting pMA meta-data
#1643 No SQL query for loading data
#1646 Metro theme design update
#1650 Support a default page in designer
#1651 Allow copying mutiple rows
#1653 New data validation feature and datetime type

Feature requests investigated
#1645 MIME Transformation Imagelink and link - repairs and idea
#1648 Metro theme - table background style
#1654 After login session expires, restore navigation pane

Previously the designer loaded the first designer page for the database. Now it looks for page by the name of the database to load as default and falls back to old behavior in the absence of such a page.

Coding style improvements
No longer use global variables in schema export plugins

Sunday, April 5, 2015

phpMyAdmin work during twenty sixth week

During this week I was back to bug fixing. This is mainly because the GSoC application deadline has passed and the pull request rush from potential GSoC students have declined. So I had a look at the bug tracker and did some cleaning up and fixing. Here are the bugs fixed during the week.

Bugs fixed
#3292 Incoherent backup generated
#4067 Import Resume at breakpoint failure
#4754 pMA DB not detected properly
#4821 Timed-out import fails to restart when file represented
#4825 Datepicker missing when changing number of rows on Insert page
#4828 JavaScript is loaded in wrong order
#4831 Recaptcha API v2
#4832 Sorting distinct values result loses links
#4834 Do not attach token to css requests to improve caching
#4835 PMA_hideShowConnection not called after submit_num_fields
#4836 server warning after moving from console to Direct clicks

Apparently, allowing users to resubmit import files when import fails due to timeout has been broken for some time. Now that it is fixed user is presented a link to click when the import hits timeout and this link takes the user to import interface to resubmit the file with parameters carrying the details of where to restart the import from.

Additionally following bugs were investigated.

Bugs investigated
#3689 Variable 'character_set_client' can't be set
#4827 TEXT formatting doesn't work after editing
#4826 Two inline edit windows
#4829 Create procedure via SQL Editor not more possible 

Feature requests received relatively less attention during this week. I started working on supporting .xz compression. I did most of the work and a pull request for the same is was submitted. However, I had a hard time installing and configuring xz compression im my environment and wasted almost half a day trying. So I have to get someone else's help to test my PR.

Feature requests implemented
#1621 Add support for xz compression
#1635 Have ZeroConf create phpmyadmin DB if possible

Feature requests investigated
#862  Group dbs/tables by regexp
#1633 User Preferences reset should clear the value in pma__userconfig

Wednesday, April 1, 2015

phpMyAdmin work during twenty fifth week

During the week I attended to a mix of feature requests and bug fixes. Following are the feature requests implemented and investigated.

Feature requests implemented
#354  PDF schema sort options
#933  Manage multiple variable in bookmarked query
#947  Show edit/delete also when there is calculated column
#1619 Show databases as list instead of as dropdown when no database is selected

Feature requests investigated
#942 Table flush for NDB

With rfe #933, phpMyAdmin now support multiple variables in bookmarked queries. The placeholders should be in the format [VARIABLEN] where N is the index of the variable. For backward compatibility [VARIABLE] is considered  equal to [VARIABLE1] for backward compatibility.

Another long awaited feature was the ability to edit/delete columns when there is a calculated column. Earlier even though a primary or a unique key was present in the results set, the presence of a column with a function applied removed the ability to delete, edit and inline edit the row. Now this is supported and inline editing is not allowed for the function column.

Additionally following bugs were fixed during the week.

Bugs fixed
#4781 "Requery" bookmark from console does not work
#4805 Inline edit broken when using functions in query
#4814 MySQL 5.7.6 and Databases
#4815 Infinite calls to index.php
#4819 Request URI too large
Use 'server' parameter in console to work in multi server environments
Missing tooltip in monitor
Missing sort icons in monitor

Additionally, I took a couple of hours to fix some of the Scrutinizer error reported.

Code improvements
Fix code style errors reported by Scrutinizer