From b64896f558fb100a93c976cbffe7cc3d73632e47 Mon Sep 17 00:00:00 2001 From: Aditya Toshniwal Date: Fri, 8 May 2020 13:49:00 +0530 Subject: [PATCH] Fixed generated SQL issue for auto vacuum options. Fixes #5398 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed some more issues: 1) pgAdmin allows only true or false values for autovacuum_enabled, and there is no way to reset it individually without disabling a custom auto vacuum. To fix this, the control is changed from the switch to three state buttons. 2) Setting any vacuum options to zero made the option disappear from the SQL. 3) Right-click on a table with vacuum options set and create a new table. 4) The parameters tab will have the options prefilled. 5) Changed the UI a bit to remove unnecessary space around. Added "Autovacuum" before enabled. The SQL generated was appending a ".0" to decimal vacuum options. Changed to remove the leading ".0". --- .../images/materialized_view_parameter.png | Bin 95185 -> 114152 bytes docs/en_US/images/table_parameter.png | Bin 93061 -> 122363 bytes docs/en_US/materialized_view_dialog.rst | 7 +- docs/en_US/release_notes_4_22.rst | 1 + docs/en_US/table_dialog.rst | 4 +- .../databases/schemas/static/js/schema.js | 88 +++----- .../databases/schemas/tables/__init__.py | 71 ++++-- .../tables/partitions/static/js/partition.js | 4 +- .../schemas/tables/static/js/table.js | 14 +- .../partitions/sql/gpdb/5_plus/properties.sql | 2 - .../partitions/sql/pg/10_plus/properties.sql | 6 - .../partitions/sql/pg/12_plus/properties.sql | 6 - .../sql/ppas/10_plus/properties.sql | 6 - .../sql/ppas/12_plus/properties.sql | 6 - .../templates/tables/sql/10_plus/create.sql | 14 +- .../tables/sql/10_plus/properties.sql | 12 +- .../templates/tables/sql/11_plus/create.sql | 14 +- .../tables/sql/11_plus/properties.sql | 12 +- .../templates/tables/sql/11_plus/update.sql | 32 ++- .../templates/tables/sql/12_plus/create.sql | 39 ++-- .../tables/sql/12_plus/properties.sql | 12 +- .../templates/tables/sql/12_plus/update.sql | 34 ++- .../tables/sql/9.1_plus/properties.sql | 12 +- .../templates/tables/sql/9.6_plus/create.sql | 14 +- .../tables/sql/9.6_plus/properties.sql | 12 +- .../templates/tables/sql/9.6_plus/update.sql | 32 ++- .../templates/tables/sql/default/create.sql | 14 +- .../tables/sql/default/properties.sql | 12 +- .../templates/tables/sql/default/update.sql | 34 ++- .../tables/sql/gpdb_5.0_plus/properties.sql | 4 - .../tables/tests/test_table_parameters.py | 153 ++++++++----- .../servers/databases/schemas/tables/utils.py | 36 +-- .../servers/databases/schemas/utils.py | 6 +- .../databases/schemas/views/__init__.py | 206 ++++++------------ .../schemas/views/static/js/mview.js | 24 +- .../mviews/pg/9.3_plus/sql/create.sql | 14 +- .../mviews/pg/9.3_plus/sql/properties.sql | 10 +- .../mviews/pg/9.3_plus/sql/update.sql | 94 ++++---- .../mviews/pg/9.4_plus/sql/create.sql | 14 +- .../mviews/pg/9.4_plus/sql/properties.sql | 10 +- .../mviews/pg/9.4_plus/sql/update.sql | 79 +++---- .../mviews/ppas/9.3_plus/sql/create.sql | 14 +- .../mviews/ppas/9.3_plus/sql/properties.sql | 10 +- .../mviews/ppas/9.3_plus/sql/update.sql | 79 +++---- .../9.4_plus/alter_mview_add_fillfactor.sql | 3 +- .../alter_mview_add_table_parameter.sql | 4 +- .../alter_mview_add_table_parameter_msql.sql | 4 +- .../alter_mview_remove_table_parameter.sql | 3 +- ...lter_mview_remove_table_parameter_msql.sql | 6 +- .../views/tests/pg/9.4_plus/test_mview.json | 58 +---- .../9.4_plus/alter_mview_add_fillfactor.sql | 3 +- .../alter_mview_add_table_parameter.sql | 4 +- .../alter_mview_add_table_parameter_msql.sql | 4 +- .../alter_mview_remove_table_parameter.sql | 3 +- ...lter_mview_remove_table_parameter_msql.sql | 6 +- .../views/tests/ppas/9.4_plus/test_mview.json | 58 +---- .../views/tests/test_mviews_parameters.py | 153 ++++++++----- 57 files changed, 719 insertions(+), 857 deletions(-) mode change 100755 => 100644 docs/en_US/images/materialized_view_parameter.png mode change 100755 => 100644 docs/en_US/images/table_parameter.png diff --git a/docs/en_US/images/materialized_view_parameter.png b/docs/en_US/images/materialized_view_parameter.png old mode 100755 new mode 100644 index ae8d7cd8aff25d7ecf63e8e76dfd7fe5d99ee988..e5794299c8d1e9072e60498235d5f6382b683435 GIT binary patch literal 114152 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

H=J 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⪚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

    kq>&z_%WVPtVE#jd=wFkKzEeEYm& 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
    rnKQ+2l#{E(P>A?RTBJ% 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 Q4)&3iRFbF?Gy3^|0HYa`H2?qr diff --git a/docs/en_US/images/table_parameter.png b/docs/en_US/images/table_parameter.png old mode 100755 new mode 100644 index 6ad16c10f9a8948ed8e9a49fadbd4825e2c2b2d9..b8399f6a0197e0efa83b889f9c5f617af65caf0a GIT binary patch literal 122363 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

    d7I5(`HOjjzch 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

    CF5_MYQu^N8jN*Hp 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 diff --git a/docs/en_US/materialized_view_dialog.rst b/docs/en_US/materialized_view_dialog.rst index 534e86b73..c13e3fb63 100644 --- a/docs/en_US/materialized_view_dialog.rst +++ b/docs/en_US/materialized_view_dialog.rst @@ -67,9 +67,10 @@ thresholds; use the *Table* tab and the *Toast Table* tab to customize values for the table and the associated toast table. To change the default values: * Move the *Custom auto-vacuum?* switch to the *Yes* position to perform custom - maintenance on the materialized view. -* Move the *Enabled?* switch to the *Yes* position to select values in the - *Vacuum table*. Provide values for each row in the *Value* column. + maintenance on the materialized view and to select values in the + *Vacuum table*. The *Vacuum Table* provides default values for maintenance + operations. +* Changing *Autovacuum enabled?* to *Not set* will reset autovacuum_enabled. Click the *Security* tab to continue. diff --git a/docs/en_US/release_notes_4_22.rst b/docs/en_US/release_notes_4_22.rst index ffcfe6bcf..3e2772ce8 100644 --- a/docs/en_US/release_notes_4_22.rst +++ b/docs/en_US/release_notes_4_22.rst @@ -26,6 +26,7 @@ Bug fixes | `Issue #4279 `_ - Ensure that file browse "home" button should point to $HOME rather than /. | `Issue #4840 `_ - Ensure that 'With OID' option should be disabled while taking backup of database server version 12 and above. | `Issue #5001 `_ - Fixed invalid literal issue when removing the connection limit for the existing role. +| `Issue #5398 `_ - Fixed generated SQL issue for auto vacuum options. | `Issue #5422 `_ - Ensure that the dependencies tab shows correct information for Synonyms. | `Issue #5434 `_ - Fixed an issue where the newly added table is not alphabetically added to the tree. | `Issue #5440 `_ - Fixed list sorting issue in the schema diff tool. diff --git a/docs/en_US/table_dialog.rst b/docs/en_US/table_dialog.rst index abb009649..02401da33 100644 --- a/docs/en_US/table_dialog.rst +++ b/docs/en_US/table_dialog.rst @@ -485,10 +485,10 @@ thresholds; use the *Table* tab and the *Toast Table* tab to customize values for the table and the associated toast table: * Move the *Custom auto-vacuum?* switch to the *Yes* position to perform custom - maintenance on the table. -* Move the *Enabled?* switch to the *Yes* position to select values in the + maintenance on the table and to select values in the *Vacuum table*. The *Vacuum Table* provides default values for maintenance operations. +* Changing *Autovacuum enabled?* to *Not set* will reset autovacuum_enabled. Provide a custom value in the *Value* column for each metric listed in the *Label* column. diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/static/js/schema.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/static/js/schema.js index 084e4cd9e..f606e384f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/static/js/schema.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/static/js/schema.js @@ -88,7 +88,9 @@ define('pgadmin.node.schema', [ var gridHeader = _.template([ '

    ', - ' <%-label%>', + '<% if (label && label != "") %> {', + ' <%-label%>', + '}', '
    '].join('\n')), gridBody = $('
    ').append( gridHeader(attributes) @@ -151,7 +153,8 @@ define('pgadmin.node.schema', [ },{ id: 'autovacuum_custom', label: gettext('Custom auto-vacuum?'), group: gettext('Table'), mode: ['edit', 'create'], - type: 'switch', + type: 'switch', controlLabelClassName: 'control-label pg-el-sm-4 pg-el-12', + controlsClassName: 'pgadmin-controls pg-el-sm-8 pg-el-12', disabled: function(m) { // If table is partitioned table then disabled it. if (m.top && m.top.get('is_partitioned')) { @@ -169,45 +172,29 @@ define('pgadmin.node.schema', [ return true; }, },{ - id: 'autovacuum_enabled', label: gettext('Enabled?'), + id: 'autovacuum_enabled', label: gettext('Autovacuum Enabled?'), group: gettext('Table'), mode: ['edit', 'create'], - type: 'switch', + type: 'radioModern', controlLabelClassName: 'control-label pg-el-sm-4 pg-el-12', + controlsClassName: 'pgadmin-controls pg-el-sm-8 pg-el-12', + options: [ + {'label': gettext('Not set'), 'value': 'x'}, + {'label': gettext('Yes'), 'value': 't'}, + {'label': gettext('No'), 'value': 'f'}, + ], deps: ['autovacuum_custom'], disabled: function(m) { if(!m.top.inSchema.apply(this, [m]) && m.get('autovacuum_custom') == true) { - // If reloptions is null then set the autovacuum_enabled to true. - if (!_.isUndefined(m.get('reloptions')) && - _.isNull(m.get('reloptions'))) { - setTimeout(function() { - m.set('autovacuum_enabled', true); - }, 10); - } return false; } // We also need to unset rest of all setTimeout(function() { - m.set('autovacuum_enabled', false); + m.set('autovacuum_enabled', 'x'); }, 10); return true; }, - control: Backform.SwitchControl.extend({ - onChange: function() { - Backform.SwitchControl.prototype.onChange.apply(this, arguments); - let m = this.model; - // If value of autovacuum_enabled is false and reloptions is null - // then we should set the value of autovacuum_custom to false, as - // there is no query to run. - if (!m.get('autovacuum_enabled') && !_.isUndefined(m.get('reloptions')) - && _.isNull(m.get('reloptions'))) { - setTimeout(function() { - m.set('autovacuum_custom', false); - }, 10); - } - }, - }), },{ id: 'vacuum_table', label: '', model: Backform.VacuumTableModel, editable: false, type: 'collection', @@ -224,7 +211,7 @@ define('pgadmin.node.schema', [ name: 'value', label: gettext('Value'), cellHeaderClasses:'width_percent_30', cellFunction: Backform.cellFunction, editable: function(m) { - return m.handler.get('autovacuum_enabled'); + return m.handler.get('autovacuum_custom'); }, headerCell: Backgrid.Extension.CustomHeaderCell, }, { @@ -235,13 +222,14 @@ define('pgadmin.node.schema', [ }, ], }), - deps: ['autovacuum_enabled'], + deps: ['autovacuum_custom'], },{ id: 'spacer_ctrl', group: gettext('TOAST table'), mode: ['edit', 'create'], type: 'spacer', },{ id: 'toast_autovacuum', label: gettext('Custom auto-vacuum?'), group: gettext('TOAST table'), mode: ['edit', 'create'], - type: 'switch', + type: 'switch', controlLabelClassName: 'control-label pg-el-sm-4 pg-el-12', + controlsClassName: 'pgadmin-controls pg-el-sm-8 pg-el-12', disabled: function(m) { // We need to check additional condition to toggle enable/disable // for table auto-vacuum @@ -255,50 +243,32 @@ define('pgadmin.node.schema', [ return true; }, },{ - id: 'toast_autovacuum_enabled', label: gettext('Enabled?'), + id: 'toast_autovacuum_enabled', label: gettext('Autovacuum Enabled?'), group: gettext('TOAST table'), mode: ['edit', 'create'], - type: 'switch', + type: 'radioModern', controlLabelClassName: 'control-label pg-el-sm-4 pg-el-12', + controlsClassName: 'pgadmin-controls pg-el-sm-8 pg-el-12', + options: [ + {'label': gettext('Not set'), 'value': 'x'}, + {'label': gettext('Yes'), 'value': 't'}, + {'label': gettext('No'), 'value': 'f'}, + ], deps:['toast_autovacuum'], disabled: function(m) { // If in schema & in create mode then enable it if(!m.top.inSchema.apply(this, [m]) && m.get('toast_autovacuum') === true) { - // If reloptions is null then set the autovacuum_enabled to true. - if (!_.isUndefined(m.get('toast_reloptions')) && - _.isNull(m.get('toast_reloptions'))) { - setTimeout(function() { - m.set('toast_autovacuum_enabled', true); - }, 10); - } - return false; } if (m.isNew() || m.get('hastoasttable')) { // we also need to unset rest of all setTimeout(function() { - m.set('toast_autovacuum_enabled', false); + m.set('toast_autovacuum_enabled', 'x'); }, 10); } return true; }, - control: Backform.SwitchControl.extend({ - onChange: function() { - Backform.SwitchControl.prototype.onChange.apply(this, arguments); - - let m = this.model; - // If value of autovacuum_enabled is false and reloptions is null - // then we should set the value of autovacuum_custom to false, as - // there is no query to run. - if (!m.get('toast_autovacuum_enabled') && !_.isUndefined(m.get('toast_reloptions')) - && _.isNull(m.get('toast_reloptions'))) { - setTimeout(function() { - m.set('toast_autovacuum', false); - }, 10); - } - }, - }), },{ id: 'vacuum_toast', label: '', model: Backform.VacuumTableModel, type: 'collection', editable: function(m) { @@ -318,7 +288,7 @@ define('pgadmin.node.schema', [ cellHeaderClasses:'width_percent_30', headerCell: Backgrid.Extension.CustomHeaderCell, cellFunction: Backform.cellFunction, editable: function(m) { - return m.handler.get('toast_autovacuum_enabled'); + return m.handler.get('toast_autovacuum'); }, }, { @@ -329,7 +299,7 @@ define('pgadmin.node.schema', [ }, ], }), - deps: ['toast_autovacuum_enabled'], + deps: ['toast_autovacuum'], }]; // Extend the browser's collection class for schema collection diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py index 03073e277..68b945c56 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py @@ -619,6 +619,42 @@ class TableView(BaseTableView, DataTypeReader, VacuumSettings, return False, gone( gettext("The specified table could not be found.")) + # Set value based on + # x: No set, t: true, f: false + res['rows'][0]['autovacuum_enabled'] = 'x' \ + if res['rows'][0]['autovacuum_enabled'] is None else \ + {True: 't', False: 'f'}[res['rows'][0]['autovacuum_enabled']] + + res['rows'][0]['toast_autovacuum_enabled'] = 'x' \ + if res['rows'][0]['toast_autovacuum_enabled'] is None else \ + {True: 't', False: 'f'}[res['rows'][0]['toast_autovacuum_enabled']] + + # Enable custom autovaccum only if one of the options is set + # or autovacuum is set + res['rows'][0]['autovacuum_custom'] = any([ + res['rows'][0]['autovacuum_vacuum_threshold'], + res['rows'][0]['autovacuum_vacuum_scale_factor'], + res['rows'][0]['autovacuum_analyze_threshold'], + res['rows'][0]['autovacuum_analyze_scale_factor'], + res['rows'][0]['autovacuum_vacuum_cost_delay'], + res['rows'][0]['autovacuum_vacuum_cost_limit'], + res['rows'][0]['autovacuum_freeze_min_age'], + res['rows'][0]['autovacuum_freeze_max_age'], + res['rows'][0]['autovacuum_freeze_table_age']]) \ + or res['rows'][0]['autovacuum_enabled'] in ('t', 'f') + + res['rows'][0]['toast_autovacuum'] = any([ + res['rows'][0]['toast_autovacuum_vacuum_threshold'], + res['rows'][0]['toast_autovacuum_vacuum_scale_factor'], + res['rows'][0]['toast_autovacuum_analyze_threshold'], + res['rows'][0]['toast_autovacuum_analyze_scale_factor'], + res['rows'][0]['toast_autovacuum_vacuum_cost_delay'], + res['rows'][0]['toast_autovacuum_vacuum_cost_limit'], + res['rows'][0]['toast_autovacuum_freeze_min_age'], + res['rows'][0]['toast_autovacuum_freeze_max_age'], + res['rows'][0]['toast_autovacuum_freeze_table_age']]) \ + or res['rows'][0]['toast_autovacuum_enabled'] in ('t', 'f') + # We will check the threshold set by user before executing # the query because that can cause performance issues # with large result set @@ -943,6 +979,11 @@ class TableView(BaseTableView, DataTypeReader, VacuumSettings, data['partition_scheme'] = self.get_partition_scheme(data) partitions_sql = self.get_partitions_sql(data) + # Update the vacuum table settings. + BaseTableView.update_vacuum_settings(self, 'vacuum_table', data) + # Update the vacuum toast table settings. + BaseTableView.update_vacuum_settings(self, 'vacuum_toast', data) + SQL = render_template( "/".join([self.table_template_path, 'create.sql']), data=data, conn=self.conn @@ -1023,14 +1064,9 @@ class TableView(BaseTableView, DataTypeReader, VacuumSettings, data[k] = v try: - SQL = render_template( - "/".join([self.table_template_path, 'properties.sql']), - did=did, scid=scid, tid=tid, - datlastsysoid=self.datlastsysoid - ) - status, res = self.conn.execute_dict(SQL) + status, res = self._fetch_properties(did, scid, tid) if not status: - return internal_server_error(errormsg=res) + return res return super(TableView, self).update( gid, sid, did, scid, tid, data, res) @@ -1266,14 +1302,9 @@ class TableView(BaseTableView, DataTypeReader, VacuumSettings, res = None if tid is not None: - SQL = render_template( - "/".join([self.table_template_path, 'properties.sql']), - did=did, scid=scid, tid=tid, - datlastsysoid=self.datlastsysoid - ) - status, res = self.conn.execute_dict(SQL) + status, res = self._fetch_properties(did, scid, tid) if not status: - return internal_server_error(errormsg=SQL) + return res SQL, name = self.get_sql(did, scid, tid, data, res) SQL = re.sub('\n{2,}', '\n\n', SQL) @@ -1335,17 +1366,9 @@ class TableView(BaseTableView, DataTypeReader, VacuumSettings, """ main_sql = [] - SQL = render_template( - "/".join([self.table_template_path, 'properties.sql']), - did=did, scid=scid, tid=tid, - datlastsysoid=self.datlastsysoid - ) - status, res = self.conn.execute_dict(SQL) + status, res = self._fetch_properties(did, scid, tid) if not status: - return internal_server_error(errormsg=res) - - if len(res['rows']) == 0: - return gone(gettext("The specified table could not be found.")) + return res data = res['rows'][0] diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/static/js/partition.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/static/js/partition.js index 9ce744cfa..68b2209a8 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/static/js/partition.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/static/js/partition.js @@ -330,8 +330,8 @@ function( is_sys_table: undefined, coll_inherits: [], hastoasttable: true, - toast_autovacuum_enabled: false, - autovacuum_enabled: false, + toast_autovacuum_enabled: 'x', + autovacuum_enabled: 'x', primary_key: [], partitions: [], partition_type: 'range', diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.js index d65957132..0e73de872 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.js @@ -300,8 +300,8 @@ define('pgadmin.node.table', [ is_sys_table: undefined, coll_inherits: [], hastoasttable: true, - toast_autovacuum_enabled: false, - autovacuum_enabled: false, + toast_autovacuum_enabled: 'x', + autovacuum_enabled: 'x', primary_key: [], partitions: [], partition_type: 'range', @@ -1149,6 +1149,16 @@ define('pgadmin.node.table', [ id: 'vacuum_settings_str', label: gettext('Storage settings'), type: 'multiline', group: 'advanced', mode: ['properties'], }], + sessChanged: function() { + /* If only custom autovacuum option is enabled the check if the options table is also changed. */ + if(_.size(this.sessAttrs) == 2 && this.sessAttrs['autovacuum_custom'] && this.sessAttrs['toast_autovacuum']) { + return this.get('vacuum_table').sessChanged() || this.get('vacuum_toast').sessChanged(); + } + if(_.size(this.sessAttrs) == 1 && (this.sessAttrs['autovacuum_custom'] || this.sessAttrs['toast_autovacuum'])) { + return this.get('vacuum_table').sessChanged() || this.get('vacuum_toast').sessChanged(); + } + return pgBrowser.DataModel.prototype.sessChanged.apply(this); + }, validate: function() { var msg, name = this.get('name'), diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/gpdb/5_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/gpdb/5_plus/properties.sql index bc7ce83b4..c2cfd974a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/gpdb/5_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/gpdb/5_plus/properties.sql @@ -58,8 +58,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, -- Added for pgAdmin4 - (CASE WHEN array_length(rel.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, NULL AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table, -- Added for partition table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/pg/10_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/pg/10_plus/properties.sql index 4bf44a156..48e6248d1 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/pg/10_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/pg/10_plus/properties.sql @@ -49,15 +49,9 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, typ.typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (CASE WHEN array_length(rel.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table, -- Added for partition table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/pg/12_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/pg/12_plus/properties.sql index 40a257b5b..c2c8e4274 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/pg/12_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/pg/12_plus/properties.sql @@ -49,15 +49,9 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, typ.typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (CASE WHEN array_length(rel.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table, -- Added for partition table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/ppas/10_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/ppas/10_plus/properties.sql index 4bf44a156..48e6248d1 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/ppas/10_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/ppas/10_plus/properties.sql @@ -49,15 +49,9 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, typ.typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (CASE WHEN array_length(rel.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table, -- Added for partition table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/ppas/12_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/ppas/12_plus/properties.sql index 40a257b5b..c2c8e4274 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/ppas/12_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partitions/sql/ppas/12_plus/properties.sql @@ -49,15 +49,9 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, typ.typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (CASE WHEN array_length(rel.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table, -- Added for partition table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/10_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/10_plus/create.sql index dafc87aa2..0e0fdd263 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/10_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/10_plus/create.sql @@ -78,15 +78,15 @@ CACHE {{c.seqcache|int}} {% endif %} WITH ( OIDS = {% if data.relhasoids %}TRUE{% else %}FALSE{% endif %}{% if data.fillfactor %}, FILLFACTOR = {{ data.fillfactor }}{% endif %}{% if data.parallel_workers is defined and data.parallel_workers != '' and data.parallel_workers != None %}, - parallel_workers = {{ data.parallel_workers }}{% endif %}{% if data.autovacuum_custom %}, - autovacuum_enabled = {% if data.autovacuum_enabled %}TRUE{% else %}FALSE{% endif %}{% endif %}{% if data.toast_autovacuum %}, - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}TRUE{% else %}FALSE{% endif %} -{% endif %}{% if data.autovacuum_enabled and data.vacuum_table|length > 0 %} -{% for opt in data.vacuum_table %}{% if opt.name and opt.value %} + parallel_workers = {{ data.parallel_workers }}{% endif %}{% if data.autovacuum_enabled in ('t', 'f') %}, + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% endif %}{% if data.toast_autovacuum_enabled in ('t', 'f') %}, + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %} +{% endif %}{% if data.autovacuum_custom and data.vacuum_table|length > 0 %} +{% for opt in data.vacuum_table %}{% if opt.name and opt.value is defined %} , {{opt.name}} = {{opt.value}}{% endif %} -{% endfor %}{% endif %}{% if data.toast_autovacuum_enabled and data.vacuum_toast|length > 0 %} -{% for opt in data.vacuum_toast %}{% if opt.name and opt.value %} +{% endfor %}{% endif %}{% if data.toast_autovacuum and data.vacuum_toast|length > 0 %} +{% for opt in data.vacuum_toast %}{% if opt.name and opt.value is defined %} , toast.{{opt.name}} = {{opt.value}}{% endif %} {% endfor %}{% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/10_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/10_plus/properties.sql index 5707f46d1..7c3a67c9a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/10_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/10_plus/properties.sql @@ -28,8 +28,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r (CASE WHEN rel.relpersistence = 'u' THEN true ELSE false END) AS relpersistence, substring(array_to_string(rel.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, substring(array_to_string(rel.reloptions, ',') FROM 'parallel_workers=([0-9]*)') AS parallel_workers, - (CASE WHEN (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS autovacuum_vacuum_scale_factor, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS autovacuum_analyze_threshold, @@ -39,8 +38,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS autovacuum_freeze_min_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS toast_autovacuum_vacuum_scale_factor, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS toast_autovacuum_analyze_threshold, @@ -50,16 +48,10 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, CASE WHEN typ.typname IS NOT NULL THEN (select quote_ident(nspname) FROM pg_namespace WHERE oid = {{scid}}::oid )||'.'||quote_ident(typ.typname) ELSE typ.typname END AS typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (array_to_string(rel.reloptions, ',') like '%autovacuum%') AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table -- Added for partition table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/create.sql index caec8f520..73717cd2d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/create.sql @@ -79,15 +79,15 @@ WITH ( OIDS = {% if data.relhasoids %}TRUE{% else %}FALSE{% endif %}{% if data.fillfactor %}, FILLFACTOR = {{ data.fillfactor }}{% endif %}{% if data.parallel_workers is defined and data.parallel_workers != '' and data.parallel_workers != None %}, parallel_workers = {{ data.parallel_workers }}{% endif %}{% if data.toast_tuple_target is defined and data.toast_tuple_target != '' and data.toast_tuple_target != None %}, - toast_tuple_target = {{ data.toast_tuple_target }}{% endif %}{% if data.autovacuum_custom %}, - autovacuum_enabled = {% if data.autovacuum_enabled %}TRUE{% else %}FALSE{% endif %}{% endif %}{% if data.toast_autovacuum %}, - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}TRUE{% else %}FALSE{% endif %} -{% endif %}{% if data.autovacuum_enabled and data.vacuum_table|length > 0 %} -{% for opt in data.vacuum_table %}{% if opt.name and opt.value %} + toast_tuple_target = {{ data.toast_tuple_target }}{% endif %}{% if data.autovacuum_enabled in ('t', 'f') %}, + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% endif %}{% if data.toast_autovacuum_enabled in ('t', 'f') %}, + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %} +{% endif %}{% if data.autovacuum_custom and data.vacuum_table|length > 0 %} +{% for opt in data.vacuum_table %}{% if opt.name and opt.value is defined %} , {{opt.name}} = {{opt.value}}{% endif %} -{% endfor %}{% endif %}{% if data.toast_autovacuum_enabled and data.vacuum_toast|length > 0 %} -{% for opt in data.vacuum_toast %}{% if opt.name and opt.value %} +{% endfor %}{% endif %}{% if data.toast_autovacuum and data.vacuum_toast|length > 0 %} +{% for opt in data.vacuum_toast %}{% if opt.name and opt.value is defined %} , toast.{{opt.name}} = {{opt.value}}{% endif %} {% endfor %}{% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/properties.sql index 1d7e596b8..f874f52ac 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/properties.sql @@ -29,8 +29,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(rel.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, substring(array_to_string(rel.reloptions, ',') FROM 'parallel_workers=([0-9]*)') AS parallel_workers, substring(array_to_string(rel.reloptions, ',') FROM 'toast_tuple_target=([0-9]*)') AS toast_tuple_target, - (CASE WHEN (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS autovacuum_vacuum_scale_factor, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS autovacuum_analyze_threshold, @@ -40,8 +39,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS autovacuum_freeze_min_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS toast_autovacuum_vacuum_scale_factor, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS toast_autovacuum_analyze_threshold, @@ -51,16 +49,10 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, CASE WHEN typ.typname IS NOT NULL THEN (select quote_ident(nspname) FROM pg_namespace WHERE oid = {{scid}}::oid )||'.'||quote_ident(typ.typname) ELSE typ.typname END AS typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (array_to_string(rel.reloptions, ',') like '%autovacuum%') AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table -- Added for partition table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/update.sql index 0f27dbed2..d5b9d367c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/11_plus/update.sql @@ -115,14 +115,14 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( autovacuum_freeze_table_age ); {% else %} -{% if data.autovacuum_enabled is defined or has_vacuum_set %} +{% if (data.autovacuum_enabled in ('t', 'f') and data.autovacuum_enabled != o_data.autovacuum_enabled) or has_vacuum_set %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( -{% if data.autovacuum_enabled is defined and data.autovacuum_enabled != o_data.autovacuum_enabled %} - autovacuum_enabled = {% if data.autovacuum_enabled %}true{% else %}false{% endif %}{% if has_vacuum_set %}, +{% if data.autovacuum_enabled in ('t', 'f') and data.autovacuum_enabled != o_data.autovacuum_enabled %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if has_vacuum_set %}, {% endif %} {% endif %} {% if has_vacuum_set %} -{% for opt in data.vacuum_table.set_values %}{% if opt.name and opt.value %} +{% for opt in data.vacuum_table.set_values %}{% if opt.name and opt.value is defined %} {{opt.name}} = {{opt.value}}{% if not loop.last %}, {% endif %} {% endif %} @@ -131,13 +131,19 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( ); {% endif %} -{% if has_vacuum_reset %} +{% if (data.autovacuum_enabled == 'x' and data.autovacuum_enabled != o_data.autovacuum_enabled) or has_vacuum_reset %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( +{% if data.autovacuum_enabled =='x' and data.autovacuum_enabled != o_data.autovacuum_enabled %} + autovacuum_enabled{% if has_vacuum_reset %}, +{% endif %} +{% endif %} +{% if has_vacuum_reset %} {% for opt in data.vacuum_table.reset_values %}{% if opt.name %} {{opt.name}}{% if not loop.last %}, {% endif %} {% endif %} {% endfor %} +{% endif %} ); {% endif %} @@ -165,14 +171,14 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( toast.autovacuum_analyze_scale_factor ); {% else %} -{% if data.toast_autovacuum_enabled is defined or has_vacuum_toast_set %} +{% if (data.toast_autovacuum_enabled in ('t', 'f') and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled) or has_vacuum_toast_set %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( -{% if data.toast_autovacuum_enabled is defined and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}true{% else %}false{% endif %}{% if has_vacuum_toast_set %}, +{% if data.toast_autovacuum_enabled in ('t', 'f') and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if has_vacuum_toast_set %}, {% endif %} {% endif %} {% if has_vacuum_toast_set %} -{% for opt in data.vacuum_toast.set_values %}{% if opt.name and opt.value %} +{% for opt in data.vacuum_toast.set_values %}{% if opt.name and opt.value is defined %} toast.{{opt.name}} = {{opt.value}}{% if not loop.last %}, {% endif %} {% endif %} @@ -181,13 +187,19 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( ); {% endif %} -{% if has_vacuum_toast_reset %} +{% if (data.toast_autovacuum_enabled == 'x' and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled) or has_vacuum_toast_reset %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( +{% if data.toast_autovacuum_enabled == 'x' and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} + toast.autovacuum_enabled{% if has_vacuum_toast_reset %}, +{% endif %} +{% endif %} +{% if has_vacuum_toast_reset %} {% for opt in data.vacuum_toast.reset_values %}{% if opt.name %} toast.{{opt.name}}{% if not loop.last %}, {% endif %} {% endif %} {% endfor %} +{% endif %} ); {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/create.sql index 486bc3091..79d5d74b6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/create.sql @@ -17,7 +17,7 @@ {% set empty_bracket = "\n(\n)"%} {% endif %} {% set with_clause = false%} -{% if data.fillfactor or data.parallel_workers or data.toast_tuple_target or data.autovacuum_custom or data.autovacuum_enabled or data.toast_autovacuum or data.toast_autovacuum_enabled or (data.autovacuum_enabled and data.vacuum_table|length > 0) or (data.toast_autovacuum_enabled and data.vacuum_toast|length > 0) %} +{% if data.fillfactor or data.parallel_workers or data.toast_tuple_target or data.autovacuum_custom or data.autovacuum_enabled in ('t', 'f') or data.toast_autovacuum or data.toast_autovacuum_enabled in ('t', 'f') %} {% set with_clause = true%} {% endif %} CREATE {% if data.relpersistence %}UNLOGGED {% endif %}TABLE {{conn|qtIdent(data.schema, data.name)}}{{empty_bracket}} @@ -83,30 +83,31 @@ CACHE {{c.seqcache|int}} {% endif %} {% endif %} {% if with_clause %} -{% set add_comma = false%} +{% set ns = namespace(add_comma=false) %} WITH ( -{% if data.fillfactor %}{% set add_comma = true%} +{% if data.fillfactor %}{% set ns.add_comma = true%} FILLFACTOR = {{ data.fillfactor }}{% endif %}{% if data.parallel_workers %} -{% if add_comma %}, +{% if ns.add_comma %}, {% endif %} - parallel_workers = {{ data.parallel_workers }}{% set add_comma = true%}{% endif %}{% if data.toast_tuple_target %} -{% if add_comma %}, + parallel_workers = {{ data.parallel_workers }}{% set ns.add_comma = true%}{% endif %}{% if data.toast_tuple_target %} +{% if ns.add_comma %}, {% endif %} - toast_tuple_target = {{ data.toast_tuple_target }}{% set add_comma = true%}{% endif %}{% if data.autovacuum_custom %} -{% if add_comma %}, + toast_tuple_target = {{ data.toast_tuple_target }}{% set ns.add_comma = true%}{% endif %}{% if data.autovacuum_enabled in ('t', 'f') %} +{% if ns.add_comma %}, {% endif %} - autovacuum_enabled = {% if data.autovacuum_enabled %}TRUE{% else %}FALSE{% endif %}{% set add_comma = true%}{% endif %}{% if data.toast_autovacuum %} -{% if add_comma %}, + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% set ns.add_comma = true%}{% endif %}{% if data.toast_autovacuum_enabled in ('t', 'f') %} +{% if ns.add_comma %}, {% endif %} - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}TRUE{% else %}FALSE{% endif %} -{% endif %}{% if data.autovacuum_enabled and data.vacuum_table|length > 0 %} -{% for opt in data.vacuum_table %}{% if opt.name and opt.value %} -, - {{opt.name}} = {{opt.value}}{% endif %} -{% endfor %}{% endif %}{% if data.toast_autovacuum_enabled and data.vacuum_toast|length > 0 %} -{% for opt in data.vacuum_toast %}{% if opt.name and opt.value %} -, - toast.{{opt.name}} = {{opt.value}}{% endif %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% set ns.add_comma = true%}{% endif %}{% if data.autovacuum_custom %} +{% for opt in data.vacuum_table %}{% if opt.name and opt.value is defined %} +{% if ns.add_comma %}, +{% endif %} + {{opt.name}} = {{opt.value}}{% set ns.add_comma = true%}{% endif %} +{% endfor %}{% endif %}{% if data.toast_autovacuum %} +{% for opt in data.vacuum_toast %}{% if opt.name and opt.value is defined %} +{% if ns.add_comma %}, +{% endif %} + toast.{{opt.name}} = {{opt.value}}{% set ns.add_comma = true%}{% endif %} {% endfor %}{% endif %} {% if data.spcname %}){% else %});{% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/properties.sql index d283cef22..1a7aec47e 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/properties.sql @@ -29,8 +29,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(rel.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, substring(array_to_string(rel.reloptions, ',') FROM 'parallel_workers=([0-9]*)') AS parallel_workers, substring(array_to_string(rel.reloptions, ',') FROM 'toast_tuple_target=([0-9]*)') AS toast_tuple_target, - (CASE WHEN (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS autovacuum_vacuum_scale_factor, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS autovacuum_analyze_threshold, @@ -40,8 +39,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS autovacuum_freeze_min_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS toast_autovacuum_vacuum_scale_factor, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS toast_autovacuum_analyze_threshold, @@ -51,16 +49,10 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, CASE WHEN typ.typname IS NOT NULL THEN (select quote_ident(nspname) FROM pg_namespace WHERE oid = {{scid}}::oid )||'.'||quote_ident(typ.typname) ELSE typ.typname END AS typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (array_to_string(rel.reloptions, ',') like '%autovacuum%') AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table -- Added for partition table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/update.sql index e2415ad2a..b8b4da665 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/12_plus/update.sql @@ -51,7 +51,7 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} {% endif %} {#####################################################} -{## change fillfactore settings ##} +{## change fillfactor settings ##} {#####################################################} {% if data.fillfactor and data.fillfactor != o_data.fillfactor %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} @@ -107,14 +107,14 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( autovacuum_freeze_table_age ); {% else %} -{% if data.autovacuum_enabled is defined or has_vacuum_set %} +{% if (data.autovacuum_enabled in ('t', 'f') and data.autovacuum_enabled != o_data.autovacuum_enabled) or has_vacuum_set %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( -{% if data.autovacuum_enabled is defined and data.autovacuum_enabled != o_data.autovacuum_enabled %} - autovacuum_enabled = {% if data.autovacuum_enabled %}true{% else %}false{% endif %}{% if has_vacuum_set %}, +{% if data.autovacuum_enabled in ('t', 'f') and data.autovacuum_enabled != o_data.autovacuum_enabled %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if has_vacuum_set %}, {% endif %} {% endif %} {% if has_vacuum_set %} -{% for opt in data.vacuum_table.set_values %}{% if opt.name and opt.value %} +{% for opt in data.vacuum_table.set_values %}{% if opt.name and opt.value is defined %} {{opt.name}} = {{opt.value}}{% if not loop.last %}, {% endif %} {% endif %} @@ -123,13 +123,19 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( ); {% endif %} -{% if has_vacuum_reset %} +{% if (data.autovacuum_enabled == 'x' and data.autovacuum_enabled != o_data.autovacuum_enabled) or has_vacuum_reset %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( +{% if data.autovacuum_enabled =='x' and data.autovacuum_enabled != o_data.autovacuum_enabled %} + autovacuum_enabled{% if has_vacuum_reset %}, +{% endif %} +{% endif %} +{% if has_vacuum_reset %} {% for opt in data.vacuum_table.reset_values %}{% if opt.name %} {{opt.name}}{% if not loop.last %}, {% endif %} {% endif %} {% endfor %} +{% endif %} ); {% endif %} @@ -157,14 +163,14 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( toast.autovacuum_analyze_scale_factor ); {% else %} -{% if data.toast_autovacuum_enabled is defined or has_vacuum_toast_set %} +{% if (data.toast_autovacuum_enabled in ('t', 'f') and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled) or has_vacuum_toast_set %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( -{% if data.toast_autovacuum_enabled is defined and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}true{% else %}false{% endif %}{% if has_vacuum_toast_set %}, +{% if data.toast_autovacuum_enabled in ('t', 'f') and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if has_vacuum_toast_set %}, {% endif %} {% endif %} {% if has_vacuum_toast_set %} -{% for opt in data.vacuum_toast.set_values %}{% if opt.name and opt.value %} +{% for opt in data.vacuum_toast.set_values %}{% if opt.name and opt.value is defined %} toast.{{opt.name}} = {{opt.value}}{% if not loop.last %}, {% endif %} {% endif %} @@ -173,13 +179,19 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( ); {% endif %} -{% if has_vacuum_toast_reset %} +{% if (data.toast_autovacuum_enabled == 'x' and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled) or has_vacuum_toast_reset %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( +{% if data.toast_autovacuum_enabled == 'x' and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} + toast.autovacuum_enabled{% if has_vacuum_toast_reset %}, +{% endif %} +{% endif %} +{% if has_vacuum_toast_reset %} {% for opt in data.vacuum_toast.reset_values %}{% if opt.name %} toast.{{opt.name}}{% if not loop.last %}, {% endif %} {% endif %} {% endfor %} +{% endif %} ); {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.1_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.1_plus/properties.sql index eaa5c1056..ef3bcfd9a 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.1_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.1_plus/properties.sql @@ -26,8 +26,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r WHERE i.inhrelid = rel.oid) AS inherited_tables_cnt, (CASE WHEN rel.relpersistence = 'u' THEN true ELSE false END) AS relpersistence, substring(array_to_string(rel.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, - (CASE WHEN (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS autovacuum_vacuum_scale_factor, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS autovacuum_analyze_threshold, @@ -37,8 +36,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS autovacuum_freeze_min_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS toast_autovacuum_vacuum_scale_factor, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS toast_autovacuum_analyze_threshold, @@ -48,16 +46,10 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, CASE WHEN typ.typname IS NOT NULL THEN (select quote_ident(nspname) FROM pg_namespace WHERE oid = {{scid}}::oid )||'.'||quote_ident(typ.typname) ELSE typ.typname END AS typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (CASE WHEN array_length(rel.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table FROM pg_class rel diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/create.sql index 87df7a386..9f32fb855 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/create.sql @@ -66,15 +66,15 @@ CREATE {% if data.relpersistence %}UNLOGGED {% endif %}TABLE {{conn|qtIdent(data WITH ( OIDS = {% if data.relhasoids %}TRUE{% else %}FALSE{% endif %}{% if data.fillfactor %}, FILLFACTOR = {{ data.fillfactor }}{% endif %}{% if data.parallel_workers is defined and data.parallel_workers != '' and data.parallel_workers != None %}, - parallel_workers = {{ data.parallel_workers }}{% endif %}{% if data.autovacuum_custom %}, - autovacuum_enabled = {% if data.autovacuum_enabled %}TRUE{% else %}FALSE{% endif %}{% endif %}{% if data.toast_autovacuum %}, - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}TRUE{% else %}FALSE{% endif %} -{% endif %}{% if data.autovacuum_enabled and data.vacuum_table|length > 0 %} -{% for opt in data.vacuum_table %}{% if opt.name and opt.value %} + parallel_workers = {{ data.parallel_workers }}{% endif %}{% if data.autovacuum_enabled in ('t', 'f') %}, + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% endif %}{% if data.toast_autovacuum_enabled in ('t', 'f') %}, + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %} +{% endif %}{% if data.autovacuum_custom and data.vacuum_table|length > 0 %} +{% for opt in data.vacuum_table %}{% if opt.name and opt.value is defined %} , {{opt.name}} = {{opt.value}}{% endif %} -{% endfor %}{% endif %}{% if data.toast_autovacuum_enabled and data.vacuum_toast|length > 0 %} -{% for opt in data.vacuum_toast %}{% if opt.name and opt.value %} +{% endfor %}{% endif %}{% if data.toast_autovacuum and data.vacuum_toast|length > 0 %} +{% for opt in data.vacuum_toast %}{% if opt.name and opt.value is defined %} , toast.{{opt.name}} = {{opt.value}}{% endif %} {% endfor %}{% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/properties.sql index b43658d14..444fe27c0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/properties.sql @@ -27,8 +27,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r (CASE WHEN rel.relpersistence = 'u' THEN true ELSE false END) AS relpersistence, substring(array_to_string(rel.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, substring(array_to_string(rel.reloptions, ',') FROM 'parallel_workers=([0-9]*)') AS parallel_workers, - (CASE WHEN (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS autovacuum_vacuum_scale_factor, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS autovacuum_analyze_threshold, @@ -38,8 +37,7 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS autovacuum_freeze_min_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS toast_autovacuum_vacuum_scale_factor, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS toast_autovacuum_analyze_threshold, @@ -49,16 +47,10 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype, CASE WHEN typ.typname IS NOT NULL THEN (select quote_ident(nspname) FROM pg_namespace WHERE oid = {{scid}}::oid )||'.'||quote_ident(typ.typname) ELSE typ.typname END AS typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (array_to_string(rel.reloptions, ',') like '%autovacuum%') AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table FROM pg_class rel diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/update.sql index 98e9ebf4b..fc44fe8bc 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/9.6_plus/update.sql @@ -103,14 +103,14 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( autovacuum_freeze_table_age ); {% else %} -{% if data.autovacuum_enabled is defined or has_vacuum_set %} +{% if (data.autovacuum_enabled in ('t', 'f') and data.autovacuum_enabled != o_data.autovacuum_enabled) or has_vacuum_set %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( -{% if data.autovacuum_enabled is defined and data.autovacuum_enabled != o_data.autovacuum_enabled %} - autovacuum_enabled = {% if data.autovacuum_enabled %}true{% else %}false{% endif %}{% if has_vacuum_set %}, +{% if data.autovacuum_enabled in ('t', 'f') and data.autovacuum_enabled != o_data.autovacuum_enabled %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if has_vacuum_set %}, {% endif %} {% endif %} {% if has_vacuum_set %} -{% for opt in data.vacuum_table.set_values %}{% if opt.name and opt.value %} +{% for opt in data.vacuum_table.set_values %}{% if opt.name and opt.value is defined %} {{opt.name}} = {{opt.value}}{% if not loop.last %}, {% endif %} {% endif %} @@ -119,13 +119,19 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( ); {% endif %} -{% if has_vacuum_reset %} +{% if (data.autovacuum_enabled == 'x' and data.autovacuum_enabled != o_data.autovacuum_enabled) or has_vacuum_reset %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( +{% if data.autovacuum_enabled =='x' and data.autovacuum_enabled != o_data.autovacuum_enabled %} + autovacuum_enabled{% if has_vacuum_reset %}, +{% endif %} +{% endif %} +{% if has_vacuum_reset %} {% for opt in data.vacuum_table.reset_values %}{% if opt.name %} {{opt.name}}{% if not loop.last %}, {% endif %} {% endif %} {% endfor %} +{% endif %} ); {% endif %} @@ -153,14 +159,14 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( toast.autovacuum_analyze_scale_factor ); {% else %} -{% if data.toast_autovacuum_enabled is defined or has_vacuum_toast_set %} +{% if (data.toast_autovacuum_enabled in ('t', 'f') and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled) or has_vacuum_toast_set %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( -{% if data.toast_autovacuum_enabled is defined and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}true{% else %}false{% endif %}{% if has_vacuum_toast_set %}, +{% if data.toast_autovacuum_enabled in ('t', 'f') and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if has_vacuum_toast_set %}, {% endif %} {% endif %} {% if has_vacuum_toast_set %} -{% for opt in data.vacuum_toast.set_values %}{% if opt.name and opt.value %} +{% for opt in data.vacuum_toast.set_values %}{% if opt.name and opt.value is defined %} toast.{{opt.name}} = {{opt.value}}{% if not loop.last %}, {% endif %} {% endif %} @@ -169,13 +175,19 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( ); {% endif %} -{% if has_vacuum_toast_reset %} +{% if (data.toast_autovacuum_enabled == 'x' and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled) or has_vacuum_toast_reset %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( +{% if data.toast_autovacuum_enabled == 'x' and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} + toast.autovacuum_enabled{% if has_vacuum_toast_reset %}, +{% endif %} +{% endif %} +{% if has_vacuum_toast_reset %} {% for opt in data.vacuum_toast.reset_values %}{% if opt.name %} toast.{{opt.name}}{% if not loop.last %}, {% endif %} {% endif %} {% endfor %} +{% endif %} ); {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/create.sql index 25b243041..9553d99bb 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/create.sql @@ -65,15 +65,15 @@ CREATE {% if data.relpersistence %}UNLOGGED {% endif %}TABLE {{conn|qtIdent(data {% endif %} WITH ( OIDS = {% if data.relhasoids %}TRUE{% else %}FALSE{% endif %}{% if data.fillfactor %}, - FILLFACTOR = {{ data.fillfactor }}{% endif %}{% if data.autovacuum_custom %}, - autovacuum_enabled = {% if data.autovacuum_enabled %}TRUE{% else %}FALSE{% endif %}{% endif %}{% if data.toast_autovacuum %}, - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}TRUE{% else %}FALSE{% endif %} -{% endif %}{% if data.autovacuum_enabled and data.vacuum_table|length > 0 %} -{% for opt in data.vacuum_table %}{% if opt.name and opt.value %} + FILLFACTOR = {{ data.fillfactor }}{% endif %}{% if data.autovacuum_enabled in ('t', 'f') %}, + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% endif %}{% if data.toast_autovacuum_enabled in ('t', 'f') %}, + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %} +{% endif %}{% if data.autovacuum_custom and data.vacuum_table|length > 0 %} +{% for opt in data.vacuum_table %}{% if opt.name and opt.value is defined %} , {{opt.name}} = {{opt.value}}{% endif %} -{% endfor %}{% endif %}{% if data.toast_autovacuum_enabled and data.vacuum_toast|length > 0 %} -{% for opt in data.vacuum_toast %}{% if opt.name and opt.value %} +{% endfor %}{% endif %}{% if data.toast_autovacuum and data.vacuum_toast|length > 0 %} +{% for opt in data.vacuum_toast %}{% if opt.name and opt.value is defined %} , toast.{{opt.name}} = {{opt.value}}{% endif %} {% endfor %}{% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/properties.sql index 9bb7bc8b7..b5c3c2527 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/properties.sql @@ -29,8 +29,7 @@ FROM ( WHERE i.inhrelid = rel.oid) AS inherited_tables_cnt, false AS relpersistence, substring(array_to_string(rel.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, - (CASE WHEN (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS autovacuum_vacuum_scale_factor, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS autovacuum_analyze_threshold, @@ -40,8 +39,7 @@ FROM ( substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS autovacuum_freeze_min_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') - THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS toast_autovacuum_vacuum_scale_factor, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS toast_autovacuum_analyze_threshold, @@ -51,15 +49,9 @@ FROM ( substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, - array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str, - array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str, rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, NULL AS reloftype, NULL AS typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (array_to_string(rel.reloptions, ',') like '%autovacuum%') AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - ARRAY[]::varchar[] AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/update.sql index 36eb180db..09817343f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/default/update.sql @@ -59,7 +59,7 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} {% endif %} {#####################################################} -{## change fillfactore settings ##} +{## change fillfactor settings ##} {#####################################################} {% if data.fillfactor and data.fillfactor != o_data.fillfactor %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} @@ -92,14 +92,14 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( autovacuum_freeze_table_age ); {% else %} -{% if data.autovacuum_enabled is defined or has_vacuum_set %} +{% if (data.autovacuum_enabled in ('t', 'f') and data.autovacuum_enabled != o_data.autovacuum_enabled) or has_vacuum_set %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( -{% if data.autovacuum_enabled is defined and data.autovacuum_enabled != o_data.autovacuum_enabled %} - autovacuum_enabled = {% if data.autovacuum_enabled %}true{% else %}false{% endif %}{% if has_vacuum_set %}, +{% if data.autovacuum_enabled in ('t', 'f') and data.autovacuum_enabled != o_data.autovacuum_enabled %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if has_vacuum_set %}, {% endif %} {% endif %} {% if has_vacuum_set %} -{% for opt in data.vacuum_table.set_values %}{% if opt.name and opt.value %} +{% for opt in data.vacuum_table.set_values %}{% if opt.name and opt.value is defined %} {{opt.name}} = {{opt.value}}{% if not loop.last %}, {% endif %} {% endif %} @@ -108,13 +108,19 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( ); {% endif %} -{% if has_vacuum_reset %} +{% if (data.autovacuum_enabled == 'x' and data.autovacuum_enabled != o_data.autovacuum_enabled) or has_vacuum_reset %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( +{% if data.autovacuum_enabled =='x' and data.autovacuum_enabled != o_data.autovacuum_enabled %} + autovacuum_enabled{% if has_vacuum_reset %}, +{% endif %} +{% endif %} +{% if has_vacuum_reset %} {% for opt in data.vacuum_table.reset_values %}{% if opt.name %} {{opt.name}}{% if not loop.last %}, {% endif %} {% endif %} {% endfor %} +{% endif %} ); {% endif %} @@ -142,14 +148,14 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( toast.autovacuum_analyze_scale_factor ); {% else %} -{% if data.toast_autovacuum_enabled is defined or has_vacuum_toast_set %} +{% if (data.toast_autovacuum_enabled in ('t', 'f') and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled) or has_vacuum_toast_set %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( -{% if data.toast_autovacuum_enabled is defined and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} - toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled %}true{% else %}false{% endif %}{% if has_vacuum_toast_set %}, +{% if data.toast_autovacuum_enabled in ('t', 'f') and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if has_vacuum_toast_set %}, {% endif %} {% endif %} {% if has_vacuum_toast_set %} -{% for opt in data.vacuum_toast.set_values %}{% if opt.name and opt.value %} +{% for opt in data.vacuum_toast.set_values %}{% if opt.name and opt.value is defined %} toast.{{opt.name}} = {{opt.value}}{% if not loop.last %}, {% endif %} {% endif %} @@ -158,13 +164,19 @@ ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} SET ( ); {% endif %} -{% if has_vacuum_toast_reset %} +{% if (data.toast_autovacuum_enabled == 'x' and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled) or has_vacuum_toast_reset %} ALTER TABLE {{conn|qtIdent(data.schema, data.name)}} RESET ( +{% if data.toast_autovacuum_enabled == 'x' and data.toast_autovacuum_enabled != o_data.toast_autovacuum_enabled %} + toast.autovacuum_enabled{% if has_vacuum_toast_reset %}, +{% endif %} +{% endif %} +{% if has_vacuum_toast_reset %} {% for opt in data.vacuum_toast.reset_values %}{% if opt.name %} toast.{{opt.name}}{% if not loop.last %}, {% endif %} {% endif %} {% endfor %} +{% endif %} ); {% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/gpdb_5.0_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/gpdb_5.0_plus/properties.sql index 356a94f15..738608c54 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/gpdb_5.0_plus/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/tables/sql/gpdb_5.0_plus/properties.sql @@ -62,10 +62,6 @@ FROM ( rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, NULL AS reloftype, typ.typname AS typname, typ.typrelid AS typoid, (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - -- Added for pgAdmin4 - (CASE WHEN array_length(rel.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum, - ARRAY[]::varchar[] AS seclabels, (CASE WHEN rel.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_table, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/tests/test_table_parameters.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/tests/test_table_parameters.py index bbed26998..4bd59f5c1 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/tests/test_table_parameters.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/tests/test_table_parameters.py @@ -25,25 +25,104 @@ class TableUpdateParameterTestCase(BaseTestGenerator): """This class will add new collation under schema node.""" scenarios = [ # Fetching default URL for table node. - ('Enable custom auto vacuum and set the parameters for table', - dict(url='/browser/table/obj/', type='set_vacuum_parameters') + ('Enable custom auto vacuum and set the parameters for table ' + 'without autovacuum_enabled', + dict(url='/browser/table/obj/', + api_data={ + 'autovacuum_custom': True, + 'vacuum_table': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': 20}, + {'name': 'autovacuum_vacuum_threshold', + 'value': 20} + ] + }} + ) ), - ('Disable auto vacuum and reset the parameters for table', - dict(url='/browser/table/obj/', type='reset_vacuum_parameters') + ('Change a parameter to zero value ' + 'without autovacuum_enabled', + dict(url='/browser/table/obj/', + api_data={ + 'vacuum_table': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': 0} + ] + }} + ) ), - ('Disable custom auto vacuum and reset all the parameters for table', - dict(url='/browser/table/obj/', type='reset_all_vacuum_parameters') + ('Enable autovacuum_enabled', + dict(url='/browser/table/obj/', + api_data={'autovacuum_enabled': 't'} + ) ), - ('Enable custom auto vacuum and set the toast parameters for table', - dict(url='/browser/table/obj/', type='set_toast_parameters') + ('Reset individual parameters for table', + dict(url='/browser/table/obj/', + api_data={ + 'autovacuum_enabled': 'x', + 'vacuum_table': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': None}, + ] + }} + ) ), - ('Disable auto vacuum and reset the toast parameters for table', - dict(url='/browser/table/obj/', type='reset_toast_parameters') + ('Reset custom auto vacuum', + dict(url='/browser/table/obj/', + api_data={'autovacuum_custom': False} + ) + ), + ('Enable toast custom auto vacuum and set the parameters for table ' + 'without autovacuum_enabled', + dict(url='/browser/table/obj/', + api_data={ + 'toast_autovacuum': True, + 'vacuum_toast': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': 20}, + {'name': 'autovacuum_vacuum_threshold', + 'value': 20} + ] + }} + ) + ), + ('Change a toast parameter to zero value ' + 'without autovacuum_enabled', + dict(url='/browser/table/obj/', + api_data={ + 'vacuum_toast': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': 0} + ] + }} + ) + ), + ('Enable toast.autovacuum_enabled', + dict(url='/browser/table/obj/', + api_data={'toast_autovacuum_enabled': 't'} + ) + ), + ('Reset individual toast parameters for table', + dict(url='/browser/table/obj/', + api_data={ + 'toast_autovacuum_enabled': 'x', + 'vacuum_toast': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': None}, + ] + }} + ) + ), + ('Reset auto vacuum', + dict(url='/browser/table/obj/', + api_data={'toast_autovacuum': False} + ) ), - ('Disable custom auto vacuum and reset all the toast ' - 'parameters for table', - dict(url='/browser/table/obj/', type='reset_all_toast_parameters') - ) ] @classmethod @@ -77,50 +156,8 @@ class TableUpdateParameterTestCase(BaseTestGenerator): if not table_response: raise Exception("Could not find the table to update.") - data = None - if self.type == 'set_vacuum_parameters': - data = dict({'oid': self.table_id, - 'autovacuum_custom': True, - 'autovacuum_enabled': True, - 'vacuum_table': dict({'changed': [ - {'name': 'autovacuum_vacuum_cost_delay', - 'value': 20}, - {'name': 'autovacuum_vacuum_threshold', - 'value': 20} - ]})}) - elif self.type == 'reset_vacuum_parameters': - data = dict({'oid': self.table_id, - 'autovacuum_enabled': False, - 'vacuum_table': dict({'changed': [ - {'name': 'autovacuum_vacuum_cost_delay', - 'value': None}, - {'name': 'autovacuum_vacuum_threshold', - 'value': None} - ]})}) - elif self.type == 'reset_all_vacuum_parameters': - data = dict({'oid': self.table_id, 'autovacuum_custom': False}) - elif self.type == 'set_toast_parameters': - data = dict({'oid': self.table_id, - 'autovacuum_custom': True, - 'autovacuum_enabled': True, - 'vacuum_toast': dict({'changed': [ - {'name': 'autovacuum_vacuum_cost_delay', - 'value': 20}, - {'name': 'autovacuum_vacuum_threshold', - 'value': 20} - ]})}) - elif self.type == 'reset_toast_parameters': - data = dict({'oid': self.table_id, - 'autovacuum_enabled': False, - 'vacuum_toast': dict({'changed': [ - {'name': 'autovacuum_vacuum_cost_delay', - 'value': None}, - {'name': 'autovacuum_vacuum_threshold', - 'value': None} - ]})}) - elif self.type == 'reset_all_toast_parameters': - data = dict({'oid': self.table_id, 'autovacuum_custom': False}) - + data = self.api_data + data['oid'] = self.table_id response = self.tester.put(self.url + str(utils.SERVER_GROUP) + '/' + str(self.server_id) + '/' + str(self.db_id) + '/' + diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py index c552006ab..6a442bfd6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py @@ -1029,6 +1029,11 @@ class BaseTableView(PGChildNodeView, BasePartitionTable): data['partition_scheme'] = self.get_partition_scheme(data) partitions_sql = self.get_partitions_sql(data) + # Update the vacuum table settings. + self.update_vacuum_settings('vacuum_table', data) + # Update the vacuum toast table settings. + self.update_vacuum_settings('vacuum_toast', data) + SQL = render_template("/".join([self.table_template_path, 'create.sql']), data=data, conn=self.conn) @@ -1191,21 +1196,20 @@ class BaseTableView(PGChildNodeView, BasePartitionTable): """ data = res['rows'][0] - data['vacuum_settings_str'] = "" + data['vacuum_settings_str'] = '' - if data['table_vacuum_settings_str'] is not None: - data['vacuum_settings_str'] += data[ - 'table_vacuum_settings_str'].replace(',', '\n') + if data['reloptions'] is not None: + data['vacuum_settings_str'] += '\n'.join(data['reloptions']) + + if data['toast_reloptions'] is not None: + data['vacuum_settings_str'] += '\n' \ + if data['vacuum_settings_str'] != '' else '' + data['vacuum_settings_str'] += '\n'.\ + join(map(lambda o: 'toast.' + o, data['toast_reloptions'])) - if data['toast_table_vacuum_settings_str'] is not None: - data['vacuum_settings_str'] += '\n' + '\n'.join( - ['toast_' + setting for setting in data[ - 'toast_table_vacuum_settings_str' - ].split(',')] - ) data['vacuum_settings_str'] = data[ 'vacuum_settings_str' - ].replace("=", " = ") + ].replace('=', ' = ') data = self._formatter(did, scid, tid, data) @@ -1496,7 +1500,7 @@ class BaseTableView(PGChildNodeView, BasePartitionTable): return schema_name, table_name - def update_vacuum_settings(self, vacuum_key, old_data, data): + def update_vacuum_settings(self, vacuum_key, old_data, data=None): """ This function iterate the vacuum and vacuum toast table and create two new dictionaries. One for set parameter and another for reset. @@ -1507,8 +1511,14 @@ class BaseTableView(PGChildNodeView, BasePartitionTable): :return: """ + # When creating a table old_data is the actual data + if data is None: + if vacuum_key in old_data: + for opt in old_data[vacuum_key]: + if 'value' in opt and opt['value'] is None: + opt.pop('value') # Iterate vacuum table - if vacuum_key in data and 'changed' in data[vacuum_key] \ + elif vacuum_key in data and 'changed' in data[vacuum_key] \ and vacuum_key in old_data: set_values = [] reset_values = [] diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/utils.py index be3c43c52..f7b8e701b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/utils.py @@ -10,6 +10,7 @@ """Schema collection node helper class""" import json +import copy from flask import render_template @@ -575,8 +576,8 @@ class VacuumSettings: * type - table/toast vacuum type """ - vacuum_settings_tmp = self.fetch_default_vacuum_settings( - conn, self.manager.sid, type) + vacuum_settings_tmp = copy.deepcopy(self.fetch_default_vacuum_settings( + conn, self.manager.sid, type)) for row in vacuum_settings_tmp: row_name = row['name'] @@ -585,6 +586,7 @@ class VacuumSettings: if row_name in result and result[row_name] is not None: if row['column_type'] == 'number': value = float(result[row_name]) + value = int(value) if value % 1 == 0 else value else: value = int(result[row_name]) row['value'] = value diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py index c64de73bd..60ff902bf 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py @@ -1619,27 +1619,17 @@ class MViewNode(ViewNode, VacuumSettings): This function will generate sql from model data """ if vid is not None: - SQL = render_template("/".join( - [self.template_path, 'sql/properties.sql']), - did=did, - vid=vid, - datlastsysoid=self.datlastsysoid - ) - status, res = self.conn.execute_dict(SQL) - if not status: - return None, internal_server_error(errormsg=res) - if len(res['rows']) == 0: - return None, gone( - gettext( - "Could not find the materialized view on the server.") - ) + status, res = self._fetch_properties(did, None, vid) - old_data = res['rows'][0] + if not status: + return res + + old_data = res if 'name' not in data: - data['name'] = res['rows'][0]['name'] + data['name'] = res['name'] if 'schema' not in data: - data['schema'] = res['rows'][0]['schema'] + data['schema'] = res['schema'] # merge vacuum lists into one data['vacuum_data'] = {} @@ -1660,26 +1650,6 @@ class MViewNode(ViewNode, VacuumSettings): item['value']))): data['vacuum_data']['changed'].append(item) - if ( - 'autovacuum_enabled' in data and - old_data['autovacuum_enabled'] is not None - ): - if ( - data['autovacuum_enabled'] != - old_data['autovacuum_enabled'] - ): - data['vacuum_data']['changed'].append( - {'name': 'autovacuum_enabled', - 'value': data['autovacuum_enabled']}) - elif ( - 'autovacuum_enabled' in data and - 'autovacuum_custom' in data and - old_data['autovacuum_enabled'] is None and data[ - 'autovacuum_custom']): - data['vacuum_data']['changed'].append( - {'name': 'autovacuum_enabled', - 'value': data['autovacuum_enabled']}) - # toast autovacuum: separate list of changed and reset data if 'vacuum_toast' in data: if 'changed' in data['vacuum_toast']: @@ -1696,27 +1666,6 @@ class MViewNode(ViewNode, VacuumSettings): item['value']))): data['vacuum_data']['changed'].append(item) - if ( - 'toast_autovacuum_enabled' in data and - old_data['toast_autovacuum_enabled'] is not None - ): - if ( - data['toast_autovacuum_enabled'] != - old_data['toast_autovacuum_enabled'] - ): - data['vacuum_data']['changed'].append( - {'name': 'toast.autovacuum_enabled', - 'value': data['toast_autovacuum_enabled']}) - elif ( - 'toast_autovacuum_enabled' in data and - 'toast_autovacuum' in data and - old_data['toast_autovacuum_enabled'] is None and - data['toast_autovacuum'] - ): - data['vacuum_data']['changed'].append( - {'name': 'toast.autovacuum_enabled', - 'value': data['toast_autovacuum_enabled']}) - acls = [] try: acls = render_template( @@ -1762,32 +1711,15 @@ class MViewNode(ViewNode, VacuumSettings): data['schema'] = self._get_schema(data['schema']) # merge vacuum lists into one - vacuum_table = [item for item in data['vacuum_table'] + vacuum_table = [item for item in data.get('vacuum_table', []) if 'value' in item.keys() and item['value'] is not None] vacuum_toast = [ {'name': 'toast.' + item['name'], 'value': item['value']} - for item in data['vacuum_toast'] + for item in data.get('vacuum_toast', []) if 'value' in item.keys() and item['value'] is not None] - # add table_enabled & toast_enabled settings - if 'autovacuum_custom' in data and data['autovacuum_custom']: - vacuum_table.append( - { - 'name': 'autovacuum_enabled', - 'value': str(data['autovacuum_enabled']) - } - ) - if 'toast_autovacuum' in data and data['toast_autovacuum']: - vacuum_table.append( - { - 'name': 'toast.autovacuum_enabled', - 'value': str(data['toast_autovacuum_enabled']) - } - ) - - # add vacuum_toast dict to vacuum_data only if - # table & toast's custom autovacuum is enabled + # add vacuum_toast dict to vacuum_data data['vacuum_data'] = [] if ( 'autovacuum_custom' in data and @@ -1838,22 +1770,10 @@ class MViewNode(ViewNode, VacuumSettings): display_comments = False SQL_data = '' - SQL = render_template("/".join( - [self.template_path, 'sql/properties.sql']), - did=did, - vid=vid, - datlastsysoid=self.datlastsysoid - ) + status, result = self._fetch_properties(did, scid, vid) - status, res = self.conn.execute_dict(SQL) if not status: - return internal_server_error(errormsg=res) - if len(res['rows']) == 0: - return gone( - gettext("Could not find the materialized view on the server.") - ) - - result = res['rows'][0] + return result if diff_schema: result['definition'] = result['definition'].replace( @@ -1861,16 +1781,6 @@ class MViewNode(ViewNode, VacuumSettings): diff_schema) result['schema'] = diff_schema - # sending result to formtter - frmtd_reslt = self.formatter(result) - - # merging formated result with main result again - result.update(frmtd_reslt) - result['vacuum_table'] = self.parse_vacuum_data( - self.conn, result, 'table') - result['vacuum_toast'] = self.parse_vacuum_data( - self.conn, result, 'toast') - # merge vacuum lists into one vacuum_table = [item for item in result['vacuum_table'] if @@ -1880,43 +1790,7 @@ class MViewNode(ViewNode, VacuumSettings): for item in result['vacuum_toast'] if 'value' in item.keys() and item['value'] is not None] - if 'autovacuum_custom' in result and result['autovacuum_custom']: - vacuum_table.append( - { - 'name': 'autovacuum_enabled', - 'value': str(result['autovacuum_enabled']) - } - ) - if 'toast_autovacuum' in result and result['toast_autovacuum']: - vacuum_table.append( - { - 'name': 'toast.autovacuum_enabled', - 'value': str(result['toast_autovacuum_enabled']) - } - ) - - # add vacuum_toast dict to vacuum_data only if - # toast's autovacuum is enabled - if ( - 'toast_autovacuum_enabled' in result and - result['toast_autovacuum_enabled'] is True - ): - result['vacuum_data'] = vacuum_table + vacuum_toast - else: - result['vacuum_data'] = vacuum_table - - # Fetch all privileges for view - SQL = render_template("/".join( - [self.template_path, 'sql/acl.sql']), vid=vid) - status, dataclres = self.conn.execute_dict(SQL) - if not status: - return internal_server_error(errormsg=res) - - for row in dataclres['rows']: - priv = parse_priv_from_db(row) - res['rows'][0].setdefault(row['deftype'], []).append(priv) - - result.update(res['rows'][0]) + result['vacuum_data'] = vacuum_table + vacuum_toast acls = [] try: @@ -1996,6 +1870,7 @@ class MViewNode(ViewNode, VacuumSettings): and render in the properties tab """ status, res = self._fetch_properties(did, scid, vid) + if not status: return res @@ -2023,6 +1898,59 @@ class MViewNode(ViewNode, VacuumSettings): return False, gone( gettext("""Could not find the materialized view.""")) + # Set value based on + # x: No set, t: true, f: false + res['rows'][0]['autovacuum_enabled'] = 'x' \ + if res['rows'][0]['autovacuum_enabled'] is None else \ + {True: 't', False: 'f'}[res['rows'][0]['autovacuum_enabled']] + + res['rows'][0]['toast_autovacuum_enabled'] = 'x' \ + if res['rows'][0]['toast_autovacuum_enabled'] is None else \ + {True: 't', False: 'f'}[res['rows'][0]['toast_autovacuum_enabled']] + + # Enable custom autovaccum only if one of the options is set + # or autovacuum is set + res['rows'][0]['autovacuum_custom'] = any([ + res['rows'][0]['autovacuum_vacuum_threshold'], + res['rows'][0]['autovacuum_vacuum_scale_factor'], + res['rows'][0]['autovacuum_analyze_threshold'], + res['rows'][0]['autovacuum_analyze_scale_factor'], + res['rows'][0]['autovacuum_vacuum_cost_delay'], + res['rows'][0]['autovacuum_vacuum_cost_limit'], + res['rows'][0]['autovacuum_freeze_min_age'], + res['rows'][0]['autovacuum_freeze_max_age'], + res['rows'][0]['autovacuum_freeze_table_age']]) \ + or res['rows'][0]['autovacuum_enabled'] in ('t', 'f') + + res['rows'][0]['toast_autovacuum'] = any([ + res['rows'][0]['toast_autovacuum_vacuum_threshold'], + res['rows'][0]['toast_autovacuum_vacuum_scale_factor'], + res['rows'][0]['toast_autovacuum_analyze_threshold'], + res['rows'][0]['toast_autovacuum_analyze_scale_factor'], + res['rows'][0]['toast_autovacuum_vacuum_cost_delay'], + res['rows'][0]['toast_autovacuum_vacuum_cost_limit'], + res['rows'][0]['toast_autovacuum_freeze_min_age'], + res['rows'][0]['toast_autovacuum_freeze_max_age'], + res['rows'][0]['toast_autovacuum_freeze_table_age']]) \ + or res['rows'][0]['toast_autovacuum_enabled'] in ('t', 'f') + + res['rows'][0]['vacuum_settings_str'] = '' + + if res['rows'][0]['reloptions'] is not None: + res['rows'][0]['vacuum_settings_str'] += '\n'.\ + join(res['rows'][0]['reloptions']) + + if res['rows'][0]['toast_reloptions'] is not None: + res['rows'][0]['vacuum_settings_str'] += '\n' \ + if res['rows'][0]['vacuum_settings_str'] != "" else "" + res['rows'][0]['vacuum_settings_str'] += '\n'.\ + join(map(lambda o: 'toast.' + o, + res['rows'][0]['toast_reloptions'])) + + res['rows'][0]['vacuum_settings_str'] = res['rows'][0][ + 'vacuum_settings_str' + ].replace('=', ' = ') + SQL = render_template("/".join( [self.template_path, 'sql/acl.sql']), vid=vid) status, dataclres = self.conn.execute_dict(SQL) 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 34d45773c..5036f8a77 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 @@ -58,6 +58,7 @@ define('pgadmin.node.mview', [ hasDepends: true, hasScriptTypes: ['create', 'select'], collection_type: 'coll-mview', + width: pgBrowser.stdW.md + 'px', Init: function() { // Avoid mulitple registration of menus @@ -140,8 +141,8 @@ define('pgadmin.node.mview', [ }, defaults: { spcname: undefined, - toast_autovacuum_enabled: false, - autovacuum_enabled: false, + toast_autovacuum_enabled: 'x', + autovacuum_enabled: 'x', warn_text: undefined, }, schema: [{ @@ -207,6 +208,9 @@ define('pgadmin.node.mview', [ id: 'fillfactor', label: gettext('Fill factor'), group: gettext('Storage'), mode: ['edit', 'create'], type: 'int', min: 10, max: 100, + },{ + id: 'vacuum_settings_str', label: gettext('Storage settings'), + type: 'multiline', group: gettext('Storage'), mode: ['properties'], },{ type: 'nested', control: 'tab', id: 'materialization', label: gettext('Parameter'), mode: ['edit', 'create'], @@ -228,6 +232,16 @@ define('pgadmin.node.mview', [ mode: ['edit', 'create'], canAdd: true, control: 'unique-col-collection', uniqueCol : ['provider'], }], + sessChanged: function() { + /* If only custom autovacuum option is enabled the check if the options table is also changed. */ + if(_.size(this.sessAttrs) == 2 && this.sessAttrs['autovacuum_custom'] && this.sessAttrs['toast_autovacuum']) { + return this.get('vacuum_table').sessChanged() || this.get('vacuum_toast').sessChanged(); + } + if(_.size(this.sessAttrs) == 1 && (this.sessAttrs['autovacuum_custom'] || this.sessAttrs['toast_autovacuum'])) { + return this.get('vacuum_table').sessChanged() || this.get('vacuum_toast').sessChanged(); + } + return pgBrowser.DataModel.prototype.sessChanged.apply(this); + }, validate: function(keys) { // Triggers specific error messages for fields @@ -235,9 +249,11 @@ define('pgadmin.node.mview', [ errmsg, field_name = this.get('name'), field_def = this.get('definition'); - if (_.indexOf(keys, 'autovacuum_enabled') != -1 || + + if(_.indexOf(keys, 'autovacuum_custom')) + if (_.indexOf(keys, 'autovacuum_enabled') != -1 || _.indexOf(keys, 'toast_autovacuum_enabled') != -1 ) - return null; + return null; if (_.isUndefined(field_name) || _.isNull(field_name) || String(field_name).replace(/^\s+|\s+$/g, '') == '') { diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/create.sql index 89b200d39..f092223ac 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/create.sql @@ -7,15 +7,21 @@ {% endif %} {% if data.name and data.schema and data.definition %} CREATE MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} -{% if(data.fillfactor or data['vacuum_data']|length > 0) %} +{% if(data.fillfactor or data.autovacuum_enabled in ('t', 'f') or data.toast_autovacuum_enabled in ('t', 'f') or data['vacuum_data']|length > 0) %} +{% set ns = namespace(add_comma=false) %} WITH ( {% if data.fillfactor %} - FILLFACTOR = {{ data.fillfactor }}{% if data['autovacuum_enabled'] or data['toast_autovacuum_enabled'] or data['vacuum_data']|length > 0 %},{{ '\n' }}{% endif %} + FILLFACTOR = {{ data.fillfactor }}{% set ns.add_comma = true%}{% endif %}{% if data.autovacuum_enabled in ('t', 'f') %} +{% if ns.add_comma %}, {% endif %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% set ns.add_comma = true%}{% endif %}{% if data.toast_autovacuum_enabled in ('t', 'f') %} +{% if ns.add_comma %}, +{% endif %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% set ns.add_comma = true%}{% endif %} {% for field in data['vacuum_data'] %} {% if field.value is defined and field.value != '' and field.value != none %} -{% if loop.index > 1 %}, -{% endif %} {{ field.name }} = {{ field.value|lower }}{% endif %}{% endfor %} +{% if ns.add_comma %}, +{% endif %} {{ field.name }} = {{ field.value|lower }}{% set ns.add_comma = true%}{% endif %}{% endfor %} {{ '\n' }}) {% endif %} {% if data.spcname %}TABLESPACE {{ data.spcname }} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/properties.sql index df3fafcdc..39b435cb8 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/properties.sql @@ -24,8 +24,7 @@ SELECT (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=c.oid AND sl1.objsubid=0) AS seclabels, substring(array_to_string(c.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, - (CASE WHEN (substring(array_to_string(c.reloptions, ',') - FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(c.reloptions, ',') @@ -44,8 +43,7 @@ SELECT FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') - FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') @@ -65,9 +63,7 @@ SELECT substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, c.reloptions AS reloptions, tst.reloptions AS toast_reloptions, - (CASE WHEN c.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - (CASE WHEN array_length(c.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND c.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum + (CASE WHEN c.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable FROM pg_class c LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/update.sql index e7ab7ab07..dc752a2ec 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/update.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.3_plus/sql/update.sql @@ -27,14 +27,17 @@ 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 %}{{ '\r' }} + FILLFACTOR = {{ data.fillfactor }}{% if (data['vacuum_data'] is defined and 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) %},{% 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 %}{{ '\r' }} +{% for field in data['vacuum_data']['changed'] %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %}, +{% endif %} {% endfor %} {% endif %} ) @@ -43,11 +46,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 -%} @@ -74,11 +80,8 @@ RESET( REFRESH MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} WITH{{ ' NO' if data.with_data|lower == 'false' else '' }} DATA; {% endif %} -{# ===== Check for Table tab properties ===== #} -{% if ((data.autovacuum_custom is defined and data.autovacuum_custom|lower == 'false') or -(data.toast_autovacuum is defined and data.toast_autovacuum|lower == 'false') -) %} -{% if data.autovacuum_custom|lower == 'false' %} +{# ===== Check for Autovacuum options ===== #} +{% if data.autovacuum_custom is defined and data.autovacuum_custom == False %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( autovacuum_enabled, autovacuum_vacuum_threshold, @@ -92,21 +95,9 @@ ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( autovacuum_freeze_table_age ); -{% if data.toast_autovacuum is defined and data.toast_autovacuum|lower != 'false' %} -{% if('vacuum_toast' in data and data['vacuum_toast']['changed']|length > 0) %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( -{% for field in data['vacuum_toast']['changed'] %} -{% if field.value != None %} - {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{% endif %}{{ '\r' }} -{% endif %} -{% endfor %} -); - -{% endif %} {% endif %} -{% endif %} -{% if data.toast_autovacuum|lower == 'false' %} +{% if data.toast_autovacuum is defined and data.toast_autovacuum == False %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( toast.autovacuum_enabled, toast.autovacuum_vacuum_threshold, @@ -120,47 +111,42 @@ ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( toast.autovacuum_freeze_table_age ); -{% if data.autovacuum_custom is defined and data.autovacuum_custom|lower != 'false' %} -{% if('vacuum_table' in data and data['vacuum_table']['changed']|length > 0) %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( -{% for field in data['vacuum_table']['changed'] %} -{% if field.value != None %} - {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{% endif %}{{ '\r' }} -{% endif %} -{% endfor %} -); - -{% endif %} -{% endif %} {% endif %}{#-- toast_endif ends --#} - -{% else %} -{% if data['vacuum_data']['reset']|length == 0 and -data['vacuum_data']['changed']|length == 0 and data['settings']|length > 0 %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} SET( -{% for field in data['settings'] %} - {{ field }} = {{ data['settings'][field]|lower }}{% if not loop.last %},{% endif %}{{ '\r' }} -{% endfor %} -); - -{% endif %} -{% if(data['vacuum_data']['changed']|length > 0) %} +{% if data['vacuum_data']['changed']|length > 0 or data.autovacuum_enabled in ('t', 'f') or data.toast_autovacuum_enabled in ('t', 'f') %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( +{% if data.autovacuum_enabled in ('t', 'f') %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if data['vacuum_data']['changed']|length > 0 or data.toast_autovacuum_enabled in ('t', 'f') %}, +{% endif %} +{% endif %} +{% if data.toast_autovacuum_enabled in ('t', 'f') %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if data['vacuum_data']['changed']|length > 0 %}, +{% endif %} +{% endif %} {% for field in data['vacuum_data']['changed'] %} -{% if field.value != None %} - {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{% endif %}{{ '\r' }} +{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %}, +{% endif %} {% endif %} {% endfor %} + ); {% endif %} -{% if data['vacuum_data']['reset']|length > 0 %} +{% if data['vacuum_data']['reset']|length > 0 or data.autovacuum_enabled == 'x' or data.toast_autovacuum_enabled == 'x' %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( -{% for field in data['vacuum_data']['reset'] %} - {{ field.name }}{% if not loop.last %},{% endif %}{{ '\r' }} +{% if data.autovacuum_enabled == 'x' %} + autovacuum_enabled{% if data['vacuum_data']['reset']|length > 0 or data.toast_autovacuum_enabled == 'x' %}, +{% endif %} +{% endif %} +{% if data.toast_autovacuum_enabled == 'x' %} + toast.autovacuum_enabled{% if data['vacuum_data']['reset']|length > 0 %}, +{% endif %} +{% endif %} +{% for field in data['vacuum_data']['reset'] %} {{ field.name }}{% if not loop.last %}, +{% endif %} {% endfor %} + ); {% endif %} -{% endif %}{# ===== End check for custom autovacuum ===== #} +{# ===== End check for custom autovacuum ===== #} {% endif %}{# ===== End block for check data definition ===== #} {% set old_comment = o_data.comment|default('', true) %} {% if (data.comment is defined and (data.comment != old_comment)) %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/create.sql index 89b200d39..f092223ac 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/create.sql @@ -7,15 +7,21 @@ {% endif %} {% if data.name and data.schema and data.definition %} CREATE MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} -{% if(data.fillfactor or data['vacuum_data']|length > 0) %} +{% if(data.fillfactor or data.autovacuum_enabled in ('t', 'f') or data.toast_autovacuum_enabled in ('t', 'f') or data['vacuum_data']|length > 0) %} +{% set ns = namespace(add_comma=false) %} WITH ( {% if data.fillfactor %} - FILLFACTOR = {{ data.fillfactor }}{% if data['autovacuum_enabled'] or data['toast_autovacuum_enabled'] or data['vacuum_data']|length > 0 %},{{ '\n' }}{% endif %} + FILLFACTOR = {{ data.fillfactor }}{% set ns.add_comma = true%}{% endif %}{% if data.autovacuum_enabled in ('t', 'f') %} +{% if ns.add_comma %}, {% endif %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% set ns.add_comma = true%}{% endif %}{% if data.toast_autovacuum_enabled in ('t', 'f') %} +{% if ns.add_comma %}, +{% endif %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% set ns.add_comma = true%}{% endif %} {% for field in data['vacuum_data'] %} {% if field.value is defined and field.value != '' and field.value != none %} -{% if loop.index > 1 %}, -{% endif %} {{ field.name }} = {{ field.value|lower }}{% endif %}{% endfor %} +{% if ns.add_comma %}, +{% endif %} {{ field.name }} = {{ field.value|lower }}{% set ns.add_comma = true%}{% endif %}{% endfor %} {{ '\n' }}) {% endif %} {% if data.spcname %}TABLESPACE {{ data.spcname }} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/properties.sql index df3fafcdc..39b435cb8 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/9.4_plus/sql/properties.sql @@ -24,8 +24,7 @@ SELECT (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=c.oid AND sl1.objsubid=0) AS seclabels, substring(array_to_string(c.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, - (CASE WHEN (substring(array_to_string(c.reloptions, ',') - FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(c.reloptions, ',') @@ -44,8 +43,7 @@ SELECT FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') - FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') @@ -65,9 +63,7 @@ SELECT substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, c.reloptions AS reloptions, tst.reloptions AS toast_reloptions, - (CASE WHEN c.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - (CASE WHEN array_length(c.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND c.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum + (CASE WHEN c.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable FROM pg_class c LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace 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 922b11887..dc752a2ec 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 @@ -30,13 +30,14 @@ CREATE MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} {% if data.fillfactor or o_data.fillfactor %} WITH( {% if data.fillfactor %} -FILLFACTOR = {{ data.fillfactor }}{% if (data['vacuum_data'] is defined and data['vacuum_data']['changed']|length > 0) %},{% endif %} + FILLFACTOR = {{ data.fillfactor }}{% if (data['vacuum_data'] is defined and 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) %},{% endif %} + FILLFACTOR = {{ o_data.fillfactor }}{% if (data['vacuum_data'] is defined and 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 %} +{% for field in data['vacuum_data']['changed'] %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %}, +{% endif %} {% endfor %} {% endif %} ) @@ -79,11 +80,8 @@ RESET( REFRESH MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} WITH{{ ' NO' if data.with_data|lower == 'false' else '' }} DATA; {% endif %} -{# ===== Check for Table tab properties ===== #} -{% if ((data.autovacuum_custom is defined and data.autovacuum_custom|lower == 'false') or -(data.toast_autovacuum is defined and data.toast_autovacuum|lower == 'false') -) %} -{% if data.autovacuum_custom|lower == 'false' %} +{# ===== Check for Autovacuum options ===== #} +{% if data.autovacuum_custom is defined and data.autovacuum_custom == False %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( autovacuum_enabled, autovacuum_vacuum_threshold, @@ -97,20 +95,9 @@ ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( autovacuum_freeze_table_age ); -{% if data.toast_autovacuum is defined and data.toast_autovacuum|lower != 'false' %} -{% if('vacuum_toast' in data and data['vacuum_toast']['changed']|length > 0) %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( -{% for field in data['vacuum_toast']['changed'] %} -{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{{ '\n' }}{% endif %} -{% endif %} -{% endfor %} -); - -{% endif %} {% endif %} -{% endif %} -{% if data.toast_autovacuum|lower == 'false' %} +{% if data.toast_autovacuum is defined and data.toast_autovacuum == False %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( toast.autovacuum_enabled, toast.autovacuum_vacuum_threshold, @@ -124,40 +111,42 @@ ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( toast.autovacuum_freeze_table_age ); -{% if data.autovacuum_custom is defined and data.autovacuum_custom|lower != 'false' %} -{% if('vacuum_table' in data and data['vacuum_table']['changed']|length > 0) %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( -{% for field in data['vacuum_table']['changed'] %} -{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{% endif %}{% endif %} -{% endfor %} -); - -{% endif %} -{% endif %} {% endif %}{#-- toast_endif ends --#} - -{% else %} -{% if data['vacuum_data']['reset']|length == 0 and -data['vacuum_data']['changed']|length == 0 and data['settings']|length > 0 %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} SET( -{% for field in data['settings'] %} {{ field }} = {{ data['settings'][field]|lower }}{% if not loop.last %},{{ '\n' }}{% endif %} -{% endfor %} -); - -{% endif %} -{% if(data['vacuum_data']['changed']|length > 0) %} +{% if data['vacuum_data']['changed']|length > 0 or data.autovacuum_enabled in ('t', 'f') or data.toast_autovacuum_enabled in ('t', 'f') %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( +{% if data.autovacuum_enabled in ('t', 'f') %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if data['vacuum_data']['changed']|length > 0 or data.toast_autovacuum_enabled in ('t', 'f') %}, +{% endif %} +{% endif %} +{% if data.toast_autovacuum_enabled in ('t', 'f') %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if data['vacuum_data']['changed']|length > 0 %}, +{% endif %} +{% endif %} {% for field in data['vacuum_data']['changed'] %} -{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{% endif %}{{ '\n' }}{% endif %} +{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %}, +{% endif %} +{% endif %} {% endfor %} + ); {% endif %} -{% if data['vacuum_data']['reset']|length > 0 %} +{% if data['vacuum_data']['reset']|length > 0 or data.autovacuum_enabled == 'x' or data.toast_autovacuum_enabled == 'x' %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( -{% for field in data['vacuum_data']['reset'] %} {{ field.name }}{% if not loop.last %},{% endif %}{{ '\n' }}{% endfor %} +{% if data.autovacuum_enabled == 'x' %} + autovacuum_enabled{% if data['vacuum_data']['reset']|length > 0 or data.toast_autovacuum_enabled == 'x' %}, +{% endif %} +{% endif %} +{% if data.toast_autovacuum_enabled == 'x' %} + toast.autovacuum_enabled{% if data['vacuum_data']['reset']|length > 0 %}, +{% endif %} +{% endif %} +{% for field in data['vacuum_data']['reset'] %} {{ field.name }}{% if not loop.last %}, +{% endif %} +{% endfor %} + ); {% endif %} -{% endif %}{# ===== End check for custom autovacuum ===== #} +{# ===== End check for custom autovacuum ===== #} {% endif %}{# ===== End block for check data definition ===== #} {% set old_comment = o_data.comment|default('', true) %} {% if (data.comment is defined and (data.comment != old_comment)) %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/create.sql index 89b200d39..f092223ac 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/create.sql @@ -7,15 +7,21 @@ {% endif %} {% if data.name and data.schema and data.definition %} CREATE MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} -{% if(data.fillfactor or data['vacuum_data']|length > 0) %} +{% if(data.fillfactor or data.autovacuum_enabled in ('t', 'f') or data.toast_autovacuum_enabled in ('t', 'f') or data['vacuum_data']|length > 0) %} +{% set ns = namespace(add_comma=false) %} WITH ( {% if data.fillfactor %} - FILLFACTOR = {{ data.fillfactor }}{% if data['autovacuum_enabled'] or data['toast_autovacuum_enabled'] or data['vacuum_data']|length > 0 %},{{ '\n' }}{% endif %} + FILLFACTOR = {{ data.fillfactor }}{% set ns.add_comma = true%}{% endif %}{% if data.autovacuum_enabled in ('t', 'f') %} +{% if ns.add_comma %}, {% endif %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% set ns.add_comma = true%}{% endif %}{% if data.toast_autovacuum_enabled in ('t', 'f') %} +{% if ns.add_comma %}, +{% endif %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}TRUE{% else %}FALSE{% endif %}{% set ns.add_comma = true%}{% endif %} {% for field in data['vacuum_data'] %} {% if field.value is defined and field.value != '' and field.value != none %} -{% if loop.index > 1 %}, -{% endif %} {{ field.name }} = {{ field.value|lower }}{% endif %}{% endfor %} +{% if ns.add_comma %}, +{% endif %} {{ field.name }} = {{ field.value|lower }}{% set ns.add_comma = true%}{% endif %}{% endfor %} {{ '\n' }}) {% endif %} {% if data.spcname %}TABLESPACE {{ data.spcname }} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/properties.sql index df3fafcdc..39b435cb8 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/properties.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/9.3_plus/sql/properties.sql @@ -24,8 +24,7 @@ SELECT (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=c.oid AND sl1.objsubid=0) AS seclabels, substring(array_to_string(c.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor, - (CASE WHEN (substring(array_to_string(c.reloptions, ',') - FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') THEN true ELSE false END) AS autovacuum_enabled, + (substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS autovacuum_enabled, substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold, substring(array_to_string(c.reloptions, ',') @@ -44,8 +43,7 @@ SELECT FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age, substring(array_to_string(c.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age, - (CASE WHEN (substring(array_to_string(tst.reloptions, ',') - FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true') THEN true ELSE false END) AS toast_autovacuum_enabled, + (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)'))::BOOL AS toast_autovacuum_enabled, substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold, substring(array_to_string(tst.reloptions, ',') @@ -65,9 +63,7 @@ SELECT substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age, c.reloptions AS reloptions, tst.reloptions AS toast_reloptions, - (CASE WHEN c.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable, - (CASE WHEN array_length(c.reloptions, 1) > 0 THEN true ELSE false END) AS autovacuum_custom, - (CASE WHEN array_length(tst.reloptions, 1) > 0 AND c.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum + (CASE WHEN c.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable FROM pg_class c LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace 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 922b11887..dc752a2ec 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 @@ -30,13 +30,14 @@ CREATE MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} {% if data.fillfactor or o_data.fillfactor %} WITH( {% if data.fillfactor %} -FILLFACTOR = {{ data.fillfactor }}{% if (data['vacuum_data'] is defined and data['vacuum_data']['changed']|length > 0) %},{% endif %} + FILLFACTOR = {{ data.fillfactor }}{% if (data['vacuum_data'] is defined and 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) %},{% endif %} + FILLFACTOR = {{ o_data.fillfactor }}{% if (data['vacuum_data'] is defined and 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 %} +{% for field in data['vacuum_data']['changed'] %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %}, +{% endif %} {% endfor %} {% endif %} ) @@ -79,11 +80,8 @@ RESET( REFRESH MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} WITH{{ ' NO' if data.with_data|lower == 'false' else '' }} DATA; {% endif %} -{# ===== Check for Table tab properties ===== #} -{% if ((data.autovacuum_custom is defined and data.autovacuum_custom|lower == 'false') or -(data.toast_autovacuum is defined and data.toast_autovacuum|lower == 'false') -) %} -{% if data.autovacuum_custom|lower == 'false' %} +{# ===== Check for Autovacuum options ===== #} +{% if data.autovacuum_custom is defined and data.autovacuum_custom == False %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( autovacuum_enabled, autovacuum_vacuum_threshold, @@ -97,20 +95,9 @@ ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( autovacuum_freeze_table_age ); -{% if data.toast_autovacuum is defined and data.toast_autovacuum|lower != 'false' %} -{% if('vacuum_toast' in data and data['vacuum_toast']['changed']|length > 0) %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( -{% for field in data['vacuum_toast']['changed'] %} -{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{{ '\n' }}{% endif %} -{% endif %} -{% endfor %} -); - -{% endif %} {% endif %} -{% endif %} -{% if data.toast_autovacuum|lower == 'false' %} +{% if data.toast_autovacuum is defined and data.toast_autovacuum == False %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( toast.autovacuum_enabled, toast.autovacuum_vacuum_threshold, @@ -124,40 +111,42 @@ ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( toast.autovacuum_freeze_table_age ); -{% if data.autovacuum_custom is defined and data.autovacuum_custom|lower != 'false' %} -{% if('vacuum_table' in data and data['vacuum_table']['changed']|length > 0) %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( -{% for field in data['vacuum_table']['changed'] %} -{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{% endif %}{% endif %} -{% endfor %} -); - -{% endif %} -{% endif %} {% endif %}{#-- toast_endif ends --#} - -{% else %} -{% if data['vacuum_data']['reset']|length == 0 and -data['vacuum_data']['changed']|length == 0 and data['settings']|length > 0 %} -ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} SET( -{% for field in data['settings'] %} {{ field }} = {{ data['settings'][field]|lower }}{% if not loop.last %},{{ '\n' }}{% endif %} -{% endfor %} -); - -{% endif %} -{% if(data['vacuum_data']['changed']|length > 0) %} +{% if data['vacuum_data']['changed']|length > 0 or data.autovacuum_enabled in ('t', 'f') or data.toast_autovacuum_enabled in ('t', 'f') %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(data.schema, data.name) }} SET( +{% if data.autovacuum_enabled in ('t', 'f') %} + autovacuum_enabled = {% if data.autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if data['vacuum_data']['changed']|length > 0 or data.toast_autovacuum_enabled in ('t', 'f') %}, +{% endif %} +{% endif %} +{% if data.toast_autovacuum_enabled in ('t', 'f') %} + toast.autovacuum_enabled = {% if data.toast_autovacuum_enabled == 't' %}true{% else %}false{% endif %}{% if data['vacuum_data']['changed']|length > 0 %}, +{% endif %} +{% endif %} {% for field in data['vacuum_data']['changed'] %} -{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %},{% endif %}{{ '\n' }}{% endif %} +{% if field.value != None %} {{ field.name }} = {{ field.value|lower }}{% if not loop.last %}, +{% endif %} +{% endif %} {% endfor %} + ); {% endif %} -{% if data['vacuum_data']['reset']|length > 0 %} +{% if data['vacuum_data']['reset']|length > 0 or data.autovacuum_enabled == 'x' or data.toast_autovacuum_enabled == 'x' %} ALTER MATERIALIZED VIEW {{ conn|qtIdent(view_schema, view_name) }} RESET( -{% for field in data['vacuum_data']['reset'] %} {{ field.name }}{% if not loop.last %},{% endif %}{{ '\n' }}{% endfor %} +{% if data.autovacuum_enabled == 'x' %} + autovacuum_enabled{% if data['vacuum_data']['reset']|length > 0 or data.toast_autovacuum_enabled == 'x' %}, +{% endif %} +{% endif %} +{% if data.toast_autovacuum_enabled == 'x' %} + toast.autovacuum_enabled{% if data['vacuum_data']['reset']|length > 0 %}, +{% endif %} +{% endif %} +{% for field in data['vacuum_data']['reset'] %} {{ field.name }}{% if not loop.last %}, +{% endif %} +{% endfor %} + ); {% endif %} -{% endif %}{# ===== End check for custom autovacuum ===== #} +{# ===== End check for custom autovacuum ===== #} {% endif %}{# ===== End block for check data definition ===== #} {% set old_comment = o_data.comment|default('', true) %} {% if (data.comment is defined and (data.comment != old_comment)) %} 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 a79299f2e..c79991c4f 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 @@ -4,8 +4,7 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH ( - FILLFACTOR = 18, - autovacuum_enabled = false + FILLFACTOR = 18 ) TABLESPACE pg_default AS 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 72fb22614..824b3d13f 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 @@ -5,8 +5,8 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH ( FILLFACTOR = 18, - autovacuum_analyze_scale_factor = 0.2, - autovacuum_enabled = true + autovacuum_enabled = TRUE, + autovacuum_analyze_scale_factor = 0.2 ) TABLESPACE pg_default AS diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_table_parameter_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_table_parameter_msql.sql index 737ffaa32..6f13ab46d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_table_parameter_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_add_table_parameter_msql.sql @@ -1,4 +1,4 @@ ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" SET( - autovacuum_analyze_scale_factor = 0.2, - autovacuum_enabled = true + autovacuum_enabled = true, + autovacuum_analyze_scale_factor = 0.2 ); 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 a79299f2e..c79991c4f 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 @@ -4,8 +4,7 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH ( - FILLFACTOR = 18, - autovacuum_enabled = false + FILLFACTOR = 18 ) TABLESPACE pg_default AS diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_remove_table_parameter_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_remove_table_parameter_msql.sql index 8aed82923..cccaa3885 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_remove_table_parameter_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_mview_remove_table_parameter_msql.sql @@ -1,6 +1,4 @@ -ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" SET( - autovacuum_enabled = false -); ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" RESET( - autovacuum_analyze_scale_factor + autovacuum_enabled, + autovacuum_analyze_scale_factor ); 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 7f0bd477d..29ff3e27f 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 @@ -8,62 +8,8 @@ "msql_endpoint": "NODE-mview.msql", "data": { "spcname": "pg_default", - "toast_autovacuum_enabled": false, - "autovacuum_enabled": false, "schema": "public", "owner": "postgres", - "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_$%{}[]()&*^!/@`#", @@ -218,7 +164,7 @@ "msql_endpoint": "NODE-mview.msql_id", "data": { "autovacuum_custom": true, - "autovacuum_enabled": true, + "autovacuum_enabled": "t", "vacuum_table": { "changed": [ { @@ -239,7 +185,7 @@ "msql_endpoint": "NODE-mview.msql_id", "data": { "autovacuum_custom": true, - "autovacuum_enabled": false, + "autovacuum_enabled": "x", "vacuum_table": { "changed": [ { 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 8a297d450..d281242c3 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 @@ -4,8 +4,7 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH ( - FILLFACTOR = 18, - autovacuum_enabled = false + FILLFACTOR = 18 ) TABLESPACE pg_default AS 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 3fc763dd4..b38de214f 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 @@ -5,8 +5,8 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH ( FILLFACTOR = 18, - autovacuum_analyze_scale_factor = 0.2, - autovacuum_enabled = true + autovacuum_enabled = TRUE, + autovacuum_analyze_scale_factor = 0.2 ) TABLESPACE pg_default AS diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_table_parameter_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_table_parameter_msql.sql index 737ffaa32..6f13ab46d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_table_parameter_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_add_table_parameter_msql.sql @@ -1,4 +1,4 @@ ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" SET( - autovacuum_analyze_scale_factor = 0.2, - autovacuum_enabled = true + autovacuum_enabled = true, + autovacuum_analyze_scale_factor = 0.2 ); 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 8a297d450..d281242c3 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 @@ -4,8 +4,7 @@ CREATE MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" WITH ( - FILLFACTOR = 18, - autovacuum_enabled = false + FILLFACTOR = 18 ) TABLESPACE pg_default AS diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_remove_table_parameter_msql.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_remove_table_parameter_msql.sql index 8aed82923..cccaa3885 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_remove_table_parameter_msql.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_mview_remove_table_parameter_msql.sql @@ -1,6 +1,4 @@ -ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" SET( - autovacuum_enabled = false -); ALTER MATERIALIZED VIEW public."testmview_$%{}[]()&*^!/@`#" RESET( - autovacuum_analyze_scale_factor + autovacuum_enabled, + autovacuum_analyze_scale_factor ); 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 4ea610331..33d0f9ba7 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 @@ -8,62 +8,8 @@ "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_$%{}[]()&*^!/@`#", @@ -218,7 +164,7 @@ "msql_endpoint": "NODE-mview.msql_id", "data": { "autovacuum_custom": true, - "autovacuum_enabled": true, + "autovacuum_enabled": "t", "vacuum_table": { "changed": [ { @@ -239,7 +185,7 @@ "msql_endpoint": "NODE-mview.msql_id", "data": { "autovacuum_custom": true, - "autovacuum_enabled": false, + "autovacuum_enabled": "x", "vacuum_table": { "changed": [ { diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/test_mviews_parameters.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/test_mviews_parameters.py index c84276ef6..177aa21b5 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/test_mviews_parameters.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/test_mviews_parameters.py @@ -24,25 +24,105 @@ from . import utils as views_utils class MViewsUpdateParameterTestCase(BaseTestGenerator): """This class will update the view/mview under schema node.""" scenarios = [ - ('Enable custom auto vacuum and set the parameters for table', - dict(url='/browser/mview/obj/', type='set_vacuum_parameters') + # Fetching default URL for table node. + ('Enable custom auto vacuum and set the parameters for table ' + 'without autovacuum_enabled', + dict(url='/browser/mview/obj/', + api_data={ + 'autovacuum_custom': True, + 'vacuum_table': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': 20}, + {'name': 'autovacuum_vacuum_threshold', + 'value': 20} + ] + }} + ) ), - ('Disable auto vacuum and reset the parameters for table', - dict(url='/browser/mview/obj/', type='reset_vacuum_parameters') + ('Change a parameter to zero value ' + 'without autovacuum_enabled', + dict(url='/browser/mview/obj/', + api_data={ + 'vacuum_table': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': 0} + ] + }} + ) ), - ('Disable custom auto vacuum and reset all the parameters for table', - dict(url='/browser/mview/obj/', type='reset_all_vacuum_parameters') + ('Enable autovacuum_enabled', + dict(url='/browser/mview/obj/', + api_data={'autovacuum_enabled': 't'} + ) ), - ('Enable custom auto vacuum and set the toast parameters for table', - dict(url='/browser/mview/obj/', type='set_toast_parameters') + ('Reset individual parameters for table', + dict(url='/browser/mview/obj/', + api_data={ + 'autovacuum_enabled': 'x', + 'vacuum_table': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': None}, + ] + }} + ) ), - ('Disable auto vacuum and reset the toast parameters for table', - dict(url='/browser/mview/obj/', type='reset_toast_parameters') + ('Reset custom auto vacuum', + dict(url='/browser/mview/obj/', + api_data={'autovacuum_custom': False} + ) + ), + ('Enable toast custom auto vacuum and set the parameters for table ' + 'without autovacuum_enabled', + dict(url='/browser/mview/obj/', + api_data={ + 'toast_autovacuum': True, + 'vacuum_toast': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': 20}, + {'name': 'autovacuum_vacuum_threshold', + 'value': 20} + ] + }} + ) + ), + ('Change a toast parameter to zero value ' + 'without autovacuum_enabled', + dict(url='/browser/mview/obj/', + api_data={ + 'vacuum_toast': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': 0} + ] + }} + ) + ), + ('Enable toast.autovacuum_enabled', + dict(url='/browser/mview/obj/', + api_data={'toast_autovacuum_enabled': 't'} + ) + ), + ('Reset individual toast parameters for table', + dict(url='/browser/mview/obj/', + api_data={ + 'toast_autovacuum_enabled': 'x', + 'vacuum_toast': { + 'changed': [ + {'name': 'autovacuum_vacuum_cost_delay', + 'value': None}, + ] + }} + ) + ), + ('Reset auto vacuum', + dict(url='/browser/mview/obj/', + api_data={'toast_autovacuum': False} + ) ), - ('Disable custom auto vacuum and reset all the toast ' - 'parameters for table', - dict(url='/browser/mview/obj/', type='reset_all_toast_parameters') - ) ] @classmethod @@ -88,49 +168,8 @@ class MViewsUpdateParameterTestCase(BaseTestGenerator): if not mview_response: raise Exception("Could not find the mview to update.") - data = None - if self.type == 'set_vacuum_parameters': - data = dict({'oid': self.m_view_id, - 'autovacuum_custom': True, - 'autovacuum_enabled': True, - 'vacuum_table': dict({'changed': [ - {'name': 'autovacuum_vacuum_cost_delay', - 'value': 20}, - {'name': 'autovacuum_vacuum_threshold', - 'value': 20} - ]})}) - elif self.type == 'reset_vacuum_parameters': - data = dict({'oid': self.m_view_id, - 'autovacuum_enabled': False, - 'vacuum_table': dict({'changed': [ - {'name': 'autovacuum_vacuum_cost_delay', - 'value': None}, - {'name': 'autovacuum_vacuum_threshold', - 'value': None} - ]})}) - elif self.type == 'reset_all_vacuum_parameters': - data = dict({'oid': self.m_view_id, 'autovacuum_custom': False}) - elif self.type == 'set_toast_parameters': - data = dict({'oid': self.m_view_id, - 'autovacuum_custom': True, - 'autovacuum_enabled': True, - 'vacuum_toast': dict({'changed': [ - {'name': 'autovacuum_vacuum_cost_delay', - 'value': 20}, - {'name': 'autovacuum_vacuum_threshold', - 'value': 20} - ]})}) - elif self.type == 'reset_toast_parameters': - data = dict({'oid': self.m_view_id, - 'autovacuum_enabled': False, - 'vacuum_toast': dict({'changed': [ - {'name': 'autovacuum_vacuum_cost_delay', - 'value': None}, - {'name': 'autovacuum_vacuum_threshold', - 'value': None} - ]})}) - elif self.type == 'reset_all_toast_parameters': - data = dict({'oid': self.m_view_id, 'autovacuum_custom': False}) + data = self.api_data + data['oid'] = self.m_view_id response = self.tester.put(self.url + str(utils.SERVER_GROUP) + '/' + str(self.server_id) + '/' +