GSoC PMA: Week-10
Here is the second last working week of GSoC 2019. During this week(actually it’s more than a week, almost 10 days I guess), I looked into 2 issue which are “Designer should show tables from other databases by default” and “Designer page save fails if dB name contains period.”
While resolving the issue “Designer should show tables from other databases by default”, I have gone through the related discussion the code written by Raghuram Vadapalli in this PR. Last week I thought I have successfully reproduced the issue but while thinking of the approach I got to know that I was wrong, actually I was not able to form relations between between tables of the other databases. Thus I asked for the steps to reproduce the same with the mentors and also posted the same on the issue. I observed that even when there is no relation between tables of the different databases, we couldn’t save the page successfully. For this, I first looked at the code for displaying tables from other databases(by Raghuram Vadapalli), also I discussed the same with Raghuram sir for a possible solution but since he was not in touch with the organization for a while now so he couldn’t help me here. Isaac sir suggested, “What the solution should do is look in the phpMyAdmin configuration storage database (pmadb) and, if there’s a reference to the current database and another database, it should automatically show the other database”. With these initial suggestions and by looking at the code Raghuram sir, I thought that as per the display code, we can just add tables from 2 databases only but later on while adding the tables from multiples database, it’s successfully adding the tables. The additional layer(to save pages with tables from different database) should also work with any number of databases. I started with this(actually in starting I thought we can add tables just from 2 databases, which is wrong) and started tracking the database variable.
Other issue which was resolved this week is “Designer page save fails if dB name contains period.”. For this, I initially couldn’t reproduce/understand the issue exactly so asked mentor regarding the same. Isaac replied on the thread with the detailed steps to reproduce. Later on after tracing for a day, I figured out that exactly from where this issue arises. I starting planning it’s solution, I had 2 options. First, I could be highly specific regarding the issue and could make things work as long as there is just one dot in the database name OR I had another option which is, database name could have any number of dots but for this I needed to look things in more detail and calculate the number of dots in the database name and pass this value to the point where this break situation exists(this thing took me a lot of time). Once I got to know all the things, I finally started coding and created a PR resolving this.
While resolving the issue, I figured out a few of the issue which were already there in the designer section. I created the issues regarding the same too. If I am bit free in the upcoming days and by the time no resolves theses issues, I will look up for them. Here is the list of issues created:
I observed a thing while resolving the issues that, the tracing part took most amount of time whenever we try to resolve a issue. After tracing, if we are not stuck at any point, planning the solution(general solution or a particular/specific issue) took a lot of time.
Overall, it’s been a great experience working with PhpMyAdmin and the mentors. Thank you everyone who has been there to help me throughout the project.