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 39ecfe04..c43de881 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 in ('t', 'f') or data.toast_autovacuum or data.toast_autovacuum_enabled in ('t', 'f') %} +{% if data.fillfactor or data.parallel_workers or data.toast_tuple_target or (data.autovacuum_custom and data.add_vacuum_settings_in_sql) or data.autovacuum_enabled in ('t', 'f') or (data.toast_autovacuum and data.add_vacuum_settings_in_sql) or data.toast_autovacuum_enabled in ('t', 'f') %} {% set with_clause = true%} {% endif %} CREATE {% if data.relpersistence %}UNLOGGED {% endif %}TABLE{% if add_not_exists_clause %} IF NOT EXISTS{% endif %} {{conn|qtIdent(data.schema, data.name)}}{{empty_bracket}} 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 aca27fd0..549febd3 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 @@ -2096,8 +2096,16 @@ class BaseTableView(PGChildNodeView, BasePartitionTable, VacuumSettings): 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: + if 'add_vacuum_settings_in_sql' not in old_data: + old_data['add_vacuum_settings_in_sql'] = False + + if ('value' in opt and opt['value'] is None) or ('value' in opt and opt['value'] == ''): opt.pop('value') + + if 'value' in opt and 'add_vacuum_settings_in_sql' in old_data and not old_data['add_vacuum_settings_in_sql']: + old_data['add_vacuum_settings_in_sql'] = True + + # Iterate vacuum table elif vacuum_key in data and 'changed' in data[vacuum_key] \ and vacuum_key in old_data: