Hi,
Patch attached. It's really a simple one.
It add a UI to change the storage option. The combobox is enabled at
modification time.
Comments?
--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com
diff --git a/pgadmin/dlg/dlgColumn.cpp b/pgadmin/dlg/dlgColumn.cpp
index f62bf87..fc09324 100644
--- a/pgadmin/dlg/dlgColumn.cpp
+++ b/pgadmin/dlg/dlgColumn.cpp
@@ -36,6 +36,7 @@
#define txtValue CTRL_TEXT("txtValue")
#define btnAdd CTRL_BUTTON("wxID_ADD")
#define btnRemove CTRL_BUTTON("wxID_REMOVE")
+#define cbStorage CTRL_COMBOBOX1("cbStorage")
BEGIN_EVENT_TABLE(dlgColumn, dlgTypeProperty)
@@ -53,6 +54,8 @@ BEGIN_EVENT_TABLE(dlgColumn, dlgTypeProperty)
EVT_BUTTON(wxID_REMOVE, dlgColumn::OnVarRemove)
EVT_TEXT(XRCID("cbVarname"), dlgColumn::OnVarnameSelChange)
EVT_COMBOBOX(XRCID("cbVarname"), dlgColumn::OnVarnameSelChange)
+ EVT_TEXT(XRCID("cbStorage"), dlgProperty::OnChange)
+ EVT_COMBOBOX(XRCID("cbStorage"), dlgProperty::OnChange)
#ifdef __WXMAC__
EVT_SIZE( dlgColumn::OnChangeSize)
@@ -224,6 +227,8 @@ int dlgColumn::Go(bool modal)
txtValue->Enable(false);
}
+ cbStorage->Enable(true);
+
if (column)
{
// edit mode
@@ -281,6 +286,7 @@ int dlgColumn::Go(bool modal)
txtLength->Disable();
cbDatatype->Disable();
txtAttstattarget->Disable();
+ cbStorage->Disable();
}
else if (column->GetTable()->GetMetaType() == PGM_VIEW) // Disable controls not valid for view columns
{
@@ -289,6 +295,7 @@ int dlgColumn::Go(bool modal)
txtLength->Disable();
cbDatatype->Disable();
txtAttstattarget->Disable();
+ cbStorage->Disable();
}
else if (column->GetTable()->GetMetaType() == GP_EXTTABLE) // Disable controls not valid for external table columns
{
@@ -298,6 +305,7 @@ int dlgColumn::Go(bool modal)
cbDatatype->Disable();
txtAttstattarget->Disable();
txtDefault->Disable();
+ cbStorage->Disable();
}
else if (table->GetOfTypeOid() > 0)
{
@@ -307,8 +315,11 @@ int dlgColumn::Go(bool modal)
cbDatatype->Disable();
txtAttstattarget->Enable();
txtDefault->Enable();
+ cbStorage->Enable();
}
+ cbStorage->SetValue(column->GetStorage());
+
size_t i;
for (i=0 ; i < column->GetVariables().GetCount() ; i++)
{
@@ -333,6 +344,7 @@ int dlgColumn::Go(bool modal)
}
txtAttstattarget->Disable();
+ cbStorage->Disable();
txtComment->Disable();
}
return dlgTypeProperty::Go(modal);
@@ -508,6 +520,14 @@ wxString dlgColumn::GetSql()
}
}
+ if (cbStorage->GetValue() != column->GetStorage())
+ {
+ sql += wxT("ALTER TABLE ") + table->GetQuotedFullIdentifier()
+ + wxT("\n ALTER COLUMN ") + qtIdent(name)
+ + wxT(" SET STORAGE ") + cbStorage->GetValue()
+ + wxT(";\n");
+ }
+
AppendComment(sql, wxT("COLUMN ") + table->GetQuotedFullIdentifier()
+ wxT(".") + qtIdent(name), column);
diff --git a/pgadmin/ui/dlgColumn.xrc b/pgadmin/ui/dlgColumn.xrc
index f20a336..e660b53 100644
--- a/pgadmin/ui/dlgColumn.xrc
+++ b/pgadmin/ui/dlgColumn.xrc
@@ -17,10 +17,10 @@
<object class="wxPanel" name="pnlProperties">
<object class="wxFlexGridSizer">
<cols>2</cols>
- <rows>9</rows>
+ <rows>10</rows>
<vgap>5</vgap>
<hgap>5</hgap>
- <growablerows>7</growablerows>
+ <growablerows>8</growablerows>
<growablecols>1</growablecols>
<object class="sizeritem">
<object class="wxStaticText" name="stName">
@@ -117,6 +117,26 @@
<border>4</border>
</object>
<object class="sizeritem">
+ <object class="wxStaticText" name="stStorage">
+ <label>Storage</label>
+ </object>
+ <flag>wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
+ <border>4</border>
+ </object>
+ <object class="sizeritem">
+ <object class="wxComboBox" name="cbStorage">
+ <content>
+ <item>PLAIN</item>
+ <item>MAIN</item>
+ <item>EXTERNAL</item>
+ <item>EXTENDED</item>
+ </content>
+ <style>wxCB_DROPDOWN | wxCB_READONLY</style>
+ </object>
+ <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT|wxRIGHT</flag>
+ <border>4</border>
+ </object>
+ <object class="sizeritem">
<object class="wxStaticText" name="stComment">
<label>Comment</label>
</object>
--
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers