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/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..9dd206fe7 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', 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 10daab06f..c3d4ff606 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 daa102f5a..ade77adcd 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 @@ -54,10 +54,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 56a06c8a9..e8dca8fb6 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 @@ -54,10 +54,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 daa102f5a..ade77adcd 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 @@ -54,10 +54,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 56a06c8a9..e8dca8fb6 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 @@ -54,10 +54,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 3d31fe60e..1be4938ac 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, @@ -56,10 +54,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 3ac7ceae8..caa928169 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, @@ -57,10 +55,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 %}, -{% endif %} - parallel_workers = {{ data.parallel_workers }}{% set add_comma = true%}{% endif %}{% if data.toast_tuple_target %} -{% if add_comma %}, -{% endif %} - toast_tuple_target = {{ data.toast_tuple_target }}{% set add_comma = true%}{% endif %}{% if data.autovacuum_custom %} -{% if 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 %}, -{% 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 %} +{% if ns.add_comma %}, +{% endif %} + 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 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 %}{% 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 3d9b1f622..0263d39b5 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, @@ -57,10 +55,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 d153b0edf..db54a67d3 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, @@ -54,10 +52,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 80451f12d..aefd87565 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, @@ -55,10 +53,6 @@ SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS r 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 47686a280..6faf6cc71 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, @@ -56,10 +54,6 @@ FROM ( 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 ca7231acb..8c6ffba81 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..b1dff61a6 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) @@ -1496,7 +1501,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 +1512,13 @@ class BaseTableView(PGChildNodeView, BasePartitionTable): :return: """ + # When creating a table old_data is the actual data + if data is None and 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/static/js/mview.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/mview.js index 34d45773c..2a08712b4 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 @@ -140,8 +140,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: [{