diff --git a/docs/en_US/materialized_view_dialog.rst b/docs/en_US/materialized_view_dialog.rst index d7494d946..534e86b73 100644 --- a/docs/en_US/materialized_view_dialog.rst +++ b/docs/en_US/materialized_view_dialog.rst @@ -35,7 +35,9 @@ Click the *Definition* tab to continue. :align: center Use the text editor field in the *Definition* tab to provide the query that will -populate the materialized view. +populate the materialized view. Please note that updating the definition of existing +materialized view would result in loss of Parameter(Table, Toast), Security(Privileges & Security labels), +Indexes and other dependent objects. Click the *Storage* tab to continue. diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/mview.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/mview.js index e50f61a1f..3951e619c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/mview.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/mview.js @@ -142,6 +142,7 @@ define('pgadmin.node.mview', [ spcname: undefined, toast_autovacuum_enabled: false, autovacuum_enabled: false, + warn_before_save: undefined, }, schema: [{ id: 'name', label: gettext('Name'), cell: 'string', @@ -171,7 +172,22 @@ define('pgadmin.node.mview', [ id: 'definition', label: gettext('Definition'), cell: 'string', type: 'text', mode: ['create', 'edit'], group: gettext('Definition'), tabPanelCodeClass: 'sql-code-control', - control: Backform.SqlCodeControl, + control: Backform.SqlCodeControl.extend({ + onChange: function() { + Backform.SqlCodeControl.prototype.onChange.apply(this, arguments); + if(this.model && this.model.changed) { + if(this.model.origSessAttrs && (this.model.changed.definition != this.model.origSessAttrs.definition)) { + this.model.warn_before_save = 'Updating the definition will drop and re-create the materialized view. It may result in loss of information about its dependent objects. Do you want to continue?'; + } + else { + this.model.warn_before_save = undefined; + } + } + else { + this.model.warn_before_save = undefined; + } + }, + }), },{ id: 'with_data', label: gettext('With data?'), group: gettext('Storage'), mode: ['edit', 'create'], @@ -238,6 +254,7 @@ define('pgadmin.node.mview', [ }else{ this.errorModel.unset('definition'); } + return null; }, // We will disable everything if we are under catalog node diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/update.sql index f243c4ab8..a728b18c9 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/update.sql @@ -27,9 +27,14 @@ ALTER TABLE {{ conn|qtIdent(view_schema, view_name) }} {% if def and def != o_data.definition.rstrip(';') %} DROP MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }}; CREATE MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} -{% if data.fillfactor or (data['vacuum_data']['changed']|length > 0 ) %} +{% if data.fillfactor or o_data.fillfactor %} WITH( -{% if data.fillfactor %} FILLFACTOR = {{ data.fillfactor }}{% if data['vacuum_data']['changed']|length > 0 %},{% endif %}{{ '\n' }} {% endif %} +{% if data.fillfactor %} +FILLFACTOR = {{ data.fillfactor }}{% if (data['vacuum_data'] is defined and data['vacuum_data']['changed']|length > 0) or (o_data['vacuum_data'] is defined and o_data['vacuum_data']['changed']|length > 0) %},{% endif %} +{% elif o_data.fillfactor %} +FILLFACTOR = {{ o_data.fillfactor }}{% if (data['vacuum_data'] is defined and data['vacuum_data']['changed']|length > 0) or (o_data['vacuum_data'] is defined and o_data['vacuum_data']['changed']|length > 0) %},{% endif %} +{% endif %} + {% if data['vacuum_data']['changed']|length > 0 %} {% for field in data['vacuum_data']['changed'] %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{{ '\n' }}{% endif %} {% endfor %} @@ -40,11 +45,14 @@ WITH( {{ def }} {% if data.with_data is defined %} WITH {{ 'DATA' if data.with_data else 'NO DATA' }}; - -{% elif o_data.with_data %} +{% elif o_data.with_data is defined %} WITH {{ 'DATA' if o_data.with_data else 'NO DATA' }}; {% endif %} +{% if o_data.comment and not data.comment %} +COMMENT ON MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} + IS {{ o_data.comment|qtLiteral }}; +{% endif %} {% else %} {# ======= Alter Tablespace ========= #} {%- if data.spcoid and o_data.spcoid != data.spcoid -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/update.sql index 2b4cc9327..55cdfb03e 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/update.sql @@ -27,10 +27,12 @@ ALTER TABLE {{ conn|qtIdent(view_schema, view_name) }} {% if def and def != o_data.definition.rstrip(';') %} DROP MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }}; CREATE MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} -{% if data.fillfactor or (data['vacuum_data']['changed']|length > 0 ) %} +{% if data.fillfactor or o_data.fillfactor %} WITH( {% if data.fillfactor %} - FILLFACTOR = {{ data.fillfactor }}{% if data['vacuum_data']['changed']|length > 0 %},{% endif %}{{ '\n' }} +FILLFACTOR = {{ data.fillfactor }}{% if (data['vacuum_data'] is defined and data['vacuum_data']['changed']|length > 0) or (o_data['vacuum_data'] is defined and o_data['vacuum_data']['changed']|length > 0) %},{% endif %} +{% elif o_data.fillfactor %} +FILLFACTOR = {{ o_data.fillfactor }}{% if (data['vacuum_data'] is defined and data['vacuum_data']['changed']|length > 0) or (o_data['vacuum_data'] is defined and o_data['vacuum_data']['changed']|length > 0) %},{% endif %} {% endif %} {% if data['vacuum_data']['changed']|length > 0 %} {% for field in data['vacuum_data']['changed'] %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{% endif %}{{ '\n' }} @@ -43,10 +45,14 @@ WITH( {% if data.with_data is defined %} WITH {{ 'DATA' if data.with_data else 'NO DATA' }}; -{% elif o_data.with_data %} +{% elif o_data.with_data is defined %} WITH {{ 'DATA' if o_data.with_data else 'NO DATA' }}; {% endif %} +{% if o_data.comment and not data.comment %} +COMMENT ON MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} + IS {{ o_data.comment|qtLiteral }}; +{% endif %} {% else %} {# ======= Alter Tablespace ========= #} {%- if data.spcoid and o_data.spcoid != data.spcoid -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_fillfactor.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_fillfactor.sql index 03197d009..5b55f1d4d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_fillfactor.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_fillfactor.sql @@ -10,7 +10,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO postgres; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_fillfactor_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_fillfactor_msql.sql index 0c51d157a..2ef36421f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_fillfactor_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_fillfactor_msql.sql @@ -3,4 +3,4 @@ SET( FILLFACTOR = 18 ); -REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH NO DATA; +REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH DATA; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_table_parameter.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_table_parameter.sql index 9a60bd524..ff76b997e 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_table_parameter.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_table_parameter.sql @@ -11,7 +11,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO postgres; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_definition.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_definition.sql index 481879f70..7f9fe95c6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_definition.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_definition.sql @@ -6,7 +6,10 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" TABLESPACE pg_default AS SELECT 12 -WITH DATA; +WITH NO DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO postgres; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_definition_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_definition_msql.sql index 2c1b637f4..16b772233 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_definition_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_definition_msql.sql @@ -2,3 +2,7 @@ DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"; CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" AS SELECT 12 + WITH NO DATA; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_remove_table_parameter.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_remove_table_parameter.sql index 03197d009..5b55f1d4d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_remove_table_parameter.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_remove_table_parameter.sql @@ -10,7 +10,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO postgres; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/test_mview.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/test_mview.json index 335b1fed9..7f0bd477d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/test_mview.json +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/test_mview.json @@ -205,7 +205,7 @@ "msql_endpoint": "NODE-mview.msql_id", "data": { "fillfactor": "18", - "with_data": false + "with_data": true }, "expected_sql_file": "alter_mview_add_fillfactor.sql", "expected_msql_file": "alter_mview_add_fillfactor_msql.sql" diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_fillfactor.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_fillfactor.sql index be0d59bea..da3c3849f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_fillfactor.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_fillfactor.sql @@ -10,7 +10,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO enterprisedb; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_fillfactor_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_fillfactor_msql.sql index 0c51d157a..2ef36421f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_fillfactor_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_fillfactor_msql.sql @@ -3,4 +3,4 @@ SET( FILLFACTOR = 18 ); -REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH NO DATA; +REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH DATA; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_table_parameter.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_table_parameter.sql index ee5956d1a..874d20d5a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_table_parameter.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_add_table_parameter.sql @@ -11,7 +11,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO enterprisedb; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_definition.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_definition.sql index 41f75fbe5..3d31af0d2 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_definition.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_definition.sql @@ -6,7 +6,10 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" TABLESPACE pg_default AS SELECT 12 -WITH DATA; +WITH NO DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO enterprisedb; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_definition_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_definition_msql.sql index 2c1b637f4..16b772233 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_definition_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_definition_msql.sql @@ -2,3 +2,7 @@ DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"; CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" AS SELECT 12 + WITH NO DATA; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_remove_table_parameter.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_remove_table_parameter.sql index be0d59bea..da3c3849f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_remove_table_parameter.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/alter_mview_remove_table_parameter.sql @@ -10,7 +10,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO enterprisedb; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/test_mview.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/test_mview.json index b945afacb..4ea610331 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/test_mview.json +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/11_plus/test_mview.json @@ -205,7 +205,7 @@ "msql_endpoint": "NODE-mview.msql_id", "data": { "fillfactor": "18", - "with_data": false + "with_data": true }, "expected_sql_file": "alter_mview_add_fillfactor.sql", "expected_msql_file": "alter_mview_add_fillfactor_msql.sql" diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_fillfactor.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_fillfactor.sql index be0d59bea..da3c3849f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_fillfactor.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_fillfactor.sql @@ -10,7 +10,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO enterprisedb; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_fillfactor_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_fillfactor_msql.sql index 0c51d157a..2ef36421f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_fillfactor_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_fillfactor_msql.sql @@ -3,4 +3,4 @@ SET( FILLFACTOR = 18 ); -REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH NO DATA; +REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH DATA; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_table_parameter.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_table_parameter.sql index ee5956d1a..874d20d5a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_table_parameter.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_table_parameter.sql @@ -11,7 +11,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO enterprisedb; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_definition.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_definition.sql index 41f75fbe5..3d31af0d2 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_definition.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_definition.sql @@ -6,7 +6,10 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" TABLESPACE pg_default AS SELECT 12 -WITH DATA; +WITH NO DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO enterprisedb; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_definition_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_definition_msql.sql index 2c1b637f4..16b772233 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_definition_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_definition_msql.sql @@ -2,3 +2,7 @@ DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"; CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" AS SELECT 12 + WITH NO DATA; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_remove_table_parameter.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_remove_table_parameter.sql index be0d59bea..da3c3849f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_remove_table_parameter.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_remove_table_parameter.sql @@ -10,7 +10,10 @@ WITH ( TABLESPACE pg_default AS SELECT 12 -WITH NO DATA; +WITH DATA; ALTER TABLE public."testmview_$%{}[]()&*^!/@`#" OWNER TO enterprisedb; + +COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" + IS 'comment1'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/test_mview.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/test_mview.json index b945afacb..4ea610331 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/test_mview.json +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/test_mview.json @@ -205,7 +205,7 @@ "msql_endpoint": "NODE-mview.msql_id", "data": { "fillfactor": "18", - "with_data": false + "with_data": true }, "expected_sql_file": "alter_mview_add_fillfactor.sql", "expected_msql_file": "alter_mview_add_fillfactor_msql.sql" diff --git a/web/pgadmin/browser/static/js/node.js b/web/pgadmin/browser/static/js/node.js index 90e4fb611..8e1be9661 100644 --- a/web/pgadmin/browser/static/js/node.js +++ b/web/pgadmin/browser/static/js/node.js @@ -1305,6 +1305,40 @@ define('pgadmin.browser.node', [ } }.bind(panel), + warnBeforeAttributeChange = function(yes_callback) { + var j = this.$container.find('.obj_properties').first(), + view = j && j.data('obj-view'), + self = this; + + if (view && view.model && view.model.warn_before_save) { + let warn_text; + warn_text = gettext(view.model.warn_before_save); + if(view.model.sessChanged()){ + Alertify.confirm( + gettext('Warning'), + warn_text, + function() { + setTimeout(function(){ + yes_callback(); + }.bind(self), 50); + return true; + }, + function() { + return true; + } + ).set('labels', { + ok: gettext('Yes'), + cancel: gettext('No'), + }).show(); + } else { + return true; + } + } else { + yes_callback(); + return true; + } + }.bind(panel), + onSave = function(view, saveBtn) { var m = view.model, d = m.toJSON(true), @@ -1498,7 +1532,14 @@ define('pgadmin.browser.node', [ register: function(btn) { // Save the changes btn.on('click',() => { - onSave.call(this, view, btn); + warnBeforeAttributeChange.call( + panel, + function() { + setTimeout(function() { + onSave.call(this, view, btn); + }, 0); + } + ); }); }, }], 'footer', 'pg-prop-btn-group-below');