Hi,
Here is a quick path that adds the handling of the new INPLACE parameter
for VACUUM. It uses the new VACUUM syntax because new parameters are
only available through it.
Comments?
--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com
diff --git a/pgadmin/frm/frmMaintenance.cpp b/pgadmin/frm/frmMaintenance.cpp
index 0784850..8e6b5bc 100644
--- a/pgadmin/frm/frmMaintenance.cpp
+++ b/pgadmin/frm/frmMaintenance.cpp
@@ -29,11 +29,13 @@
BEGIN_EVENT_TABLE(frmMaintenance, ExecutionDialog)
EVT_RADIOBOX(XRCID("rbxAction"), frmMaintenance::OnAction)
+ EVT_CHECKBOX(XRCID("chkFull"), frmMaintenance::OnChange)
END_EVENT_TABLE()
#define nbNotebook CTRL_NOTEBOOK("nbNotebook")
#define rbxAction CTRL_RADIOBOX("rbxAction")
#define chkFull CTRL_CHECKBOX("chkFull")
+#define chkInPlace CTRL_CHECKBOX("chkInPlace")
#define chkFreeze CTRL_CHECKBOX("chkFreeze")
#define chkAnalyze CTRL_CHECKBOX("chkAnalyze")
#define chkVerbose CTRL_CHECKBOX("chkVerbose")
@@ -106,6 +108,12 @@ void frmMaintenance::OnAction(wxCommandEvent& ev)
+void frmMaintenance::OnChange(wxCommandEvent &ev)
+{
+ chkInPlace->Enable(object->GetConnection()->BackendMinimumVersion(8, 5) && chkFull->GetValue());
+}
+
+
wxString frmMaintenance::GetSql()
{
wxString sql;
@@ -116,14 +124,28 @@ wxString frmMaintenance::GetSql()
{
sql=wxT("VACUUM ");
- if (chkFull->GetValue())
- sql += wxT("FULL ");
- if (chkFreeze->GetValue())
- sql += wxT("FREEZE ");
- if (chkVerbose->GetValue())
- sql += wxT("VERBOSE ");
- if (chkAnalyze->GetValue())
- sql += wxT("ANALYZE ");
+ if (object->GetConnection()->BackendMinimumVersion(8, 5) && chkInPlace->GetValue())
+ {
+ sql += wxT("(FULL INPLACE");
+ if (chkFreeze->GetValue())
+ sql += wxT(", FREEZE");
+ if (chkVerbose->GetValue())
+ sql += wxT(", VERBOSE");
+ if (chkAnalyze->GetValue())
+ sql += wxT(", ANALYZE");
+ sql += wxT(")");
+ }
+ else
+ {
+ if (chkFull->GetValue())
+ sql += wxT("FULL ");
+ if (chkFreeze->GetValue())
+ sql += wxT("FREEZE ");
+ if (chkVerbose->GetValue())
+ sql += wxT("VERBOSE ");
+ if (chkAnalyze->GetValue())
+ sql += wxT("ANALYZE ");
+ }
if (object->GetMetaType() != PGM_DATABASE)
sql += object->GetQuotedFullIdentifier();
@@ -164,6 +186,9 @@ wxString frmMaintenance::GetSql()
void frmMaintenance::Go()
{
chkFull->SetFocus();
+
+ chkInPlace->Enable(object->GetConnection()->BackendMinimumVersion(8, 5) && chkFull->GetValue());
+
Show(true);
}
diff --git a/pgadmin/include/frm/frmMaintenance.h b/pgadmin/include/frm/frmMaintenance.h
index e9e773f..0a63a73 100644
--- a/pgadmin/include/frm/frmMaintenance.h
+++ b/pgadmin/include/frm/frmMaintenance.h
@@ -28,6 +28,7 @@ public:
private:
wxString GetHelpPage() const;
void OnAction(wxCommandEvent& ev);
+ void OnChange(wxCommandEvent& ev);
DECLARE_EVENT_TABLE()
};
diff --git a/pgadmin/ui/frmMaintenance.xrc b/pgadmin/ui/frmMaintenance.xrc
index 048ab00..41e2eb5 100644
--- a/pgadmin/ui/frmMaintenance.xrc
+++ b/pgadmin/ui/frmMaintenance.xrc
@@ -52,6 +52,13 @@
<border>4</border>
</object>
<object class="sizeritem">
+ <object class="wxCheckBox" name="chkInPlace">
+ <label>IN PLACE</label>
+ </object>
+ <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
+ <border>4</border>
+ </object>
+ <object class="sizeritem">
<object class="wxCheckBox" name="chkFreeze">
<label>FREEZE</label>
</object>
--
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers