Refactored code for Table and its child nodes.

Akshay Joshi <[email protected]> Wed, 13 Nov 2019 19:13:24 +0530
Newsgroups gmane.comp.db.postgresql.pgadmin.devel
Message-ID <CANxoLDeV+R-vq6c+ewSWwaa1mQ=OQru0+TJOFdX0ZYO655DMcg@mail.gmail.com>
Hi Hackers,

For a couple of days, I was working on the code refactoring of Table and
it's child nodes.

*Problem*:  In pgAdmin4 child nodes of the table can be created/modified
from table dialog as well as from individual node. For example: Primary Key
constraint can be created/updated from tables as well as from individual
primary key node.

After analyzing the code it seems that we have duplicate logic/functions in
'*tables/utils.py*' and '*__init__.py*' of the respective node.

So because of the above-described problem, if there is a bug at one place
we need to fix it on both the places.

*Purpose*:

   1. Remove duplicate logic.
   2. Child node specific logic should be inside the child node and table
   node gets the required information from the respective child node.

*Solution*:

   1. Create '*utils.py*' for each child node.
   2. Move the common logic from '*tables/utils.py*' and '*__init__.py*' of
   the respective node to '*utils.py'.*
   3. Both table and its respective child access the functions from the
   respective '*utils.py*'.


*Note*: Refactoring of *columns* node still remaining I'll start working on
it.

Please review/test the patch thoroughly for tables and it's child nodes.

-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*
Table_Refactor.patch (application/octet-stream, 186.6 KB) - not displayed