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:
- Remove duplicate logic.
- Child node specific logic should be inside the child node and table node gets the required information from the respective child node.
Solution:
- Create 'utils.py' for each child node.
- Move the common logic from 'tables/utils.py' and '__init__.py' of the respective node to 'utils.py'.
- 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