Hi, Please find attached patch to show tablespace on partitions. Also reformatted sql slightly in sql tab.
-- *Harshal Dhumal* *Sr. Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partition/sql/10_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partition/sql/10_plus/create.sql index b5e9404..19eea8c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partition/sql/10_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/partition/sql/10_plus/create.sql @@ -19,9 +19,15 @@ CREATE {% if data.relpersistence %}UNLOGGED {% endif %}TABLE {{conn|qtIdent(data {% endif %} {{ data.partition_value }}{% if data.is_partitioned is defined and data.is_partitioned %} - PARTITION BY {{ data.partition_scheme }}{% endif %}; + PARTITION BY {{ data.partition_scheme }}{% endif %} +{### SQL for Tablespace ###} +{% if data.spcname %} +TABLESPACE {{ conn|qtIdent(data.spcname) }}; +{% else %} +; +{% endif %} {### Alter SQL for Owner ###} {% if data.relowner %} 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 555133f..1b16454 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 @@ -1030,26 +1030,27 @@ class BaseTableView(PGChildNodeView): if not status: return internal_server_error(errormsg=rset) - sql_header = u"\n-- Partitions SQL" - partition_sql = '' - for row in rset['rows']: - part_data = dict() - part_data['partitioned_table_name'] = data['name'] - part_data['parent_schema'] = data['schema'] - part_data['schema'] = row['schema_name'] - part_data['relispartition'] = True - part_data['name'] = row['name'] - part_data['partition_value'] = row['partition_value'] - part_data['is_partitioned'] = row ['is_partitioned'] - part_data['partition_scheme'] = row['partition_scheme'] - - partition_sql += render_template("/".join( - [self.partition_template_path, 'create.sql']), - data=part_data, conn=self.conn) - - # Add into main sql - partition_sql = re.sub('\n{2,}', '\n\n', partition_sql) - main_sql.append(sql_header + '\n\n' + partition_sql.strip('\n')) + if len(rset['rows']): + sql_header = u"\n-- Partitions SQL" + partition_sql = '' + for row in rset['rows']: + part_data = dict() + part_data['partitioned_table_name'] = data['name'] + part_data['parent_schema'] = data['schema'] + part_data['schema'] = row['schema_name'] + part_data['relispartition'] = True + part_data['name'] = row['name'] + part_data['partition_value'] = row['partition_value'] + part_data['is_partitioned'] = row ['is_partitioned'] + part_data['partition_scheme'] = row['partition_scheme'] + + partition_sql += render_template("/".join( + [self.partition_template_path, 'create.sql']), + data=part_data, conn=self.conn) + + # Add into main sql + partition_sql = re.sub('\n{2,}', '\n\n', partition_sql) + main_sql.append(sql_header + '\n\n' + partition_sql.strip('\n')) sql = '\n'.join(main_sql)