From 5e618b7dab6e2043cc2e0959ea1fc7da24ed47fd Mon Sep 17 00:00:00 2001 From: levinsv <44033647+levinsv@users.noreply.github.com> Date: Wed, 25 Mar 2020 21:43:19 +0500 Subject: [PATCH] CFS options add remove OID option table. CFS fragmentation option add --- Release_(3.0)/pgAdmin3.exe | Bin 10782720 -> 10782720 bytes db/pgConn.cpp | 10 ++++ include/db/pgConn.h | 2 + include/pgAdmin3.h | 4 +- include/schema/pgTable.h | 11 ++++- schema/pgTable.cpp | 91 ++++++++++++++++++++++--------------- 6 files changed, 79 insertions(+), 39 deletions(-) diff --git a/Release_(3.0)/pgAdmin3.exe b/Release_(3.0)/pgAdmin3.exe index e066a6e40337e9531016c661ad14214ec1a113b8..39f03f3d5a27d174bec0f646c15fd5b8b1c5a462 100644 GIT binary patch delta 40409 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, 2)) { - sql += wxT("\nWITH ("); + wxString sqlopt=wxEmptyString; if (GetFillFactor().Length() > 0) - sql += wxT("\n FILLFACTOR=") + GetFillFactor() + wxT(", "); + sqlopt += wxT("\n FILLFACTOR=") + GetFillFactor() + wxT(", "); if (GetAppendOnly().Length() > 0) - sql += wxT("APPENDONLY=") + GetAppendOnly() + wxT(", "); + sqlopt += wxT("APPENDONLY=") + GetAppendOnly() + wxT(", "); if (GetCompressLevel().Length() > 0) - sql += wxT("COMPRESSLEVEL=") + GetCompressLevel() + wxT(", "); + sqlopt += wxT("COMPRESSLEVEL=") + GetCompressLevel() + wxT(", "); if (GetOrientation().Length() > 0) - sql += wxT("ORIENTATION=") + GetOrientation() + wxT(", "); + sqlopt += wxT("ORIENTATION=") + GetOrientation() + wxT(", "); if (GetCompressType().Length() > 0) - sql += wxT("COMPRESSTYPE=") + GetCompressType() + wxT(", "); + sqlopt += wxT("COMPRESSTYPE=") + GetCompressType() + wxT(", "); if (GetBlocksize().Length() > 0) - sql += wxT("BLOCKSIZE=") + GetBlocksize() + wxT(", "); + sqlopt += wxT("BLOCKSIZE=") + GetBlocksize() + wxT(", "); if (GetChecksum().Length() > 0) - sql += wxT("CHECKSUM=") + GetChecksum() + wxT(", "); - if (GetHasOids()) - sql += wxT("\n OIDS=TRUE"); - else - sql += wxT("\n OIDS=FALSE"); + sqlopt += wxT("CHECKSUM=") + GetChecksum() + wxT(", "); + if (GetConnection()->BackendMinimumVersion(12, 0)) { + if (!sqlopt.IsEmpty()) sqlopt=sqlopt.BeforeLast(','); + } else { + if (GetHasOids()) + sqlopt += wxT("\n OIDS=TRUE"); + else + sqlopt += wxT("\n OIDS=FALSE"); + } + if(GetConnection()->BackendMinimumVersion(8, 4)) { if (GetCustomAutoVacuumEnabled()) { if (GetAutoVacuumEnabled() == 1) - sql += wxT(",\n autovacuum_enabled=true"); + sqlopt += wxT(",\n autovacuum_enabled=true"); else if (GetCustomAutoVacuumEnabled() == 0) - sql += wxT(",\n autovacuum_enabled=false"); + sqlopt += wxT(",\n autovacuum_enabled=false"); if (!GetAutoVacuumVacuumThreshold().IsEmpty()) { - sql += wxT(",\n autovacuum_vacuum_threshold=") + GetAutoVacuumVacuumThreshold(); + sqlopt += wxT(",\n autovacuum_vacuum_threshold=") + GetAutoVacuumVacuumThreshold(); } if (!GetAutoVacuumVacuumScaleFactor().IsEmpty()) { - sql += wxT(",\n autovacuum_vacuum_scale_factor=") + GetAutoVacuumVacuumScaleFactor(); + sqlopt += wxT(",\n autovacuum_vacuum_scale_factor=") + GetAutoVacuumVacuumScaleFactor(); } if (!GetAutoVacuumAnalyzeThreshold().IsEmpty()) { - sql += wxT(",\n autovacuum_analyze_threshold=") + GetAutoVacuumAnalyzeThreshold(); + sqlopt += wxT(",\n autovacuum_analyze_threshold=") + GetAutoVacuumAnalyzeThreshold(); } if (!GetAutoVacuumAnalyzeScaleFactor().IsEmpty()) { - sql += wxT(",\n autovacuum_analyze_scale_factor=") + GetAutoVacuumAnalyzeScaleFactor(); + sqlopt += wxT(",\n autovacuum_analyze_scale_factor=") + GetAutoVacuumAnalyzeScaleFactor(); } if (!GetAutoVacuumVacuumCostDelay().IsEmpty()) { - sql += wxT(",\n autovacuum_vacuum_cost_delay=") + GetAutoVacuumVacuumCostDelay(); + sqlopt += wxT(",\n autovacuum_vacuum_cost_delay=") + GetAutoVacuumVacuumCostDelay(); } if (!GetAutoVacuumVacuumCostLimit().IsEmpty()) { - sql += wxT(",\n autovacuum_vacuum_cost_limit=") + GetAutoVacuumVacuumCostLimit(); + sqlopt += wxT(",\n autovacuum_vacuum_cost_limit=") + GetAutoVacuumVacuumCostLimit(); } if (!GetAutoVacuumFreezeMinAge().IsEmpty()) { - sql += wxT(",\n autovacuum_freeze_min_age=") + GetAutoVacuumFreezeMinAge(); + sqlopt += wxT(",\n autovacuum_freeze_min_age=") + GetAutoVacuumFreezeMinAge(); } if (!GetAutoVacuumFreezeMaxAge().IsEmpty()) { - sql += wxT(",\n autovacuum_freeze_max_age=") + GetAutoVacuumFreezeMaxAge(); + sqlopt += wxT(",\n autovacuum_freeze_max_age=") + GetAutoVacuumFreezeMaxAge(); } if (!GetAutoVacuumFreezeTableAge().IsEmpty()) { - sql += wxT(",\n autovacuum_freeze_table_age=") + GetAutoVacuumFreezeTableAge(); + sqlopt += wxT(",\n autovacuum_freeze_table_age=") + GetAutoVacuumFreezeTableAge(); } } if (GetHasToastTable() && GetToastCustomAutoVacuumEnabled()) { if (GetToastAutoVacuumEnabled() == 1) - sql += wxT(",\n toast.autovacuum_enabled=true"); + sqlopt += wxT(",\n toast.autovacuum_enabled=true"); else if (GetToastAutoVacuumEnabled() == 0) - sql += wxT(",\n toast.autovacuum_enabled=false"); + sqlopt += wxT(",\n toast.autovacuum_enabled=false"); if (!GetToastAutoVacuumVacuumThreshold().IsEmpty()) { - sql += wxT(",\n toast.autovacuum_vacuum_threshold=") + GetToastAutoVacuumVacuumThreshold(); + sqlopt += wxT(",\n toast.autovacuum_vacuum_threshold=") + GetToastAutoVacuumVacuumThreshold(); } if (!GetToastAutoVacuumVacuumScaleFactor().IsEmpty()) { - sql += wxT(",\n toast.autovacuum_vacuum_scale_factor=") + GetToastAutoVacuumVacuumScaleFactor(); + sqlopt += wxT(",\n toast.autovacuum_vacuum_scale_factor=") + GetToastAutoVacuumVacuumScaleFactor(); } if (!GetToastAutoVacuumVacuumCostDelay().IsEmpty()) { - sql += wxT(",\n toast.autovacuum_vacuum_cost_delay=") + GetToastAutoVacuumVacuumCostDelay(); + sqlopt += wxT(",\n toast.autovacuum_vacuum_cost_delay=") + GetToastAutoVacuumVacuumCostDelay(); } if (!GetToastAutoVacuumVacuumCostLimit().IsEmpty()) { - sql += wxT(",\n toast.autovacuum_vacuum_cost_limit=") + GetToastAutoVacuumVacuumCostLimit(); + sqlopt += wxT(",\n toast.autovacuum_vacuum_cost_limit=") + GetToastAutoVacuumVacuumCostLimit(); } if (!GetToastAutoVacuumFreezeMinAge().IsEmpty()) { - sql += wxT(",\n toast.autovacuum_freeze_min_age=") + GetToastAutoVacuumFreezeMinAge(); + sqlopt += wxT(",\n toast.autovacuum_freeze_min_age=") + GetToastAutoVacuumFreezeMinAge(); } if (!GetToastAutoVacuumFreezeMaxAge().IsEmpty()) { - sql += wxT(",\n toast.autovacuum_freeze_max_age=") + GetToastAutoVacuumFreezeMaxAge(); + sqlopt += wxT(",\n toast.autovacuum_freeze_max_age=") + GetToastAutoVacuumFreezeMaxAge(); } if (!GetToastAutoVacuumFreezeTableAge().IsEmpty()) { - sql += wxT(",\n toast.autovacuum_freeze_table_age=") + GetToastAutoVacuumFreezeTableAge(); + sqlopt += wxT(",\n toast.autovacuum_freeze_table_age=") + GetToastAutoVacuumFreezeTableAge(); } } } - sql += wxT("\n)"); + if (!sqlopt.IsEmpty()) { + sql += wxT("\nWITH ("); + if (sqlopt.Index(',')==0) sqlopt=sqlopt.Mid(1); + sql += sqlopt; + sql += wxT("\n)"); + } } else { @@ -1052,9 +1062,13 @@ void pgTable::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *prope properties->AppendItem(_("Inherited tables"), GetInheritedTables()); if (GetConnection()->BackendMinimumVersion(9, 1)) properties->AppendYesNoItem(_("Unlogged?"), GetUnlogged()); - properties->AppendYesNoItem(_("Has OIDs?"), GetHasOids()); - properties->AppendYesNoItem(_("System table?"), GetSystemObject()); - + if (!GetConnection()->BackendMinimumVersion(12, 0)) + properties->AppendYesNoItem(_("Has OIDs?"), GetHasOids()); + if (!GetConnection()->BackendMinimumVersion(12, 0)) + properties->AppendYesNoItem(_("System table?"), GetSystemObject()); + if (GetConnection()->GetIsPgProEnt()) + properties->AppendItem(_("CFS fragmentation"), GetRatio()); + /* Custom AutoVacuum Settings */ if (GetConnection()->BackendMinimumVersion(8, 4) && GetCustomAutoVacuumEnabled()) { @@ -1534,6 +1548,9 @@ pgObject *pgTableFactory::CreateObjects(pgCollection *collection, ctlTree *brows } // 'ALTER STATISTICS '||substring('CREATE STATISTICS public.tab_a (dependencies) ON c1, c3 FROM a' from 'ICS (.+?)\s\(')||' OWNER TO '|| //select relation from pg_locks where locktype='relation' and granted=true and mode='AccessExclusiveLock' + if (collection->GetDatabase()->connection()->GetIsPgProEnt()) query += wxT(",left((cfs_fragmentation(rel.oid)*100)::text,5)::text AS cfs_ratio"); + else query += wxT(",null::text AS cfs_ratio"); + if (collection->GetDatabase()->BackendMinimumVersion(10, 0)) { query += wxT(",\n pg_get_statisticsobjdef(stat_ext.oid) AS stat_stmt"); @@ -1600,6 +1617,7 @@ pgObject *pgTableFactory::CreateObjects(pgCollection *collection, ctlTree *brows table->iSetOid(tables->GetOid(wxT("oid"))); table->iSetOwner(tables->GetVal(wxT("relowner"))); table->iSetAcl(tables->GetVal(wxT("relacl"))); + table->iSetRatio(tables->GetVal(wxT("cfs_ratio"))); if (collection->GetConnection()->BackendMinimumVersion(8, 0)) { if (tables->GetOid(wxT("spcoid")) == 0) @@ -1612,6 +1630,7 @@ pgObject *pgTableFactory::CreateObjects(pgCollection *collection, ctlTree *brows else table->iSetTablespace(tables->GetVal(wxT("spcname"))); } + if (collection->GetConnection()->BackendMinimumVersion(9, 0)) { table->iSetOfTypeOid(tables->GetOid(wxT("reloftype")));