Warn the user on changing the definition of Materialized View about the loss of data and its dependent objects. Fixes #4396
parent
623ff4f91f
commit
d98e86d3df
|
@ -35,7 +35,9 @@ Click the *Definition* tab to continue.
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
Use the text editor field in the *Definition* tab to provide the query that will
|
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.
|
Click the *Storage* tab to continue.
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ This release contains a number of bug fixes and new features since the release o
|
||||||
New features
|
New features
|
||||||
************
|
************
|
||||||
|
|
||||||
|
| `Issue #4396 <https://redmine.postgresql.org/issues/4396>`_ - Warn the user on changing the definition of Materialized View about the loss of data and its dependent objects.
|
||||||
| `Issue #4435 <https://redmine.postgresql.org/issues/4435>`_ - Allow drag and drop functionality for all the nodes under the database node, excluding collection nodes.
|
| `Issue #4435 <https://redmine.postgresql.org/issues/4435>`_ - Allow drag and drop functionality for all the nodes under the database node, excluding collection nodes.
|
||||||
|
|
||||||
Housekeeping
|
Housekeeping
|
||||||
|
@ -21,19 +22,19 @@ Housekeeping
|
||||||
Bug fixes
|
Bug fixes
|
||||||
*********
|
*********
|
||||||
|
|
||||||
| `Issue #3538 <https://redmine.postgresql.org/issues/3538>`_ - Fix issue where the Reset button does not get enabled till all the mandatory fields are provided in the dialog.
|
| `Issue #3538 <https://redmine.postgresql.org/issues/3538>`_ - Fix issue where the Reset button does not get enabled till all the mandatory fields are provided in the dialog.
|
||||||
| `Issue #4659 <https://redmine.postgresql.org/issues/4659>`_ - Updated documentation for default privileges to clarify more on the grantor.
|
| `Issue #4659 <https://redmine.postgresql.org/issues/4659>`_ - Updated documentation for default privileges to clarify more on the grantor.
|
||||||
| `Issue #4724 <https://redmine.postgresql.org/issues/4724>`_ - Fix network disconnect issue while establishing the connection via SSH Tunnel and it impossible to expand the Servers node.
|
| `Issue #4724 <https://redmine.postgresql.org/issues/4724>`_ - Fix network disconnect issue while establishing the connection via SSH Tunnel and it impossible to expand the Servers node.
|
||||||
| `Issue #4761 <https://redmine.postgresql.org/issues/4761>`_ - Fix an issue where the wrong type is displayed when changing the datatype from timestamp with time zone to timestamp without time zone.
|
| `Issue #4761 <https://redmine.postgresql.org/issues/4761>`_ - Fix an issue where the wrong type is displayed when changing the datatype from timestamp with time zone to timestamp without time zone.
|
||||||
| `Issue #4792 <https://redmine.postgresql.org/issues/4792>`_ - Ensure that the superuser should be able to create database, as the superuser overrides all the access restrictions.
|
| `Issue #4792 <https://redmine.postgresql.org/issues/4792>`_ - Ensure that the superuser should be able to create database, as the superuser overrides all the access restrictions.
|
||||||
| `Issue #4818 <https://redmine.postgresql.org/issues/4818>`_ - Fix server connection drops out issue in query tool.
|
| `Issue #4818 <https://redmine.postgresql.org/issues/4818>`_ - Fix server connection drops out issue in query tool.
|
||||||
| `Issue #4836 <https://redmine.postgresql.org/issues/4836>`_ - Updated the json file name from 'servers.json' to 'pgadmin4/servers.json' in the container deployment section of the documentation.
|
| `Issue #4836 <https://redmine.postgresql.org/issues/4836>`_ - Updated the json file name from 'servers.json' to 'pgadmin4/servers.json' in the container deployment section of the documentation.
|
||||||
| `Issue #4878 <https://redmine.postgresql.org/issues/4878>`_ - Ensure that the superuser should be able to create role, as the superuser overrides all the access restrictions.
|
| `Issue #4878 <https://redmine.postgresql.org/issues/4878>`_ - Ensure that the superuser should be able to create role, as the superuser overrides all the access restrictions.
|
||||||
| `Issue #4925 <https://redmine.postgresql.org/issues/4925>`_ - Shown some text on process watcher till the initial logs are loaded.
|
| `Issue #4925 <https://redmine.postgresql.org/issues/4925>`_ - Shown some text on process watcher till the initial logs are loaded.
|
||||||
| `Issue #4926 <https://redmine.postgresql.org/issues/4926>`_ - Fix VPN network disconnect issue where pgAdmin4 hangs on expanding the Servers node.
|
| `Issue #4926 <https://redmine.postgresql.org/issues/4926>`_ - Fix VPN network disconnect issue where pgAdmin4 hangs on expanding the Servers node.
|
||||||
| `Issue #4930 <https://redmine.postgresql.org/issues/4930>`_ - Fix main window tab navigation accessibility issue.
|
| `Issue #4930 <https://redmine.postgresql.org/issues/4930>`_ - Fix main window tab navigation accessibility issue.
|
||||||
| `Issue #4933 <https://redmine.postgresql.org/issues/4933>`_ - Ensure that the Servers collection node should expand independently of server connections.
|
| `Issue #4933 <https://redmine.postgresql.org/issues/4933>`_ - Ensure that the Servers collection node should expand independently of server connections.
|
||||||
| `Issue #4934 <https://redmine.postgresql.org/issues/4934>`_ - Fix the help button link on the User Management dialog.
|
| `Issue #4934 <https://redmine.postgresql.org/issues/4934>`_ - Fix the help button link on the User Management dialog.
|
||||||
| `Issue #4935 <https://redmine.postgresql.org/issues/4935>`_ - Fix accessibility issues.
|
| `Issue #4935 <https://redmine.postgresql.org/issues/4935>`_ - Fix accessibility issues.
|
||||||
| `Issue #4964 <https://redmine.postgresql.org/issues/4964>`_ - Fix an issue where length and precision are not removed from table/column dialog.
|
| `Issue #4964 <https://redmine.postgresql.org/issues/4964>`_ - Fix an issue where length and precision are not removed from table/column dialog.
|
||||||
| `Issue #4965 <https://redmine.postgresql.org/issues/4965>`_ - Fix an issue where the Interval data type is not displayed in the properties dialog of table/column.
|
| `Issue #4965 <https://redmine.postgresql.org/issues/4965>`_ - Fix an issue where the Interval data type is not displayed in the properties dialog of table/column.
|
||||||
|
|
|
@ -142,6 +142,7 @@ define('pgadmin.node.mview', [
|
||||||
spcname: undefined,
|
spcname: undefined,
|
||||||
toast_autovacuum_enabled: false,
|
toast_autovacuum_enabled: false,
|
||||||
autovacuum_enabled: false,
|
autovacuum_enabled: false,
|
||||||
|
warn_text: undefined,
|
||||||
},
|
},
|
||||||
schema: [{
|
schema: [{
|
||||||
id: 'name', label: gettext('Name'), cell: 'string',
|
id: 'name', label: gettext('Name'), cell: 'string',
|
||||||
|
@ -171,7 +172,22 @@ define('pgadmin.node.mview', [
|
||||||
id: 'definition', label: gettext('Definition'), cell: 'string',
|
id: 'definition', label: gettext('Definition'), cell: 'string',
|
||||||
type: 'text', mode: ['create', 'edit'], group: gettext('Definition'),
|
type: 'text', mode: ['create', 'edit'], group: gettext('Definition'),
|
||||||
tabPanelCodeClass: 'sql-code-control',
|
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_text = gettext('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_text = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.model.warn_text = undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}),
|
||||||
},{
|
},{
|
||||||
id: 'with_data', label: gettext('With data?'),
|
id: 'with_data', label: gettext('With data?'),
|
||||||
group: gettext('Storage'), mode: ['edit', 'create'],
|
group: gettext('Storage'), mode: ['edit', 'create'],
|
||||||
|
|
|
@ -27,9 +27,14 @@ ALTER TABLE {{ conn|qtIdent(view_schema, view_name) }}
|
||||||
{% if def and def != o_data.definition.rstrip(';') %}
|
{% if def and def != o_data.definition.rstrip(';') %}
|
||||||
DROP MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }};
|
DROP MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }};
|
||||||
CREATE 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(
|
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 %}
|
{% 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 %}
|
{% for field in data['vacuum_data']['changed'] %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{{ '\n' }}{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -40,11 +45,14 @@ WITH(
|
||||||
{{ def }}
|
{{ def }}
|
||||||
{% if data.with_data is defined %}
|
{% if data.with_data is defined %}
|
||||||
WITH {{ 'DATA' if data.with_data else 'NO DATA' }};
|
WITH {{ 'DATA' if data.with_data else 'NO DATA' }};
|
||||||
|
{% elif o_data.with_data is defined %}
|
||||||
{% elif o_data.with_data %}
|
|
||||||
WITH {{ 'DATA' if o_data.with_data else 'NO DATA' }};
|
WITH {{ 'DATA' if o_data.with_data else 'NO DATA' }};
|
||||||
|
|
||||||
{% endif %}
|
{% 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 %}
|
{% else %}
|
||||||
{# ======= Alter Tablespace ========= #}
|
{# ======= Alter Tablespace ========= #}
|
||||||
{%- if data.spcoid and o_data.spcoid != data.spcoid -%}
|
{%- if data.spcoid and o_data.spcoid != data.spcoid -%}
|
||||||
|
|
|
@ -27,10 +27,12 @@ ALTER TABLE {{ conn|qtIdent(view_schema, view_name) }}
|
||||||
{% if def and def != o_data.definition.rstrip(';') %}
|
{% if def and def != o_data.definition.rstrip(';') %}
|
||||||
DROP MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }};
|
DROP MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }};
|
||||||
CREATE 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(
|
WITH(
|
||||||
{% if data.fillfactor %}
|
{% 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 %}
|
{% endif %}
|
||||||
{% if data['vacuum_data']['changed']|length > 0 %}
|
{% 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' }}
|
{% 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 %}
|
{% if data.with_data is defined %}
|
||||||
WITH {{ 'DATA' if data.with_data else 'NO DATA' }};
|
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' }};
|
WITH {{ 'DATA' if o_data.with_data else 'NO DATA' }};
|
||||||
|
|
||||||
{% endif %}
|
{% 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 %}
|
{% else %}
|
||||||
{# ======= Alter Tablespace ========= #}
|
{# ======= Alter Tablespace ========= #}
|
||||||
{%- if data.spcoid and o_data.spcoid != data.spcoid -%}
|
{%- if data.spcoid and o_data.spcoid != data.spcoid -%}
|
||||||
|
|
|
@ -10,7 +10,10 @@ WITH (
|
||||||
TABLESPACE pg_default
|
TABLESPACE pg_default
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
WITH NO DATA;
|
WITH DATA;
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -3,4 +3,4 @@ SET(
|
||||||
FILLFACTOR = 18
|
FILLFACTOR = 18
|
||||||
);
|
);
|
||||||
|
|
||||||
REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH NO DATA;
|
REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH DATA;
|
||||||
|
|
|
@ -11,7 +11,10 @@ WITH (
|
||||||
TABLESPACE pg_default
|
TABLESPACE pg_default
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
WITH NO DATA;
|
WITH DATA;
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -6,7 +6,10 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
TABLESPACE pg_default
|
TABLESPACE pg_default
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
WITH DATA;
|
WITH NO DATA;
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -2,3 +2,7 @@ DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
|
WITH NO DATA;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -10,7 +10,10 @@ WITH (
|
||||||
TABLESPACE pg_default
|
TABLESPACE pg_default
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
WITH NO DATA;
|
WITH DATA;
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -16,4 +16,4 @@ COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
||||||
IS 'Testcomment-updated';
|
IS 'Testcomment-updated';
|
||||||
|
|
||||||
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO postgres;
|
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO postgres;
|
||||||
GRANT SELECT, UPDATE, DELETE ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
GRANT SELECT ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
GRANT SELECT, UPDATE, DELETE ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
GRANT SELECT ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
||||||
|
|
|
@ -205,7 +205,7 @@
|
||||||
"msql_endpoint": "NODE-mview.msql_id",
|
"msql_endpoint": "NODE-mview.msql_id",
|
||||||
"data": {
|
"data": {
|
||||||
"fillfactor": "18",
|
"fillfactor": "18",
|
||||||
"with_data": false
|
"with_data": true
|
||||||
},
|
},
|
||||||
"expected_sql_file": "alter_mview_add_fillfactor.sql",
|
"expected_sql_file": "alter_mview_add_fillfactor.sql",
|
||||||
"expected_msql_file": "alter_mview_add_fillfactor_msql.sql"
|
"expected_msql_file": "alter_mview_add_fillfactor_msql.sql"
|
||||||
|
|
|
@ -88,18 +88,8 @@
|
||||||
"grantee":"PUBLIC",
|
"grantee":"PUBLIC",
|
||||||
"grantor":"postgres",
|
"grantor":"postgres",
|
||||||
"privileges":[
|
"privileges":[
|
||||||
{
|
|
||||||
"privilege_type":"r",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"privilege_type":"w",
|
"privilege_type":"r",
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"d",
|
|
||||||
"privilege":true,
|
"privilege":true,
|
||||||
"with_grant":false
|
"with_grant":false
|
||||||
}
|
}
|
||||||
|
@ -135,16 +125,6 @@
|
||||||
"privilege_type":"r",
|
"privilege_type":"r",
|
||||||
"privilege":true,
|
"privilege":true,
|
||||||
"with_grant":false
|
"with_grant":false
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"w",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"d",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
-- View: public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
|
|
||||||
-- DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
TABLESPACE pg_default
|
|
||||||
AS
|
|
||||||
SELECT 1
|
|
||||||
WITH NO DATA;
|
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
|
|
||||||
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
IS 'comment1';
|
|
||||||
|
|
||||||
GRANT ALL ON TABLE public."testmview_$%{}[]()&*^!/@`#" TO PUBLIC;
|
|
||||||
GRANT ALL ON TABLE public."testmview_$%{}[]()&*^!/@`#" TO enterprisedb;
|
|
|
@ -1,16 +0,0 @@
|
||||||
-- View: public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
|
|
||||||
-- DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
WITH (
|
|
||||||
FILLFACTOR = 18,
|
|
||||||
autovacuum_enabled = false
|
|
||||||
)
|
|
||||||
TABLESPACE pg_default
|
|
||||||
AS
|
|
||||||
SELECT 12
|
|
||||||
WITH NO DATA;
|
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
OWNER TO enterprisedb;
|
|
|
@ -1,6 +0,0 @@
|
||||||
ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
SET(
|
|
||||||
FILLFACTOR = 18
|
|
||||||
);
|
|
||||||
|
|
||||||
REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH NO DATA;
|
|
|
@ -1,17 +0,0 @@
|
||||||
-- View: public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
|
|
||||||
-- DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
WITH (
|
|
||||||
FILLFACTOR = 18,
|
|
||||||
autovacuum_analyze_scale_factor = 0.2,
|
|
||||||
autovacuum_enabled = true
|
|
||||||
)
|
|
||||||
TABLESPACE pg_default
|
|
||||||
AS
|
|
||||||
SELECT 12
|
|
||||||
WITH NO DATA;
|
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
OWNER TO enterprisedb;
|
|
|
@ -1,4 +0,0 @@
|
||||||
ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" SET(
|
|
||||||
autovacuum_analyze_scale_factor = 0.2,
|
|
||||||
autovacuum_enabled = true
|
|
||||||
);
|
|
|
@ -1,12 +0,0 @@
|
||||||
-- View: public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
|
|
||||||
-- DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
TABLESPACE pg_default
|
|
||||||
AS
|
|
||||||
SELECT 12
|
|
||||||
WITH DATA;
|
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
OWNER TO enterprisedb;
|
|
|
@ -1,4 +0,0 @@
|
||||||
DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
AS
|
|
||||||
SELECT 12
|
|
|
@ -1,17 +0,0 @@
|
||||||
-- View: public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
|
|
||||||
-- DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
TABLESPACE pg_default
|
|
||||||
AS
|
|
||||||
SELECT 1
|
|
||||||
WITH NO DATA;
|
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
|
|
||||||
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
IS 'comment1';
|
|
||||||
|
|
||||||
GRANT ALL ON TABLE public."testmview_$%{}[]()&*^!/@`#" TO enterprisedb;
|
|
|
@ -1 +0,0 @@
|
||||||
REVOKE ALL ON TABLE public."testmview_$%{}[]()&*^!/@`#" FROM PUBLIC;
|
|
|
@ -1 +0,0 @@
|
||||||
GRANT ALL ON TABLE public."testmview_$%{}[]()&*^!/@`#" TO PUBLIC;
|
|
|
@ -1,16 +0,0 @@
|
||||||
-- View: public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
|
|
||||||
-- DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
WITH (
|
|
||||||
FILLFACTOR = 18,
|
|
||||||
autovacuum_enabled = false
|
|
||||||
)
|
|
||||||
TABLESPACE pg_default
|
|
||||||
AS
|
|
||||||
SELECT 12
|
|
||||||
WITH NO DATA;
|
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
OWNER TO enterprisedb;
|
|
|
@ -1,6 +0,0 @@
|
||||||
ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" SET(
|
|
||||||
autovacuum_enabled = false
|
|
||||||
);
|
|
||||||
ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" RESET(
|
|
||||||
autovacuum_analyze_scale_factor
|
|
||||||
);
|
|
|
@ -1,18 +0,0 @@
|
||||||
-- View: public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
|
|
||||||
-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
WITH (
|
|
||||||
check_option=cascaded,
|
|
||||||
security_barrier=true
|
|
||||||
) AS
|
|
||||||
SELECT test_view_table.col1
|
|
||||||
FROM test_view_table;
|
|
||||||
|
|
||||||
ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
IS 'Testcomment-updated';
|
|
||||||
|
|
||||||
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO enterprisedb;
|
|
|
@ -1,19 +0,0 @@
|
||||||
-- View: public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
|
|
||||||
-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
WITH (
|
|
||||||
check_option=cascaded,
|
|
||||||
security_barrier=true
|
|
||||||
) AS
|
|
||||||
SELECT test_view_table.col1
|
|
||||||
FROM test_view_table;
|
|
||||||
|
|
||||||
ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
IS 'Testcomment-updated';
|
|
||||||
|
|
||||||
GRANT DELETE, UPDATE, SELECT ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
|
||||||
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO enterprisedb;
|
|
|
@ -1 +0,0 @@
|
||||||
GRANT SELECT, UPDATE, DELETE ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
|
|
@ -1,18 +0,0 @@
|
||||||
-- View: public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
|
|
||||||
-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
WITH (
|
|
||||||
check_option=cascaded,
|
|
||||||
security_barrier=true
|
|
||||||
) AS
|
|
||||||
SELECT test_view_table.col1
|
|
||||||
FROM test_view_table;
|
|
||||||
|
|
||||||
ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
IS 'Testcomment-updated';
|
|
||||||
|
|
||||||
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO enterprisedb;
|
|
|
@ -1,4 +0,0 @@
|
||||||
CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
WITH (check_option=cascaded, security_barrier=true)
|
|
||||||
AS
|
|
||||||
SELECT * FROM test_view_table;
|
|
|
@ -1,18 +0,0 @@
|
||||||
-- View: public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
|
|
||||||
-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
WITH (
|
|
||||||
check_option=cascaded,
|
|
||||||
security_barrier=true
|
|
||||||
) AS
|
|
||||||
SELECT test_view_table.col1
|
|
||||||
FROM test_view_table;
|
|
||||||
|
|
||||||
ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
IS 'Testcomment-updated';
|
|
||||||
|
|
||||||
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO enterprisedb;
|
|
|
@ -1 +0,0 @@
|
||||||
REVOKE ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" FROM PUBLIC;
|
|
|
@ -1,7 +0,0 @@
|
||||||
ALTER VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
SET (security_barrier=true);
|
|
||||||
ALTER VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
SET (check_option=cascaded);
|
|
||||||
|
|
||||||
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
IS 'Testcomment-updated';
|
|
|
@ -1,15 +0,0 @@
|
||||||
-- View: public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
|
|
||||||
-- DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
TABLESPACE pg_default
|
|
||||||
AS
|
|
||||||
SELECT 1
|
|
||||||
WITH NO DATA;
|
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
|
|
||||||
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
IS 'comment1';
|
|
|
@ -1,11 +0,0 @@
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
TABLESPACE pg_default
|
|
||||||
AS
|
|
||||||
SELECT 1
|
|
||||||
WITH NO DATA;
|
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
|
|
||||||
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
|
||||||
IS 'comment1';
|
|
|
@ -1,17 +0,0 @@
|
||||||
-- View: public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
|
|
||||||
-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
WITH (
|
|
||||||
check_option=local
|
|
||||||
) AS
|
|
||||||
SELECT test_view_table.col1
|
|
||||||
FROM test_view_table;
|
|
||||||
|
|
||||||
ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
IS 'Testcomment';
|
|
||||||
|
|
||||||
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO enterprisedb;
|
|
|
@ -1,12 +0,0 @@
|
||||||
CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
WITH (
|
|
||||||
check_option=local
|
|
||||||
) AS
|
|
||||||
select col1 from test_view_table;
|
|
||||||
|
|
||||||
ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
OWNER TO enterprisedb;
|
|
||||||
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
|
||||||
IS 'Testcomment';
|
|
||||||
|
|
||||||
GRANT INSERT ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO enterprisedb;
|
|
|
@ -1,256 +0,0 @@
|
||||||
{
|
|
||||||
"scenarios": [
|
|
||||||
{
|
|
||||||
"type": "create",
|
|
||||||
"name": "Create Materialised Views",
|
|
||||||
"endpoint": "NODE-mview.obj",
|
|
||||||
"sql_endpoint": "NODE-mview.sql_id",
|
|
||||||
"msql_endpoint": "NODE-mview.msql",
|
|
||||||
"data": {
|
|
||||||
"spcname": "pg_default",
|
|
||||||
"toast_autovacuum_enabled": false,
|
|
||||||
"autovacuum_enabled": false,
|
|
||||||
"schema": "public",
|
|
||||||
"owner": "enterprisedb",
|
|
||||||
"vacuum_table": [
|
|
||||||
{
|
|
||||||
"name": "autovacuum_analyze_scale_factor"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_analyze_threshold"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_freeze_max_age"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_vacuum_cost_delay"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_vacuum_cost_limit"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_vacuum_scale_factor"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_vacuum_threshold"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_freeze_min_age"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_freeze_table_age"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"vacuum_toast": [
|
|
||||||
{
|
|
||||||
"name": "autovacuum_freeze_max_age"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_vacuum_cost_delay"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_vacuum_cost_limit"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_vacuum_scale_factor"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_vacuum_threshold"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_freeze_min_age"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "autovacuum_freeze_table_age"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"datacl": [],
|
|
||||||
"seclabels": [],
|
|
||||||
"name": "testmview_$%{}[]()&*^!/@`#",
|
|
||||||
"comment": "comment1",
|
|
||||||
"definition": "SELECT 1"
|
|
||||||
},
|
|
||||||
"expected_sql_file": "create_mview.sql",
|
|
||||||
"expected_msql_file": "create_mview_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter Materialised Views (Adding privileges)",
|
|
||||||
"endpoint": "NODE-mview.obj_id",
|
|
||||||
"sql_endpoint": "NODE-mview.sql_id",
|
|
||||||
"msql_endpoint": "NODE-mview.msql_id",
|
|
||||||
"data": {
|
|
||||||
"datacl": {
|
|
||||||
"added": [
|
|
||||||
{
|
|
||||||
"grantee": "PUBLIC",
|
|
||||||
"grantor": "enterprisedb",
|
|
||||||
"privileges": [
|
|
||||||
{
|
|
||||||
"privilege_type": "a",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "r",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "w",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "d",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "D",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "x",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "t",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_mview.sql",
|
|
||||||
"expected_msql_file": "alter_mview_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter Materialised Views (Remove all privileges)",
|
|
||||||
"endpoint": "NODE-mview.obj_id",
|
|
||||||
"sql_endpoint": "NODE-mview.sql_id",
|
|
||||||
"msql_endpoint": "NODE-mview.msql_id",
|
|
||||||
"data": {
|
|
||||||
"datacl": {
|
|
||||||
"deleted": [
|
|
||||||
{
|
|
||||||
"grantee": "PUBLIC",
|
|
||||||
"grantor": "enterprisedb",
|
|
||||||
"privileges": [
|
|
||||||
{
|
|
||||||
"privilege_type": "a",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "r",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "w",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "d",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "D",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "x",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type": "t",
|
|
||||||
"privilege": true,
|
|
||||||
"with_grant": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_mview_drop_all_priv.sql",
|
|
||||||
"expected_msql_file": "alter_mview_drop_all_priv_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter Materialised Views (change definition)",
|
|
||||||
"endpoint": "NODE-mview.obj_id",
|
|
||||||
"sql_endpoint": "NODE-mview.sql_id",
|
|
||||||
"msql_endpoint": "NODE-mview.msql_id",
|
|
||||||
"data": {
|
|
||||||
"definition": "SELECT 12;"
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_mview_definition.sql",
|
|
||||||
"expected_msql_file": "alter_mview_definition_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter Materialised Views (Fillfactor)",
|
|
||||||
"endpoint": "NODE-mview.obj_id",
|
|
||||||
"sql_endpoint": "NODE-mview.sql_id",
|
|
||||||
"msql_endpoint": "NODE-mview.msql_id",
|
|
||||||
"data": {
|
|
||||||
"fillfactor": "18",
|
|
||||||
"with_data": false
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_mview_add_fillfactor.sql",
|
|
||||||
"expected_msql_file": "alter_mview_add_fillfactor_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter Materialised Views (add table parameters)",
|
|
||||||
"endpoint": "NODE-mview.obj_id",
|
|
||||||
"sql_endpoint": "NODE-mview.sql_id",
|
|
||||||
"msql_endpoint": "NODE-mview.msql_id",
|
|
||||||
"data": {
|
|
||||||
"autovacuum_custom": true,
|
|
||||||
"autovacuum_enabled": true,
|
|
||||||
"vacuum_table": {
|
|
||||||
"changed": [
|
|
||||||
{
|
|
||||||
"name": "autovacuum_analyze_scale_factor",
|
|
||||||
"value": 0.2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_mview_add_table_parameter.sql",
|
|
||||||
"expected_msql_file": "alter_mview_add_table_parameter_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter Materialised Views (remove table parameters)",
|
|
||||||
"endpoint": "NODE-mview.obj_id",
|
|
||||||
"sql_endpoint": "NODE-mview.sql_id",
|
|
||||||
"msql_endpoint": "NODE-mview.msql_id",
|
|
||||||
"data": {
|
|
||||||
"autovacuum_custom": true,
|
|
||||||
"autovacuum_enabled": false,
|
|
||||||
"vacuum_table": {
|
|
||||||
"changed": [
|
|
||||||
{
|
|
||||||
"name": "autovacuum_analyze_scale_factor",
|
|
||||||
"value": null
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_mview_remove_table_parameter.sql",
|
|
||||||
"expected_msql_file": "alter_mview_remove_table_parameter_msql.sql"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,178 +0,0 @@
|
||||||
{
|
|
||||||
"scenarios": [
|
|
||||||
{
|
|
||||||
"type": "create",
|
|
||||||
"name": "Create Table for Views",
|
|
||||||
"endpoint": "NODE-table.obj",
|
|
||||||
"sql_endpoint": "NODE-table.sql_id",
|
|
||||||
"data": {
|
|
||||||
"name": "test_view_table",
|
|
||||||
"check_constraint": [],
|
|
||||||
"coll_inherits": "[]",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"name": "col1",
|
|
||||||
"cltype": "integer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"schema": "public"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "create",
|
|
||||||
"name": "Create View",
|
|
||||||
"endpoint": "NODE-view.obj",
|
|
||||||
"sql_endpoint": "NODE-view.sql_id",
|
|
||||||
"msql_endpoint": "NODE-view.msql",
|
|
||||||
"data": {
|
|
||||||
"definition": "select col1 from test_view_table;",
|
|
||||||
"name": "testview_$%{}[]()&*^!@\"'`\\/#",
|
|
||||||
"owner": "enterprisedb",
|
|
||||||
"schema": "public",
|
|
||||||
"check_option": "local",
|
|
||||||
"security_barrier": false,
|
|
||||||
"comment":"Testcomment",
|
|
||||||
"datacl":[{"grantee":"enterprisedb", "grantor":"enterprisedb", "privileges":[{"privilege_type": "a", "privilege": true,
|
|
||||||
"with_grant":false}]}]
|
|
||||||
},
|
|
||||||
"expected_sql_file": "create_view.sql",
|
|
||||||
"expected_msql_file": "create_view_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter View",
|
|
||||||
"endpoint": "NODE-view.obj_id",
|
|
||||||
"sql_endpoint": "NODE-view.sql_id",
|
|
||||||
"msql_endpoint": "NODE-view.msql_id",
|
|
||||||
"data": {
|
|
||||||
"name": "testview_$%{}[]()&*^!@\"'`\\/#",
|
|
||||||
"owner": "enterprisedb",
|
|
||||||
"schema": "public",
|
|
||||||
"check_option": "cascaded",
|
|
||||||
"security_barrier": true,
|
|
||||||
"comment":"Testcomment-updated",
|
|
||||||
"datacl":[{"grantee":"enterprisedb", "grantor":"enterprisedb", "privileges":[{"privilege_type": "a", "privilege": true,
|
|
||||||
"with_grant":false}]}]
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_view.sql",
|
|
||||||
"expected_msql_file": "alter_view_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter View (changing code)",
|
|
||||||
"endpoint": "NODE-view.obj_id",
|
|
||||||
"sql_endpoint": "NODE-view.sql_id",
|
|
||||||
"msql_endpoint": "NODE-view.msql_id",
|
|
||||||
"data": {
|
|
||||||
"definition": "SELECT * FROM test_view_table;"
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_view_definition.sql",
|
|
||||||
"expected_msql_file": "alter_view_definition_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter View (adding privileges)",
|
|
||||||
"endpoint": "NODE-view.obj_id",
|
|
||||||
"sql_endpoint": "NODE-view.sql_id",
|
|
||||||
"msql_endpoint": "NODE-view.msql_id",
|
|
||||||
"data": {
|
|
||||||
"name": "testview_$%{}[]()&*^!@\"'`\\/#",
|
|
||||||
"owner": "enterprisedb",
|
|
||||||
"schema": "public",
|
|
||||||
"check_option": "cascaded",
|
|
||||||
"security_barrier": true,
|
|
||||||
"comment":"Testcomment-updated",
|
|
||||||
"datacl":{
|
|
||||||
"added":[
|
|
||||||
{
|
|
||||||
"grantee":"PUBLIC",
|
|
||||||
"grantor":"enterprisedb",
|
|
||||||
"privileges":[
|
|
||||||
{
|
|
||||||
"privilege_type":"r",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"w",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"d",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_view_add_some_priv.sql",
|
|
||||||
"expected_msql_file": "alter_view_add_some_priv_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alter",
|
|
||||||
"name": "Alter View (deleting privileges)",
|
|
||||||
"endpoint": "NODE-view.obj_id",
|
|
||||||
"sql_endpoint": "NODE-view.sql_id",
|
|
||||||
"msql_endpoint": "NODE-view.msql_id",
|
|
||||||
"data": {
|
|
||||||
"name": "testview_$%{}[]()&*^!@\"'`\\/#",
|
|
||||||
"owner": "enterprisedb",
|
|
||||||
"schema": "public",
|
|
||||||
"check_option": "cascaded",
|
|
||||||
"security_barrier": true,
|
|
||||||
"comment":"Testcomment-updated",
|
|
||||||
"datacl":
|
|
||||||
{
|
|
||||||
"deleted":[
|
|
||||||
{
|
|
||||||
"grantee":"PUBLIC",
|
|
||||||
"grantor":"enterprisedb",
|
|
||||||
"privileges":[
|
|
||||||
{
|
|
||||||
"privilege_type":"r",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"w",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"d",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"expected_sql_file": "alter_view_delete_priv.sql",
|
|
||||||
"expected_msql_file": "alter_view_delete_priv_msql.sql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "delete",
|
|
||||||
"name": "Drop View",
|
|
||||||
"endpoint": "NODE-view.obj_id",
|
|
||||||
"data": {
|
|
||||||
"name": "testview_$%{}[]()&*^!@\"'`\\/#",
|
|
||||||
"owner": "enterprisedb",
|
|
||||||
"schema": "public"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "delete",
|
|
||||||
"name": "Drop Table for view",
|
|
||||||
"endpoint": "NODE-table.obj_id",
|
|
||||||
"data": {
|
|
||||||
"name": "test_view_table",
|
|
||||||
"owner": "enterprisedb",
|
|
||||||
"schema": "public"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -10,7 +10,10 @@ WITH (
|
||||||
TABLESPACE pg_default
|
TABLESPACE pg_default
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
WITH NO DATA;
|
WITH DATA;
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
||||||
OWNER TO enterprisedb;
|
OWNER TO enterprisedb;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -3,4 +3,4 @@ SET(
|
||||||
FILLFACTOR = 18
|
FILLFACTOR = 18
|
||||||
);
|
);
|
||||||
|
|
||||||
REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH NO DATA;
|
REFRESH MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH DATA;
|
||||||
|
|
|
@ -11,7 +11,10 @@ WITH (
|
||||||
TABLESPACE pg_default
|
TABLESPACE pg_default
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
WITH NO DATA;
|
WITH DATA;
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
||||||
OWNER TO enterprisedb;
|
OWNER TO enterprisedb;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -6,7 +6,10 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
TABLESPACE pg_default
|
TABLESPACE pg_default
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
WITH DATA;
|
WITH NO DATA;
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
||||||
OWNER TO enterprisedb;
|
OWNER TO enterprisedb;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -2,3 +2,7 @@ DROP MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#";
|
||||||
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
|
WITH NO DATA;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -10,7 +10,10 @@ WITH (
|
||||||
TABLESPACE pg_default
|
TABLESPACE pg_default
|
||||||
AS
|
AS
|
||||||
SELECT 12
|
SELECT 12
|
||||||
WITH NO DATA;
|
WITH DATA;
|
||||||
|
|
||||||
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
ALTER TABLE public."testmview_$%{}[]()&*^!/@`#"
|
||||||
OWNER TO enterprisedb;
|
OWNER TO enterprisedb;
|
||||||
|
|
||||||
|
COMMENT ON MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#"
|
||||||
|
IS 'comment1';
|
||||||
|
|
|
@ -15,5 +15,5 @@ ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
|
||||||
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
|
||||||
IS 'Testcomment-updated';
|
IS 'Testcomment-updated';
|
||||||
|
|
||||||
GRANT SELECT, UPDATE, DELETE ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
GRANT SELECT ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
||||||
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO enterprisedb;
|
GRANT ALL ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO enterprisedb;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
GRANT SELECT, UPDATE, DELETE ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
GRANT SELECT ON TABLE public."testview_$%{}[]()&*^!@""'`\/#" TO PUBLIC;
|
||||||
|
|
|
@ -205,7 +205,7 @@
|
||||||
"msql_endpoint": "NODE-mview.msql_id",
|
"msql_endpoint": "NODE-mview.msql_id",
|
||||||
"data": {
|
"data": {
|
||||||
"fillfactor": "18",
|
"fillfactor": "18",
|
||||||
"with_data": false
|
"with_data": true
|
||||||
},
|
},
|
||||||
"expected_sql_file": "alter_mview_add_fillfactor.sql",
|
"expected_sql_file": "alter_mview_add_fillfactor.sql",
|
||||||
"expected_msql_file": "alter_mview_add_fillfactor_msql.sql"
|
"expected_msql_file": "alter_mview_add_fillfactor_msql.sql"
|
||||||
|
|
|
@ -88,20 +88,10 @@
|
||||||
"grantee":"PUBLIC",
|
"grantee":"PUBLIC",
|
||||||
"grantor":"enterprisedb",
|
"grantor":"enterprisedb",
|
||||||
"privileges":[
|
"privileges":[
|
||||||
{
|
{
|
||||||
"privilege_type":"r",
|
"privilege_type":"r",
|
||||||
"privilege":true,
|
"privilege":true,
|
||||||
"with_grant":false
|
"with_grant":false
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"w",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"d",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -135,16 +125,6 @@
|
||||||
"privilege_type":"r",
|
"privilege_type":"r",
|
||||||
"privilege":true,
|
"privilege":true,
|
||||||
"with_grant":false
|
"with_grant":false
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"w",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"privilege_type":"d",
|
|
||||||
"privilege":true,
|
|
||||||
"with_grant":false
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1305,6 +1305,40 @@ define('pgadmin.browser.node', [
|
||||||
}
|
}
|
||||||
}.bind(panel),
|
}.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 && !_.isUndefined(view.model.warn_text) && !_.isNull(view.model.warn_text)) {
|
||||||
|
let warn_text;
|
||||||
|
warn_text = gettext(view.model.warn_text);
|
||||||
|
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) {
|
onSave = function(view, saveBtn) {
|
||||||
var m = view.model,
|
var m = view.model,
|
||||||
d = m.toJSON(true),
|
d = m.toJSON(true),
|
||||||
|
@ -1498,7 +1532,14 @@ define('pgadmin.browser.node', [
|
||||||
register: function(btn) {
|
register: function(btn) {
|
||||||
// Save the changes
|
// Save the changes
|
||||||
btn.on('click',() => {
|
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');
|
}], 'footer', 'pg-prop-btn-group-below');
|
||||||
|
|
Loading…
Reference in New Issue