1. EPAS packages' function/procedure does not honour INOUT arguments, it converts INOUT to OUT.
2. Packages' functions and procedures are not getting listed in their respected nodes in some scenarios like procedure having INOUT argument and function with void return type
3. The Reverse engineering SQL is not correct for Packages' functions/procedures
4. In case of INOUT argument, debugger asks for mendatory input which should not.
5. Re-executing a procedure whilst direct debugging doesn't work.
- Fix the RM #3446 "plpgsql keyword should displayed in SQL pane for EPAS-11".
- Procedures for EPAS 11 always created as 'edbspl', even though language is sql or plpgsql.
- Not able to create Function/Procedure/Trigger function if the language is "C" for all supported database server.
- Function creation for EPAS 9.6 and above when set "Window?" flag to "Yes".
- Disable Volatility, Strict, Parallel, Estimated cost and Leak prof while creating procedures in EPAS 11 when language is not 'edbspl'.
- Rename "default" folder to "11_plus" inside "pg" directory for procedures, as procedures are supported from PG11 onwards.
- Creating/Deleting parameter in Procedure for PG 11.
- Drop procedures with arguments for PG/EPAS 11.
pg_proc table has added default value 'v' for Volatility, 100 for Cost and 'u' for Parallel for any language. All the three are not supported for Procedures in PG/EPAS 11 (excluding 'edbspl' language for EPAS). Fixed the issue where it is visible in properties panel if we create procedure using language 'plpgsql' or 'sql'.
Highlights of this patch include:
- Changes will affect SQL Editors in Create dialog boxes, SQL tab of the main screen, Query tool, History entries in the query tool, Query tool opened in New Tab/Window
- All the components of SQL editor will refer to single source of preferences which is cached in the Browser object. All other redundant ajax get preference calls are removed.
- SQL editor will not refer template JS variables anymore, once all the references are removed the template variables will also be removed.
- Code refactoring wherever possible.
- Covered JS test cases wherever possible.
Extract some of the ACI Tree functionalities, and decouple it from the
main source. Also - create some abstractions from the repeated code
around the enable/disable the schema children object create/edit/delete
functionalities, and also created the dialog wrappers for backup and
restore dialogs.
Reviewed by: Khushboo and Ashesh
Refactored by: Ashesh
This is the first version of our Tree implementation. At this point is a
very simple tree without no abstractions and with code that eventually
is not very performant, but this is only the first iteration and we are
trying to follow the 'Last Responsible Moment Principle' [1].
Implemention details:
- Creation of PGBrowser.treeMenu
- Initial version of the Tree Adaptor 'pgadmin/static/js/tree/tree.js'
- TreeFake test double that can replace the Tree for testing purposes
- Tests, As an interesting asside because Fake’s need to behave like
the real object you will noticed that there are tests for this type
of double and they the same as of the real object.
[1] https://medium.com/@aidanjcasey/guiding-principles-for-an-evolutionary-software-architecture-b6dc2cb24680
Patched by: Victoria && Joao
Reviewed by: Khushboo & Ashesh