Drop query should be part of the jinja template for consistency. Currently, it is added through the python file.
The Delete query is already in the template file, I have just reused the delete call and merged the SQL queries in the python file.
Any changes in the view code should not warn the user "Changing the columns in a view requires dropping...." and we should not drop the view. For example, I have only change the WHERE clause or added 'ORDER BY'.
I have tested but couldn't reproduce this issue. Can you please let me know the proper use case?
Create a view with 'SELECT 1;' as code. Then change the code to 'SELECT 1234;' and click on the Save button.
Warning popup is displayed "Changing the columns in a view....". Click on the 'Yes' button and check the OID of the view. You will get the same OID, it means view is not recreated.
I have observed below error in the browser while changing the code:
view.js:241 Uncaught TypeError: Cannot read property 'replace' of undefined
at child.onChange (view.js:241) at HTMLDivElement.dispatch (jquery.js:5237) at HTMLDivElement.elemData.handle (jquery.js:5044)
Please find the attached patch for RM #5053 - Getting an error while changing the columns in the existing view.
PostgreSQL doesn't allow to change the view columns. So, while performing this task the existing view should be dropped first and then recreate it and also user will get a warning first.